akondas / php-blockchain
使用 PHP 实现的最小化区块链
1.1.0
2022-05-22 07:17 UTC
Requires
- php: ^8.1
- friendsofphp/php-cs-fixer: ^3.8
- react/http: ^0.8.1
Requires (Dev)
- phpstan/phpstan: ^1.6
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-23 12:13:26 UTC
README
采用干净代码方法实现区块链技术。通过阅读源代码学习区块链。
路线图
- 区块结构和哈希
- 创世区块
- 存储和验证区块链
- 带有难度的工作量证明(缺少对难度的共识)
- 与其他节点通信和控制节点(基于 ReactPHP)
- 简单的持久化层
- 使用 AWS Lambda 实现无服务器(实验性)
- 开始开发 KondasCoin akondas/coin 🚀(交易、钱包、交易中继、可能还有一些用户界面)
节点
要启动节点
bin/node
默认 Web 服务器端口是 8080,但您可以使用 --http-port
参数进行更改
bin/node --http-port=9090
默认 p2p 服务器端口是 3030,但您可以使用 --p2p-port
参数进行更改
bin/node --p2p-port=2020
API
要控制节点,您可以使用简单的(伪)REST API
[GET] /blocks 响应(所有区块的列表)
[{"index":0,"hash":"8b31c9ec8c2df21968aca3edd2bda8fc77ed45b0b3bc8bc39fa27d5c795bc829","previousHash":"","createdAt":"2018-02-23 23:59:59","data":"PHP is awesome!","difficulty":0,"nonce":0}]
[POST] /mine 请求(原始)
Data to mine (any string).
响应(挖掘到的区块)
{"index":1,"hash":"a6eba6325a677802536337dc83268e524ffae5dc7db0950c98ff970846118f80","previousHash":"8b31c9ec8c2df21968aca3edd2bda8fc77ed45b0b3bc8bc39fa27d5c795bc829","createdAt":"2018-03-13 22:37:07","data":"Something goof","difficulty":0,"nonce":0}
[GET] /peers 响应(所有连接的节点列表)
[{"host":"127.0.0.1","port":3131}]
[POST] /peers/add 请求(包含节点的 json)
{"host":"127.0.0.1", "port":"3131"}
响应:204(空)
测试
要运行测试套件
composer tests
编码标准
检查器和修复器位于 coding-standard.neon
中。要运行
composer fix-cs
许可协议
php-blockchain 在 MIT 许可协议下发布。有关详细信息,请参阅捆绑的 LICENSE 文件。
作者
Arkadiusz Kondas (@ArkadiuszKondas)