任何对学习区块链感兴趣并且具有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