richjenks/merkle

按照与比特币相同的原理生成梅克尔树

v1.0.1 2019-03-17 21:07 UTC

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命令运行测试。