任何对学习区块链感兴趣并且具有spring boot基础知识的初学者都可以使用这段代码。
块:
public class Block implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
public int height;
public String prevHash;
public String data;
public long nonce = 0;
public String blockHash;
|
块链:
public class BlockChain {
public static Stack<Block> chain = new Stack<Block>();
}
|
交易:
public class Transaction {
public String fromAddr;
public String data;
|
应用:
@Component
@Scope(value = "singleton")
public class CoreApp {
private List<Transaction> tranList;
public CoreApp() {
System.out.println("Core App Object Creation");
tranList = new ArrayList<>();
}
public void setupGenesis() {
Block genesis = new Block(0, "0", "Genesis");
genesis.blockHash = BlockUtils.getHashofBlock(genesis);
BlockChain.chain.add(genesis);
}
public void addBlock() {
if(tranList.size()==0)
return;
Block b = new Block(BlockUtils.getHeight() + 1, BlockUtils.getLastBlockHash(), tranList.toString());
b.blockHash = BlockUtils.getHashofBlock(b);
BlockChain.chain.add(b);
tranList.clear();
}
public void updateTransactionList(Transaction tran) {
tranList.add(tran);
}
}
|
github