DEVCON2: 谢晗剑—以太坊的Ruby客户端
记者:Lydia
来自以太坊谢晗剑进行20分钟介绍Ruby的应用。
我是去年参与了创建了以太坊ruby客户端的工作,为此我们付出了许多努力也有不少的心得。
首先就是可读性,进行了很强的优化,因此让每个使用的程序员感到非常开心。在计算机届有两种语言,一种是西方的w开头的,另一个就是Ruby。因为非常灵活,因此大家都用来定义智能合约的ESL。
我们创建了teth,这是智能合约部署的框架,我们可以有bigthing,这是下一个项目的名称。
对于我们的bigthing包括一些测试,以及一些合约,然后我们可以把代币作为智能合约的名字使用,这是一个solidity语言的应用,这样的测试是很简单的,我们看到assert合约不是最新的,这是一个生成的工具,在讨论真实的智能合约工具之前,我们讨论一些背景的关键词。一个是状态,可能是合约的状态,另一个是区块头,还有一个就是合约,可以在API的界面进行使用,我们可以调用合同对象里面的不同函数,也可以参考私钥公钥的测试地址,同时对这些任意生成的账户进行命名,这是一个真实的测试,我们可以看到发行者,右边是测试,一开始向Bob发送了100个代币,Bob转账了90,这种情况下,进行转账是可行的。
大家可以看到测试本身是非常严密的,你不需要进行回调,只需要有测试,就有反馈。可以加快开发周期,现在我们可以看到如果有这样的合约可以直接进行测试,可以立即都到代码,如果发生问题,可以立刻回去进行改善。在其它方法上部署合同,如果你忘了向Bob发送100代币,直接转给Karen,你就会发现测试出现错误反馈。我们可以Log调试器,我们可以在合约中加入一个日志,测试的网络可以了解合约发生的事情,可以做一些事情检查审视合同。如果在进行测试失败时,会对日志进行答疑,找出故障,在合约中有个事件可以看到整个事件的部署,可以看到金额。所以我们看到可以支持其它的语言。
所以这个测试成为可能的原因是我们创建了ruby-ethereum,这是以太坊虚拟机的实现,整个过程非常简单,我们可以第一时间获得反馈,目前ruby已经参与到许多项目,我们还有其它在公钥私钥领域都是用了ruby-ethrerum,通过ruby-etherum我们可以建立reth,所以我们也需要ruby-devp2p。
作者:Lydia | 来源:Chainb
![btcfans公众号](/assets/image/ic_qrcode_accround_endpage.png)
Scan QR code with WeChat