syntaxsanctuary/php-blockchain-project
最新稳定版本:v1.0.0
Composer 安装命令:
composer create-project syntaxsanctuary/php-blockchain-project
包简介
A PHP-based web application with blockchain functionalities, user management, and API endpoints.
README 文档
README
Este proyecto es una aplicación web robusta desarrollada en PHP que integra funcionalidades de una blockchain, gestión de usuarios, un sistema de blog, mensajería y una API RESTful. Su diseño modular permite una fácil expansión y mantenimiento.
Características Principales
- Sistema de Usuarios Completo: Registro, inicio de sesión, perfiles de usuario, y administración de usuarios (para administradores).
- Implementación de Blockchain: Core de blockchain con creación y verificación de bloques, minería y gestión de la cadena.
- API RESTful: Conjunto de endpoints para interactuar con todas las funcionalidades del sistema (usuarios, blockchain, blog, mensajería, tareas, etc.).
- Sistema de Blog: Creación, lectura, actualización y eliminación de publicaciones.
- Mensajería Interna: Comunicación entre usuarios de la plataforma.
- Módulos: Estructura modular para componentes como autenticación, blockchain y lista de tareas (To-Do List).
- Interfaz de Usuario (Frontend): Desarrollada con HTML, CSS y JavaScript, ofreciendo una experiencia de usuario dinámica.
- Base de Datos: Gestión de datos a través de MySQL/MariaDB.
Alcance del Proyecto
Este proyecto busca establecer una aplicación web fundamental con capacidades de blockchain integradas. Se enfoca en demostrar funcionalidades básicas como la gestión de usuarios, un sistema de blog sencillo, mensajería básica y las operaciones fundamentales de una blockchain (creación de bloques, recuperación de la cadena). La capa API permite la interacción programática con estas características.
Dentro del Alcance (In-Scope):
- Autenticación de usuarios (registro, inicio de sesión, gestión de perfiles).
- Operaciones CRUD básicas para publicaciones de blog.
- Operaciones fundamentales de blockchain (minería, visualización de la cadena).
- API RESTful para las funcionalidades principales.
- Arquitectura modular para las funcionalidades clave.
- Frontend básico para la interacción del usuario.
Fuera del Alcance (Out-of-Scope) para esta versión inicial:
- Funciones avanzadas de blockchain (ej. contratos inteligentes, mecanismos de consenso complejos, redes P2P).
- Auditorías de seguridad de alto nivel más allá de las buenas prácticas básicas.
- Escalabilidad para entornos de producción de alto tráfico.
- Notificaciones en tiempo real.
- Gestión compleja de autorizaciones/roles (más allá de administrador/usuario básico).
- Pasarelas de pago o funcionalidades de comercio electrónico.
- Frameworks de pruebas automatizadas (pruebas unitarias, de integración - aunque se proporciona una guía de pruebas manuales).
Estructura del Proyecto
.
├── admin_users.php
├── blog.php
├── buy.php
├── chain_union.php
├── composer.json
├── cv.html
├── dashboard.php
├── database.sql
├── favicon.png
├── GEMINI.md
├── gui_documentation.html
├── index.php
├── login.php
├── logout.php
├── messages.php
├── profile.php
├── proyecto_blockchain_php.zip
├── README.md
├── register.php
├── sales_page.html
├── testing_guide.html
├── .git/
├── api/
│ ├── admin_users.php
│ ├── config.php
│ ├── download_project.php
│ ├── get_chain.php
│ ├── login.php
│ ├── messages.php
│ ├── mine_block.php
│ ├── posts.php
│ ├── profile.php
│ ├── register.php
│ ├── send_phone_verification.php
│ ├── settings.php
│ ├── todo.php
│ ├── users.php
│ ├── verify_phone.php
│ ├── video_notes.php
│ └── videos.php
├── core/
│ ├── Block.php
│ └── Blockchain.php
├── css/
│ ├── animations.css
│ ├── background.png
│ └── style.css
├── js/
│ ├── admin_users.js
│ ├── api.js
│ ├── blog.js
│ ├── buy.js
│ ├── chain_union.js
│ ├── dashboard.js
│ ├── login.js
│ ├── messages.js
│ ├── profile.js
│ └── register.js
├── modules/
│ ├── auth_user_management/
│ │ ├── admin_users.php
│ │ ├── config.php
│ │ ├── login.php
│ │ ├── profile.php
│ │ ├── register.php
│ │ └── schema.sql
│ ├── blockchain/
│ │ ├── config.php
│ │ ├── get_chain.php
│ │ ├── mine_block.php
│ │ ├── schema.sql
│ │ └── core/
│ │ ├── Block.php
│ │ └── Blockchain.php
│ └── todo_list/
│ ├── config.php
│ ├── schema.sql
│ └── todo.php
└── templates/
Guía de Instalación
Método Recomendado (Usando Composer)
Esta es la forma más sencilla de instalar el proyecto, ya que Composer se encargará de descargar el proyecto y sus dependencias automáticamente.
-
Ejecutar Composer: Abre tu terminal y ejecuta el siguiente comando. Reemplaza
nombre-del-directoriocon el nombre que deseas para la carpeta de tu proyecto.composer create-project syntaxsanctuary/php-blockchain-project nombre-del-directorio
-
Navegar al Directorio: Una vez que la instalación esté completa, muévete al nuevo directorio:
cd nombre-del-directorio
Método Alternativo (Clonación Manual con Git)
Sigue estos pasos si prefieres clonar el repositorio manualmente.
-
Clonar el Repositorio: Abre tu terminal y ejecuta el siguiente comando:
git clone https://github.com/syntaxsanctuary/php-blockchain-project.git cd php-blockchain-project(Nota: Reemplaza la URL si tienes un fork personal).
-
Instalar Dependencias de PHP: Desde el directorio raíz del proyecto, ejecuta Composer:
composer install
Configuración Post-Instalación (Para ambos métodos)
Después de instalar el proyecto usando cualquiera de los métodos anteriores, sigue estos pasos para configurar tu entorno.
1. Requisitos Previos
Asegúrate de tener instalado lo siguiente:
- Servidor Web: Apache o Nginx.
- PHP: Versión 7.4 o superior (con extensiones como
mysqli,json,curlhabilitadas). - Base de Datos: MySQL o MariaDB.
- Composer: Gestor de dependencias para PHP.
- Git: (Necesario para el método de clonación manual).
2. Configuración de la Base de Datos
-
Crear la Base de Datos: Accede a tu gestor de bases de datos (phpMyAdmin, MySQL Workbench, o la línea de comandos) y crea una nueva base de datos. Por ejemplo:
CREATE DATABASE `php_blockchain_db`;
-
Importar Esquemas: Importa el archivo principal
database.sqly los esquemas específicos de los módulos.mysql -u tu_usuario -p php_blockchain_db < database.sql mysql -u tu_usuario -p php_blockchain_db < modules/auth_user_management/schema.sql mysql -u tu_usuario -p php_blockchain_db < modules/blockchain/schema.sql mysql -u tu_usuario -p php_blockchain_db < modules/todo_list/schema.sql
(Reemplaza
tu_usuariocon tu usuario de MySQL y, cuando se te pida, ingresa tu contraseña.) -
Configurar Conexiones a la Base de Datos: Edita los archivos
config.phpen el directorioapi/y dentro de cada módulo (modules/*/config.php) para que coincidan con tus credenciales de base de datos.Ejemplo (
api/config.phpomodules/auth_user_management/config.php):<?php define('DB_SERVER', 'localhost'); define('DB_USERNAME', 'tu_usuario'); define('DB_PASSWORD', 'tu_contraseña'); define('DB_NAME', 'php_blockchain_db'); // Intentar conexión a la base de datos MySQL $link = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME); // Verificar conexión if($link === false){ die("ERROR: No se pudo conectar a la base de datos. " . mysqli_connect_error()); } ?>
Asegúrate de replicar esta configuración en todos los
config.phprelevantes.
3. Configuración del Servidor Web
-
Para Apache: Asegúrate de que
mod_rewriteesté habilitado y configura un Virtual Host para apuntar la raíz del documento al directorio del proyecto. Un ejemplo básico de configuración de.htaccess(si no tienes un Virtual Host más complejo) podría ser:# .htaccess en el directorio raíz del proyecto RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php [QSA,L]
-
Para Nginx: Configura un bloque
serverque apunte al directorio del proyecto y useindex.phpcomo archivo de entrada para solicitudes no existentes.server { listen 80; server_name your_domain_or_ip; root /path/to/your/project_directory; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # Asegúrate de que esta ruta sea correcta para tu versión de PHP-FPM fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } }
(Reemplaza
/path/to/your/project_directorycon la ruta absoluta a tu proyecto yphp7.4-fpm.sockcon la versión correcta de PHP-FPM).
4. Acceder a la Aplicación
Una vez configurado el servidor web, abre tu navegador y navega a la URL donde está alojado el proyecto (ej. http://localhost/nombre-del-directorio/ o http://your_domain_or_ip/).
Uso de la Aplicación
- Navegación: Explora las diferentes secciones como el dashboard, blog, registro/login, etc.
- Interacción con Blockchain:
- Puedes minar nuevos bloques a través de la interfaz web o llamando al endpoint
api/mine_block.php. - Visualiza la cadena completa accediendo a
api/get_chain.php.
- Puedes minar nuevos bloques a través de la interfaz web o llamando al endpoint
- API: Utiliza herramientas como Postman o cURL para interactuar con los endpoints RESTful disponibles en el directorio
api/.
Guía de Pruebas
Para una guía exhaustiva sobre cómo testear todas las funcionalidades del sistema, incluyendo autenticación, blog, blockchain, mensajería y API, consulta el documento:
Endpoints de la API (Ejemplos)
A continuación, se listan algunos de los endpoints clave disponibles. Para detalles completos sobre parámetros y respuestas, se recomienda consultar el código fuente o usar herramientas de desarrollo.
GET /api/get_chain.php: Obtiene la cadena de bloques completa.POST /api/mine_block.php: Mina un nuevo bloque en la cadena.POST /api/register.php: Registra un nuevo usuario.POST /api/login.php: Inicia sesión de un usuario.GET /api/profile.php: Obtiene el perfil del usuario autenticado.POST /api/profile.php: Actualiza el perfil del usuario.GET /api/posts.php: Obtiene publicaciones del blog.POST /api/posts.php: Crea una nueva publicación.GET /api/messages.php: Obtiene mensajes del usuario.POST /api/messages.php: Envía un mensaje.GET /api/todo.php: Obtiene tareas pendientes.POST /api/todo.php: Crea una nueva tarea pendiente.
Licencia y Derechos de Autor
Este proyecto, incluyendo todo su código fuente, documentación y activos, es propiedad intelectual exclusiva de Ramiro G Glez.].
Al utilizar, modificar o distribuir este proyecto, usted acepta los siguientes términos:
- Créditos y Atribución: Cualquier uso o derivación de este proyecto debe incluir una atribución clara y visible a Ramiro G Glez. como el autor original y propietario intelectual. Esto debe incluir, pero no limitarse a, la conservación de esta sección de licencia en el
README.mdy en cualquier documentación relevante. - Propiedad Intelectual: La propiedad intelectual sobre el diseño, la arquitectura y el código original de este proyecto permanece en todo momento con Ramiro G Glez.]. Las modificaciones o mejoras realizadas por terceros no confieren derechos de propiedad sobre el proyecto original.
- Monetización y Participación en Ganancias: Si este proyecto (o cualquier derivación, adaptación o software que incorpore sustancialmente este proyecto) es utilizado con fines comerciales o monetizado de alguna forma, se requerirá un porcentaje del [especificar porcentaje, ej. 10%] de las ganancias brutas obtenidas de dicha monetización. Este porcentaje debe ser negociado y acordado formalmente con Ramiro G Glez.] antes de la monetización.
- Publicación de Modificaciones: Cualquier modificación, mejora o adaptación realizada sobre este proyecto debe ser publicada y puesta a disposición del autor original (Ramiro G Glez.]) de forma transparente y accesible. Esto incluye la publicación del código fuente de las modificaciones, idealmente mediante un pull request o un repositorio público enlazado. El autor original se reserva el derecho de integrar o rechazar dichas modificaciones en el proyecto principal.
Para cualquier consulta, propuesta de colaboración o solicitud de licencia comercial personalizada, por favor, contacta a [mostlyphpsoftware@gmail.com].
¡Disfruta del proyecto!
统计信息
- 总下载量: 6
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: proprietary
- 更新时间: 2025-12-04