今年四月十二日,ETCC开发者关系主管Yaz Khoury在悉尼EDCON会议上发表讲话
这篇文章包含了我今年在悉尼EDCON会议上的讲话。
通过在ECC(Ethereum Classic Cooperative)的开发者团队工作,我对如何促进加密货币社区发展和传播黑客文化有了深刻的见解。
在加密货币开发社区中,开源黑客现在需要律师和公关人员作为他们的线上代表。每个开发决策似乎都与政治决策相关联,这使我认识到我们需要开发者活动家的存在。如此一来开发人员不仅可以免受社区间部落主义的影响,还能利用它来构建更多样化的dApp策略。
这篇文章并非关于ETC和ETH的社区,而是针对ETH开发人员的ETC开发用例。还涉及到独特的网络如何协助开发人员部署智能合约。
在我们开始之前,我想先澄清这段时间以来困扰ETC社区的一个误解。我个人觉得非常有趣。
“ETC都没有开发人员的吗?”
当ETCDev面临破产时,这个笑话就演变成了“大家快看呐,ETC的开发者们都离开了!”
无论如何,当我们在慢条斯理地构建能对其他加密社区有用的工具时,这已经成为了我们社区内一笑置之的话题。
本文将对这些实用工具以及区块链开发人员应该如何利用它们进行探讨。
我接下来要讨论的主题有:
1. Kotti及Goerli测试网
2. Ethernode
3. Mantis客户端
4. Open-RPC标准
5. 研究工作
6. 开发用例
ETH的Goerli项目和ETC的姐妹项目Kotti是我们很早就获得资助的最重要项目。
权威证明测试网络对于智能合约开发人员来说非常有用,他们无需再等待挖出几个新区块就能将他们的合同部署到测试中。
我写了一个使用v0.5 Solidity 在Kotti上部署ETC智能合约的指南,这同样适用于Goerli网络。
我注意到有时很难同时连接Goerli和Kotti,尽管ETC是该项目的独立投资者,但它们经常被并称作Goerli。对此,我一直在寻找解决方案。
最近一直都有关于货币名称的讨论。在Goerli中,他们叫GoEth货币,发音为Goth。
我提 议Ketsy,但Anthony Lusardi(@pyskell on Twitter)建议是Ketchup。我觉得将KETC命名为Ketchup还不错。为了将两个项目名称结合在一起,我建议将项目命名为Gothic Ketchup。
我甚至为它创作了吉祥物:
Gothic Ketchup吉祥物完全能体现我们的团结,也是庆祝合作的好方法。另外,难道玛丽莲曼森穿着KETCHUP服装不是更平易近人吗!?
Ethernode可能是我在区块链领域见到的最令人兴奋的项目,因为它完美结合了我喜爱的事物:
- 定制化硬件
- 区块链节点成为物联网维护者
Ethernode是第一批ETC实验室资助的主要项目之一,也是ETC社区的重要成员。
Ethernode的硬件和操作系统旨在支持所有基于以太坊的机器,因此以太坊开发人员可以亲自动手,并为他们喜欢的任何基于以太坊的网络做开发。
Ethernode支持Multi-geth和Mantis,并附带一个支持B.A.T.M.A.N.的网状网络,它将允许运行以太坊虚拟机(EVM)客户端的每个Ethernode个人以一种去中心化的方式相互发现。因此,去中心化式的节点发现从根本上成为可能,这非常值得敬佩。</font>
Ethernode还附带EnOS,这是一个基于Linux的操作系统,用于在您自己的硬件上运行去中心化dApps。
开发人员可以快速启动客户端,在浏览器中测试其Solidity代码,同时在IPFS条件下,使用我们的开源资源管理器、钱包和耳语协议。
上面的屏幕截图显示了三个Ethernodes,每个节点分别运行ETC,Kotti和ETH,并通过Whisper能够相互通信。这也太犀利了!
Mantis是IOHK的Scala客户端,也是第一个本地以太坊经典(ETC)客户端。
最近,Mantis团队开放了对ETH的支持,因此ETH开发人员和节点操作者现在可以运行Mantis。Mantis也将与Multi-Geth一起包含在Ethernode项目中。
使用Mantis的好处包括充分利用IOHK的形式验证团队来构建客户端,使其成为基于以太坊的更安全的客户端之一。
Open-RPC旨在成为与JSON-RPC 2.0 API接口的文档驱动规范。这使得人和机器都可以使用非常易读的语言来理解RPC中服务的整体功能,其间可生成文档以及客户端。
Open-RPC意义重大,因为它意味着不再需要在RPC调用中使用web3.js粘合剂,只需像“getBalance”那样直接调用RPC端点。它带来的重大影响还包括如果从一开始您的RPC端点就是标准化的且被指定,那么在发生变化时,就不再需要对200个依赖于RPC端点包装的库进行手动更新。
虽然OpenRPC是OpenAPI的一个分叉,但它专门用于JSON-RPC端点,剥离不需要的元素和请求,例如GET(JSON-RPC仅执行POST请求),并且允许用户首先有一个专供区块链的库。
Ethernode目前已经拥有OpenRPC,这是以太坊经典(ETC)开发人员之间一个不容置疑的合作证明。
目前,ETC实验室核心团队的Shane Jonas(@shanejonas on Twitter)提交了针对OpenRPC的EIP及BIP协议。因此OpenRPC可以成为所有区块链的规范。
IOHK在形式验证领域为Cardano和以太坊经典(ETC)做了我喜欢称之为“魔术数学”类型的研究。
有关以太坊经典(ETC)的很多研究已经被提出,甚至可以应用于基于以太坊(ETH)的网络。
例如,NiPoPoW(工作证明的非交互式证明)被称为“独立字符串”,它使您能够在不联机或不需要下载所有块头的情况下验证PoW网络上发生的事件。它可以验证例如支付交易发生的情况。主要用于基于移动设备的应用程序,这些应用程序试图在性能和空间方面达到最佳。
IELE是LLVM(模块化及可重用的编译器和工具链技术的集合)的变体,专门用于在区块链上执行智能合约。它基于使用K框架进行语义研究的团队的经验(其中的KEVM,以太坊虚拟机EVM的语义框架,也由IOHK资助)。
与基于堆栈的EVM机器相比,IELE为基于寄存器的机器带来了优势。这使它具有统一的gas模型,其中没有限制,但是可以根据消耗的寄存器数量来支付他们使用的任何东西。这就意味着使用更多的寄存器就会消耗更多的气体。
考虑到智能合约需要遵守的要求规范,这样就能编写出更安全的智能合约。它的堆栈并不是有限的,因此将不用再担心算术或堆栈溢出。
最后,在数据分析方面,最近我们把以太坊经典(ETC)数据集上传到Google BigQuery和Kaggle云上的项目将为更多想要分析网络的数据科学家开放。在DAO之后对这两个网络进行比较是我们社区成员正在研究的一个非常有趣的对象。
在经济和社会层面具有不同特征的网络可以为开发人员提供有用的dApps的附加属性。
例如,如果开发人员既希望在去中心化的生态系统中使用到最新功能和尖端工具,又想在长期安全性方面进行权衡,那么在ETH上部署dApps是完全说得通的。
通过ETC,开发人员可以部署更加定制化的智能合约来处理敏感数据,因为他们知道不可篡改性和信任最小化等社交层属性可以用作对智能合约的进一步保护。
对于开发人员来说,网络一旦成为社交层功能便可以根据他们的用例明确指定将智能合约部署到对应网络,以此达到帮助他们进行dApp设计的目的。
ETH和ETC之间的关系就像是Debian发行版分裂成的Nightly和Stable,许多前沿的解决方案和功能在被Stable版本采用之前首先会在Nightly版本上运行。由此看来,ETH可以看作是Debian Nightly,而ETC则是Debian Stable。
你们中的一些人可能已经意识到,ETH 2.0核心开发人员和ETC核心开发人员以及利益相关者之间已经就如何协作展开了讨论。
我们旨在探索可以在两条链之间进行协作的方法,其中一个明显的方法就是ETC为 ETH 2.0的第二层解决方案作为基础层PoW链,后来这也被ETC社区中的其他成员提倡。
我们的想法是将ETC与ETH 1.x一起作为基础层,或是ETC单独作为基础层,但这取决于整个生态系统转变为ETH 2.0后ETH 1.x发生的改变。
下图是Donald McIntyre提出的ETC为ETH 2.0提供基础层PoW链的建议。
ETH和ETC之间的协作具有无限的可能性,ETC可以为基于以太坊的开发人员提供许多优势,因为ETC严格遵守工作量证明和不可篡改性的社会原则,这使得开发人员可以在这两条链上部署智能合约。
在使用ETH 2.0的基础上,开发者可以部署智能合约到ETC上以获得新功能提供的最大安全性。
PoW、不可篡改性以及供应上限所提供的安全性使ETC类似一种价值储藏,为更有趣的智能合约组合提供可能性。
因此,我们可以换种方式看待ETC:
如果ETH成为了世界计算机,那么ETC将成为世界保险库。
世界保险库本身不是一种价值储藏,而是一个保护价值储藏货币的整体系统。《哈利波特》中的古灵阁银行就是未来ETC的一个设想。
古林阁银行利用神奇的安全系统在金库之间进行运输,以便巫师撤回他们贵重的金币和银币,这正是ETC进行形式验证研究的目的:在社交层推广不可篡改性原则,以及挖掘新的方法来构建安全的运转世界价值的智能合约。
ETC的未来具有鼓舞人心的力量,它的前路有着种种可能性,但终将殊途同归——坚守网络原则。未来开发者们可以就这一点来构建结合ETC和ETH链的最佳dApps。
翻译来源: https://medium.com/ethereum-classic/etc-wanted-dev-or-alive-2581a5079aa1翻译:Esther
vv