我在 Java 上创建了一个简单的“区 block 链”。
区 block 链类是 block 的 ArrayList<>。这些 block 由:哈希码、先前的哈希码和废话计数器组成。当一个 block 被创建时,它被添加到区 block 链中,但是,直到算法 (SHA256) 被解析,它是不可能分配其他的。如果哈希码是唯一的,则添加成功或删除 block 。
我现在想做的是在网络上共享区 block 链,这样 SHA256 算法将不会由本地机器解析,而是由网络上的用户解析(例如,比特币挖掘)。
所以我的问题是:如何在网络中的不同机器上共享同一个对象?
您可以从 Git 下载代码:
最佳答案
这是一个有点复杂的问题。有不同的方法,但通常一个节点也会保留它所连接的节点列表,并通知它们进行更改。此外,一旦他们开始通信,您就应该开始担心链中的差异(例如,如果一个节点上的链与另一个节点上的链不同,但两者都有效)。对于比特币,它需要更长的时间才有效。
这是一个非常宽泛的问题,有着非常宽泛的答案。您可以在此处查看使用 websockets 的区 block 链的简单 javascript 实现:
https://github.com/lhartikk/naivechain
或者一个简单的python实现: https://github.com/sMustafov/Blockchain/blob/master/blockchain.py
或者这是我用 Java 写的 :) 虽然不完整,但它只是做一些培训和想法
https://github.com/veso1001/blockchain/tree/master/src/main/java/imbachain
关于java - 在网络上共享对象(区 block 链),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49942620/