richjenks / merkle
按照与比特币相同的原理生成梅克尔树
v1.0.1
2019-03-17 21:07 UTC
Requires (Dev)
- phpunit/phpunit: ^8.1@dev
This package is auto-updated.
Last update: 2024-09-18 09:33:14 UTC
README
为任何数据生成梅克尔根
用法
使用Composer通过composer require richjenks/merkle
安装,然后
require 'vendor/autoload.php'; use RichJenks\Merkle\Merkle; $data = [ '8c14f0db3df150123e6f3dbbf30f8b955a8249b62ac1d1ff16284aefa3d06d87', 'fff2525b8931402dd09222c50775608f75787bd2b87e56995a7bdd30f79702c4', '6359f0868171b1d194cbee1af2f16ea598ae8fad666d9b012c8ed2b79a236ec4', 'e9a66845e05d5abc0ad04ec80f774a7e585c6e8db975962d069a522137b80c1d', ]; $root = Merkle::root($data); // 6657A9252AACD5C0B2940996ECFF952228C3067CC38D4885EFB5A4AC4247E9F3 if ($merkle::verify($root, $data)) { // Data hasn't been tampered with } else { // Naughty naughty... }
输入不必是双SHA256输出的十六进制表示,它们只是最常见的用例。
字节序
此库假定其输入将以大端格式提供,即与区块链浏览器上可见的格式相同。如果您想使用此库进行与比特币相关的事情,请注意您需要在创建交易哈希时考虑字节序。有关详细信息,请参阅https://en.bitcoin.it/wiki/Block_hashing_algorithm#Endianess。
如果您使用此库进行其他任何事情,则可以安全地忽略本节。
测试
可以使用composer test
命令运行测试。