区块链学习更多的是去理解这种去中心化的思想和去中心化的价值所在,语言倒是其次的东西。
不过由于以太坊和Hyperledger Fabric 对go语言支持最好,所以go语言肯定是要学习的。
如何开始学习以太坊智能合约?
这个指南假设你已经有了一些密码学货币和区块链的基础技术背景。
如果你没有,我建议快速过一遍Andreas Antonopoulos的《完全掌握比特币》(Mastering Bitcoin),Consensys的《用刚刚够的比特币来搞懂以太坊》(Just Enough Bitcoin for Ethereum),或者至少看看Scott Driscoll的短片。
为了继续读下去你得了解公钥和私钥,为什么区块链需要矿工,如何达成去中心化的共识,以及交易脚本和智能合约的概念。另外两个在你开始进行以太坊开发之前需要了解的重要的,相关的概念是以太坊虚拟机和汽油(gas)。
以太坊的目的在于成为一个智能合约平台。它的起源可以被追溯到Vitalik Buterin对比特币做为智能合约平台具有的局限性的评论。以太坊虚拟机(EVM)是以太坊智能合约执行之处。与比特币相比,它为撰写合约提供了更具表现力和完整性的语言。
事实上,它是一个图灵完备的编程语言。一个比较好的比喻是,EVM是一个执行智能合约的分布式的世界电脑。由于智能合约由EVM执行, 必须存在一种限制每个合约占用资源的机制。EVM内运行的每一步操作实际上同时在被所有节点所执行。这是为什么需要有汽油(gas)存在。
一个以太坊合约代码交易可以引发数据读写,密码学原语,调动(发送信息给)其他合约等等昂贵的运算。每个此类运算都有用汽油计量的价格,每笔交易所耗费的汽油单元需要用以太币来支付,根据随时变化的汽油和以太币的汇率计算。相应的价格会从提交交易请求的以太坊账户中扣除。同时每笔交易对可使用的汽油会设置上限参数,用以防止编程错误导致耗干账户中资金。