下面是实现 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手游《一起捉妖》。中链区块链能投资吗?_区块链被攻击的代币_区块链代币可以用法币代替据了解,基于腾讯区块链技术,游戏中的虚拟数字...
近年来,伴随区块链技术的兴起,“区块链+”时代强势来袭,区块链+泛娱乐更是水到渠成地应运而生。目前,大多数区块链应用基于以太坊开发,但也遇到一些问题,比如高延迟、高费用、扩展性等问题一直没有得到很好的解决,这让很多人对区...
2021年2月21日,比特币创下58330.57美元的新高,逼近6万美元的关口,十年间上涨6500余倍, Elon Musk(Tesla创始人)获利超过9亿美元。其实比特币只是区块链的众多应用之一。那投资者怎么进行区块链...
最近,区块链和比特币这个词非常流行,但什么是区块链,什么是比特币呢?区块链和比特币之间的关系是什么?这些将是本文将涉及的问题。区块链与法律的交错可分为三个方面:首先是区块链行业的监管。以典型的分散比特币为例,由于没有集中...