基于区块链的基本特性,区块链通常是由若干个区块构成。在这些区块中分别记录有与该区块的创建时刻对应的时间戳,所有的区块严格按照区块中记录的时间戳,构成一条在时间上有序的数据链条。
该函数只有一个表达式函数体以及一个自推导型的返回值: funsum(a:Int,b:Int)=a+bfunmain(args:Array) { println("sum of 19 and 23 is${sum(19, 23)}")} 返回一个没有意义的值: funprintSum(a:Int,b:Int):Unit{ println("sum of$aand$bis${a + b}")}funmain(args:Array) { printSum(-1,8)} Unit 的返回类型可以省略: funprintSum(a:Int,b:Int) { println("sum of$aand$bis${a + b}")}funmain(args:Array) { printSum(-1,8)}
对于物理世界产生的真实数据,可以将其构建成区块链所支持的标准的交易(transaction)格式,然后发布至区块链,由区块链中的节点设备对收到的交易进行共识处理,并在达成共识后,由区块链中作为记账节点的节点设备,将这笔交易打包进区块,在区块链中进行持久化存证。
无论区块链采用以上示出的哪种共识算法,本轮的记账节点都可以将接收到的交易打包以生成最新区块,并将生成的最新区块或者该最新区块的区块头发送至其它节点设备进行共识验证。如果其它节点设备接收到最新区块或者该最新区块的区块头后,经验证没有问题,可以将该最新区块追加到原有的区块链末尾,从而完成区块链的记账过程。其它节点验证记账节点发来的新的区块或区块头的过程中,也可以执行该区块中的包含的交易。
那区块链技术又何德何能,能有什么过人的地方,可以赢得用户的信任。这就要从区块链技术的几个基础的特性讲起,我们经常讲,区块链技术给我们带来了一个去中心化的,不可篡改的,高可靠性的系统。首先是不可篡改,这样就不需要担心合约的内容会被更改;
其次是高可靠行,我们不用担心系统在条件被满足时不执行合约;然后就是去中心和给我们带来的全网备份,完备的记录完全可以支持支持事后的审计。这样的系统,我们不再需要去相信和我们签订合约的对方,只需要相信区块链系统会把剩下的事完成就可以了。