java - 在网络上共享对象(区 block 链)

标签 java share distributed blockchain mining

我在 Java 上创建了一个简单的“区 block 链”。

区 block 链类是 block 的 ArrayList<>。这些 block 由:哈希码、先前的哈希码和废话计数器组成。当一个 block 被创建时,它被添加到区 block 链中,但是,直到算法 (SHA256) 被解析,它是不可能分配其他的。如果哈希码是唯一的,则添加成功或删除 block 。

我现在想做的是在网络上共享区 block 链,这样 SHA256 算法将不会由本地机器解析,而是由网络上的用户解析(例如,比特币挖掘)。

所以我的问题是:如何在网络中的不同机器上共享同一个对象?

您可以从 Git 下载代码:

Blockchain code

最佳答案

这是一个有点复杂的问题。有不同的方法,但通常一个节点也会保留它所连接的节点列表,并通知它们进行更改。此外,一旦他们开始通信,您就应该开始担心链中的差异(例如,如果一个节点上的链与另一个节点上的链不同,但两者都有效)。对于比特币,它需要更长的时间才有效。

这是一个非常宽泛的问题,有着非常宽泛的答案。您可以在此处查看使用 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/

相关文章:

java - 如何使用java备份mssql数据库?

java - 将java文件转换为Excel电子表格

java - Hazelcast IMap : keySet() versus localKeySet()

java - 使用 JSR303 验证整数

java - java 中的秒表

Android 图库 "share via"和 Intent.EXTRA_STREAM

android - 使用 Android Facebook SDK 3.0 共享链接和文本

iOS:如何检测选择了哪种事件类型并正确执行共享屏幕

messaging - Akka actor可以将其传出邮件存储在持久邮箱中吗?

java - 分布式计算应用