用MATLAB实现区块链:把区块对象连成链
现在可以把区块连成区块链了,我们用一个新的类叫做BlockChain来模拟它。 首先规定该链中的第一个block可以直接产生,就是genesis
block,这就是上面Block的construtor中,输入参数个数等于2是返回的对象.
classdef BlockChain < handle
properties
totalCount % 用来记录区块的个数
blockArray % 对象数组 用来盛放区块链
end
methods
function obj = BlockChain()
obj.blockArray =[ Block(0,'Genesis Block')]; % 构造blockchain对象时产生第一个 genesis
block
obj.totalCount = 1 ;
obj.calculateGensisBlockHash(); % 计算genesis block的hash
end
function bc = getLatest(obj)
bc = obj.blockArray(end);
end
function calculateGensisBlockHash(obj)
gb = obj.blockArray(1);
Opt.Method = 'SHA-256';
Opt.Input = 'ascii';
str = strcat(num2str(gb.index),gb.data) % 计算方法是把所有的内容做strcat
gb.selfHash &#