我已经使用arraylist包含对象(块类)在Java中实现了一个简单的区块链。
public static ArrayList<Block> blockchain = new ArrayList<Block>();
...和包含需要存储到区块链中的交易的块类。
public Block(transaction data,String previousHash ) {
this.data = data;
this.previousHash = previousHash;
this.timeStamp = new Date().getTime();
this.hash = calculateHash();
}
交易类包含以下数据:文件病历......的病历标题的哈希值。
public transaction(String title,String date,String pointer,int version,int nbdoctor,int nbsdoctor ,byte[] patient
,String hashdata , ArrayList<byte []> permission , ArrayList<byte []> spermission ,byte[] newdoctorkey , byte[] newsdoctorkey ,
byte[] removedoctor ,byte[] sremovedoctor)
但是我不知道从这个区块链读取的方式。 我想根据标题字段将数据放入事务对象。 我想要一种快速的方法来将数据访问到区块链中(进入数组列表)。
谢谢。
答案 0 :(得分:0)
这个问题的答案很简单明了。 要读取存储在区块链中的块中的数据,您需要一个“块浏览器”。
现在,根据您所拥有的区块链的类型,您应该选择相关的区块浏览器。对于比特币区块链,您需要一个比特币浏览器。同样,对于以太坊区块链,您需要一个以太坊资源管理器。
答案 1 :(得分:0)
您似乎在理解块概念时遇到困难。区块始终在区块链中包含多个交易。这些事务被构造为Merkle树,以提高读/写性能。如果仅将单个事务放在一个块内,则使用块是没有意义的。那时,您最好使用简单的哈希链,其中每个事务都包含对其前身的引用。
有关更多信息,请参见:https://en.wikipedia.org/wiki/Blockchain