1703876353
区块链项目开发指南 2.19 serenity
1703876354
1703876355
serenity是以太坊下一个主要更新的名字。在写本书之时,serenity仍处于开发阶段。这个更新将要求硬分叉。serenity把共识协议改为casper,并将整合状态通道和分片。在写本书时,完整细节尚不明确。
1703876356
1703876357
1.支付和状态通道
1703876358
1703876359
在学习状态通道以前,我们需要了解支付通道的概念。支付通道功能允许将两个以上向另一个账户发送以太币的交易合并成两个交易。其工作原理为:假设X是一个视频网站老板,Y是个用户。X每分钟收费1个以太币。现在X想让Y看视频期间每分钟交一次钱。当然,Y可以每分钟广播交易,但是这里还有些问题,例如X不得不等待确认,所以视频就会中断一会。支付通道可以解决这个问题。使用支付通道,Y可以广播一个锁定交易,为X把一些以太币(比如100个以太币)锁定一段时间(比如24小时)。现在每看完一分钟视频,Y将发送一个签名记录表示可以解锁,一个以太币就进入X的账户,其余的进入Y的账户。再过一分钟,Y将发送一个签名记录表示可以解锁,两个以太币就进入X的账户,其余的进入Y的账户。Y观看X网站的视频过程中,该过程将持续。现在假设Y看完了100小时视频或者24小时时间到了,X将向网络广播最后的签名记录,以把钱收到自己的账户里。如果X没有在24小时内提款,全款会返还给Y。所以在区块链中,我们将看到lock和unlock两种交易。
1703876360
1703876361
支付通道是与发送以太币相关的交易。类似地,状态通道允许合并与智能合约相关的交易。
1703876362
1703876363
2.权益证明和casper
1703876364
1703876365
在学习casper共识协议之前,我们需要理解权益证明(Proof-of-Stake,PoS)共识协议的工作原理。
1703876366
1703876367
权益证明是工作量证明最常见的替代共识。工作量证明会浪费大量算力。PoW和PoS之间的区别就是:在PoS中,矿工不需要解决问题;而在Pow中,矿工需要证明挖矿权益的所有权。在PoS系统中,账户中的以太币被当作权益,矿工挖矿的概率与矿工持有的权益成正比。所以如果矿工拥有网络中10%的权益,它将挖到10%的区块。
1703876368
1703876369
但问题是怎样才能知道谁将挖下一个区块。我们不能简单地让持有最多权益的矿工总能挖出下一个区块,因为这将导致中心化。对于下一个区块的选择,存在不同的算法,例如随机区块选择和基于币龄的选择。
1703876370
1703876371
casper是PoS的一个修订版本,它解决了PoS中的一些问题。
1703876372
1703876373
3.分片
1703876374
1703876375
目前,每个节点都需要下载全部交易,数量庞大。按照现在区块链发展的速度,未来用不了几年,下载整个区块链并同步将是非常困难的。
1703876376
1703876377
如果用户熟悉分布式数据库架构,那么肯定熟悉分片(sharding)。简言之,分片就是在多个计算机分布数据的方法。以太坊将实现分片,以分割区块链并跨节点分布区块链。
1703876378
1703876379
读者可以在https://github.com/ethereum/wiki/wiki/Sharding-FAQ学习将区块链分片的知识。
1703876380
1703876381
1703876382
1703876383
1703876385
区块链项目开发指南 2.20 总结
1703876386
1703876387
在本章中,我们具体学习了以太坊的工作原理、区块时间如何影响安全以及以太坊的缺点;还学习了Mist和以太坊钱包的概念及其安装方法,以及geth的一些重要命令;最后学习了以太坊serenity更新中的新内容。
1703876388
1703876389
在下一章中,我们将学习存储和保护以太币的不同方法。
1703876390
1703876391
1703876392
1703876393
1703876395
区块链项目开发指南 第3章 编写智能合约
1703876396
1703876397
在前一章中,我们学习了以太坊区块链的工作原理以及PoW共识协议保障其安全性的原理。现在我们已经掌握了以太坊的工作原理,所以是时候开始编写智能合约了。有好几种语言可以用于编写以太坊智能合约,不过Solidity是最热门的语言。在本章中,我们将首先学习Solidity编程语言。然后创建一个DApp,用于证明在特定时间的存在、真实性和所有权,即证明一个文件在一个特定时间属于一个特定所有者。
1703876398
1703876399
在本章中,我们将讲解以下内容:
1703876400
1703876401
·Solidity源文件的布局。
[
上一页 ]
[ :1.703876352e+09 ]
[
下一页 ]