昨天晚上我们在伦敦举行了一场开发者见面会。参与人员有来自IOHK的博学人士和社区的活跃分子。非常感谢伦敦区块链实验室,LSE区块链协会以及UCL提供的支持和非常棒的场地。
Duncan Coutts:对Cardano开发的思考:过去,现在和未来
过去
Duncan开场简短介绍了Cardano的时间线。2016年9月,开发团队完成代码的第一次提交,2017年9月主网发布,今天我们开始对功能进行常规的滚动升级。
随后,介绍了交易所的作用。对加密货币来说,交易所非常重要,因为没上交易所,那么加密货币就没有任何价值可言。主网启动的时候,只有一家交易所。今天,大概有十几家交易所,而且有相当大的交易量。即将发布的钱包API 1.2 版本更好地对交易所的功能进行优化设计,因此,我们能够期望更多功能整合进Daedalus钱包。
Neil Davies补充说,因为关于钱包如何被交易所使用(还没开发完成)没有现有的详细说明,所以开发这个系统会是一个有趣的学习过程。许多时候,交易所的操作方式并不符合你的期望,他们也没有以设想的方式与API交互。
现在
当前,IOHK开发团队从部署钱包和主网的过程中获得一些经验和教训。好的一面是他们实现了核心系统的稳定,这意味着核心系统没有出现任何的故障。
但是,经过反思,他们明白:
-
性能要求需要被清楚地理解。
-
性能工程设计需要更早完成。
-
分布式的并发和网络连接比较难。
这个反思的结果就是这些难题需要通过更形式化的方法来解决。
另一个教训是钱包后端。Daedalus有前端和后端两部分。后端出现了一些问题,主要是终端用户没有注意到的方面,而是和交易所有关的部分。Daedalus钱包后端必须要能处理交易量的突然猛增。但是,这导致了要重写钱包后端的数据层,他们现在完成了30页半形式化的详细说明。
这部分介绍的另一个话题是“Cardano清算层的健壮性和灵活性”。团队的目标是开发一个健壮的系统,它能够保护价值,人们信赖它,它是人们想存放资产的所在。开发团队努力创建一个被设计成能够“存活下去”的系统。Neil讨论了Cardano系统如何像在亚特兰大中部地震生存下来的结果,当时地震引发的大火让许多国家的数据中心毁于一旦。Cardano被设计成具有关停和重启的能力,如果需要这样做的话。所有这一切听起来好像“提供的功能太多”,但是,这样做是要用健壮的Cardano来替代现有的系统(考虑到了风险以及缓解措施)。
他们也进行了基准测试,一种用来使系统运行更好的方法。测试内容包括被证实为重要风险的DDoS攻击或者绕过DNS解析的攻击(比如最近的MyEtherWallet攻击)。
最后,Duncan和Neil讨论了半形式化软件开发。这个方法仍旧基于准确的、数学的记数法和系统,但是要用一页纸的内容来表示。通过以一页纸的形式,他们被迫认真思考,尽可能精简不必要的内容。Ducan的“基础模型”适合用一页纸表达(这适用于所有的加密货币,不是只针对Cardano),这样做的意义在于任何有数学或计算机科学背景的人能够读懂它,形成一种该有的可靠的理解。这也考虑到随后的讨论;在研究人员和不是Haskell程序员以及编写这个代码的开发人员之间的讨论。
未来
首先,智能合约平台已经发布。智能合约作为利用区块链的程序或应用程序。以Cardano为例,在采用两种方法。
1)传统方法(比如以太坊):K-EVM和IELE
2)全新的方法:Plutus,Plutus Core,Marlowe
K-EVM对应于EVM,但是有更高的可信度,IELE派生于它,它修复EVM那些明显的问题同时做到兼容。Plutus非常像Haskell,Plutus Core则作为一种中间语言,等同于EVM 字节码,Marlowe是一种用于金融合同的特定语言。
其它进行中的内容有:
-
权益池的完全去中心化
-
硬件,轻钱包和手机钱包
-
用侧链分离清算层/计算层
-
多货币账簿
-
用IELE,Plutus和Marlowe实现的智能合约
-
新的更高可信度的Ouroboros Praos
-
全新的基于RINA的网络层。
对于最后一点,他们讨论了为什么当前的互联网和TCP/IP协议不适用于这个目标。