下面是实现 Merkle 树的 Java 代码:
``` package test;
import java.security.MessageDigest; import java.util.ArrayList; import java.util.List;
public class MerkleTrees {
// 交易列表
List /**构造函数
* @param txList 交易列表
*/
public MerkleTrees(List /**执行 Merkle 树
*/
public void merkle_tree() {
List /**返回节点哈希列表
* @param tempTxList
* @return
*/
private List /**返回 16 进制字符串
* @param str
* @return
*/
public String getSHA2HexValue(String str) {
byte[] cipher_byte;
try {
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(str.getBytes());
cipher_byte = md.digest();
StringBuilder sb = new StringBuilder(2 * cipher_byte.length);
for (byte b : cipher_byte) {
sb.append(String.format("%02x", b & 0xff));
}
return sb.toString();
} catch (Exception e) {
e.printStackTrace();
}
return "";
} /**获取 Merkle 树根节点
* @return
*/
public String getRoot() {
return this.root;
}
} ``` 我们将交易的数据放入到List中: ```
List 计算出每个数据的hash值,从左到右逐步组成树的左右节点。执行循环直到最后只剩下一个数据。 ```
private List 下面我们进行一个简单的测试: ```
package test; import java.util.ArrayList;
import java.util.List; public class App {
public static void main(String[] args) {
List
凤凰网WEMONEY4月23日,在UP2018在腾讯新文化创意生态大会上,腾讯发布了首次AR手游《一起捉妖》。中链区块链能投资吗?_区块链被攻击的代币_区块链代币可以用法币代替据了解,基于腾讯区块链技术,游戏中的虚拟数字...
近年来,伴随区块链技术的兴起,“区块链+”时代强势来袭,区块链+泛娱乐更是水到渠成地应运而生。目前,大多数区块链应用基于以太坊开发,但也遇到一些问题,比如高延迟、高费用、扩展性等问题一直没有得到很好的解决,这让很多人对区...
预计到2050年,全球人口将达到97亿,实现粮食安全的目标将是一个巨大的挑战。什么是粮食安全?粮食安全被定义为每个人都可以在物质和经济上获得足够、安全和有营养的食物,以满足他们积极和健康生活的饮食需求和食物偏好。由于社会...
1、比特币作为一种点对点的电子现金系统,具有许多传统货币所没有的优势。加密。所有用户的比特币资产都得到了有效的隐私保护,而无需在实名系统中注册比特币钱包。B 安全。比特币的成功主要归功于其共识机制 POW(工作量证明)的...