akondas/php-blockchain

使用 PHP 实现的最小化区块链

1.1.0 2022-05-22 07:17 UTC

This package is auto-updated.

Last update: 2024-09-23 12:13:26 UTC


README

Minimum PHP Version Build License

采用干净代码方法实现区块链技术。通过阅读源代码学习区块链。

路线图

  • 区块结构和哈希
  • 创世区块
  • 存储和验证区块链
  • 带有难度的工作量证明(缺少对难度的共识)
  • 与其他节点通信和控制节点(基于 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)