LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资产 > 我们已为CKB开发骑士们准备好了头盔、铠甲和兵器

我们已为CKB开发骑士们准备好了头盔、铠甲和兵器

2020-07-02 Dew_x 来源:区块链网络

三年前,我们踏上了构建区块链平台的旅程,作为开发人员,我们开始使用并依赖该平台。在基本原理的基础上,我们开始制定源于以下问题的Nervos CKB的支柱架构:

安全:人们可以在CKB保护资产的同时放心吗?稳定性:人们能否在未来几十年内依靠CKB生存?绩效:人们能否相信,只要达到了前面两个目标,CKB就能提供同类最佳的绩效?

我们非常努力地解决所有这些问题,我们坚信Nervos CKB可以为这些问题提供合适的答案。但是,难题仍然是不完整的问题,要使CKB更好甚至还有一大块要解决的问题:

开发人员的经验

与其他解决方案不同,可能会注意到开发人员的经验并不是我们从一开始就关注的问题。这并不意味着我们不关心开发人员的经验。恰恰相反,我们认为开发人员是整个Nervos生态系统中最基本,最关键的部分。这里的矛盾来自于我们对软件抽象的信念。我们认为,Nervos CKB的核心部分应优先考虑安全性,稳定性和性能。

也许有某些方面可能对开发人员的经验有所帮助,但是我们选择不考虑那些方面,因为我们认为,包括这些附加功能可能会影响这3个主要支柱。

为了弥补这些功能的不足,我们正在构建其他层和工具,以增强Nervos CKB的开发能力。自从去年11月发布Nervos CKB以来,这一直是Nervos团队的主要工作重点。

在计算机行业中,我们并不孤单。以我们最受欢迎的CPU为例。现代的CPU仅运行复杂的汇编代码,我们没有听到有人渴望运行Rust或JavaScript的CPU。我们改用编译器和虚拟机,将高级语言翻译成经过精心调整的汇编代码,然后在我们的CPU上运行。通过这样的软件抽象,我们才有机会构建整个计算机辅助的世界。我们预想未来的区块链基础设施将使用完全相同的架构:核心层专注于正确建立基础,而周围的层为开发人员提供帮助。

我们向所有在CKB推出后立即试用CKB的开发人员致敬,即使这意味着只能使用过早的工具。这些拓荒者花费了巨大的精力在Nervos CKB之上构建演示和应用程序,向全世界展示了Nervos CKB的独特功能。

让我们感到羞愧的是,我们没有为那些骑士装备好的盔甲和武器。现在,我们很荣幸地介绍一些Nervos团队的最新作品给所有开放人员:Capsule ,Lumos 、Polyjuice,以帮助您在Nervos CKB上建立dapps。

Capsule(胶囊)

我们旅程的第一步从智能合约或CKB术语的脚本开始。如果您一直跟从我们的路径,那么您会知道,现在CKB上的大多数脚本都是用纯粹旧的C语言编写的。因为我们认为C语言是适合所有人的智能合约语言。这是基于我们仍在努力追求改善创造更好的工具的事实。

当我们在早期需要一种途径来构建脚本时,C语言是我们唯一可行的解??决方案。即使我们是平台的创建者,我们在编写C代码时也要非常小心。我们限制了外部库和我们使用的新功能。查看脚本的一种方法是,它们模仿嵌入式设备的C程序。

但是我们知道这对许多人来说,不是理想的解决方案,如果我们一直用C语言宣传、构建脚本,我们将永远无法赢得智能合约开发人员的信任。现代复杂的智能合约的构建已经非常复杂,更不用说C语言带来了负担。

我们希望为开发人员提供所有最新的语言功能,并且可以利用这些工具来辅助脚本开发。

为了解决这个问题,我们创建了Capsule。Capsule的核心是提供一种使用Rust构建CKB脚本的解决方案编程语言。Rust是一种旨在使每个人都能够构建可靠且高效的软件的语言。经过实践考验的类型系统和所有权模型,健康的社区每天都在开发新事物,再加上整个区块链行业的广泛使用,所有这些都使Rust成为在CKB上构建脚本的理想通用语言。Capsule封装了Rust工具,并为构建用于Nervos CKB的基于Rust的脚本提供了无缝体验。

在语言方面,Capsule还提供了抽象的,以Rust库的形式来帮助构建CKB脚本。核心CKB仅提供与CKB通信绝对必要的系统调用,这意味着使用它可能会有些麻烦。最重要的是,Capsule提供了抽象来简化脚本与CKB区块链的通信。这里的一个类比是,尽管File in Rust使用起来很有趣,但底层的Linux系统调用可能很复杂才能正确使用。我们认为,这是另一个展示抽象力量的案例。

Capsule 作用不止于此。它旨在管理CKB脚本的整个生命周期。它可以帮助您开发,构建,测试,调试以及部署脚本。就像名字暗示的那样,胶囊以极小的外形包装了一个很大的宇宙。我们确实设想了一个世界,在这个世界上,只有Capsule才能从CKB主网上的零脚本变成成功运行的脚本。

Lumos卢莫斯

智能合约只是挑战的一部分。由于某些原因,例如QoS需求或更好地应对不同用例,通常需要在区块链顶部构建后端服务,然后由该服务负责处理用户请求。Nervos CKB也不例外。实际上,由于我们的抽象设计理念,与大多数其他区块链相比,CKB对上层的需求更大。借助这一上层,我们简化了开发人员在制作完美dapp方面的工作。

Lumos就是从这个要求诞生的。Lumos在CKB之上设计,提供了一个基于JavaScript / TypeScript的框架,可以大大加快dapp的开发速度。Lumos这个名字解释了该项目的含义:CKB的奇幻世界虽然辽阔肥沃,但在大部分地区仍然一片漆黑,Lumos照亮了这片土地,引导人们进入这个美丽的新世界。

在初始发行版中,Lumos包含以下组件:

一个高性能的单元索引器,它轮询来自CKB节点的块,对其进行索引,然后提供查询单元的最佳方法。一个事务管理器可以处理所有未解决的事务,并且甚至在提交事务之前就可以使它们的输出单元可用,这可以防止在创建下一个事务之前需要在链上接受由先前的事务引起的问题。统一的配置管理器,处理将框架连接到不同链,例如主网,测试网,devnet等的详细信息。它还跟踪部署在链上的脚本,以简化事务构建工作。用于构造包含许多不同交互脚本事务的统一工作流。我们相信,这种新设计的工作流程可以完美地满足dapp开发人员和脚本开发人员的不同需求。请参考文档网站以获取详细的工作流程。

内置对所有常见脚本的支持。

在这里Lumos中所有可能性都能先睹为快。初始版本提供了基础,但它绝不是完整的。我们邀请所有人加入我们的开发周期,尝试Lumos,还有Capsule,并告诉我们您的使用感受。只有反馈和批评,我们才能真正构建适合Nervos CKB世界需求的抽象和工具。

Polyjuice 多汁

Nervos CKB建立在单元模型上,该模型是UTXO模型的通用版本。在区块链世界中似乎有一种信念,认为难以编写UTXO模型,而使开发人员更容易使用帐户模型。尽管单元模型是UTXO模型的后代,但完全有可能在单元模型之上构建帐户模型。这里的秘密也在于抽象。在较低级别,UTXO风格的设计可以帮助实现并行性,而在较高级别,抽象层可以将帐户模型公开给日常开发人员。

作为工程师,我们都知道一句名言“ Talk is cheap. Show me the code”(哈哈,不懂的给我留言)

遵循这一原则,我们设计并制造了Polyjuice,这是Nervos CKB之上的以太坊兼容层。到目前为止,以太坊可能是最常用和最灵活的基于账户模型的区块链。通过Polyjuice,我们想展示完全有可能在Nervos CKB上使用的帐户模型。实际上,这里的灵活性带来了无数的机会。

为了使事情变得更有趣,我们并没有专门建立为以太坊量身定制的帐户层。我们已经从Polyjuice中提取了核心帐户层。使用此通用库,您可以自由集成所需的任何帐户层。我们希望见证的一个令人兴奋的未来可能性是,

Libra的精确编程模型也可能会移植到CKB,从而实现一个非常富有成果的生态系统。

全新文件

通过所有这些激动人心的项目,我们的旧文档站点已开始显示其年代性的老旧过时。因此,我们翻新了doc网站。该新网站被分为几个部分,旨在帮助您准确地找到你所需要的点:

基础知识:这是起点,如果您只是想了解CKB,它将指导您下载和运行CKB。它将向您展示如何连接到主网或测试网,如何创建新的开发链以及挖掘用于开发的令牌。它还将向您展示如何通过许多工具、例如ckb-cli与CKB进行交互。参考:对于开发人员,这可以用作字典。是否想了解脚本的运行方式?我们将为此提供参考文件。是否想知道单元中可用的组件?我们让你蒙住了双眼去用,是否想学习整个交易验证流程、那就在这里!我们将确保该参考资料涵盖您想了解的有关CKB的所有详细信息。实验室:仅参考文档不会有太大帮助。在本节中,我们将提供有关如何使用CKB进行构建的实际分步指南。无论您是要构建新的CKB脚本还是编写与CKB交互的dapp,我们都将有各种实际的实验来介绍这些练习。集成:外部钱包或交易所在将CKB集成到系统中时通常面临独特且不同的挑战。本节将提供有关将CKB集成到现有服务,例如钱包或交易所中的指南和技巧。随笔:我们有开发商整天约CKB编写 不同的 论文需求。在这里,我们为开发人员提供了编写独立论文的花园。无论是调试CKB脚本,序列化格式,甚至是RPC最佳实践,我们都希望提供一个让每个人都可以分享自己见解的地方。

最终,我们希望全新的文档站点能够回答您有关Nervos CKB的所有问题。

未来

我们相信CKB有潜力建立从发芽到繁荣的生态系统。这里展示的项目只是Nervos CKB支持的许多新思想和范例的一瞥。我们的希望是,这些项目可以提高您构建CKB dapp的效率,并激发只有Nervos CKB才有可能的新方向。话虽如此,我们已经超越了眼前的视野,而在我们发文时,已经正在建设一些更有希望的项目:

WebAssembly开始在区块链领域获得越来越多的使用。尽管我们认为RISC-V更适合Nervos CKB,但这并不意味着我们无法提供一流的WebAssembly支持。我们现在正在建立一个项目,该项目可以将任何WASI支持的WebAssembly程序转换为CKB脚本。除了像AssemblyScript这样的新编程语言支持之外,我们相信这还可以释放新的潜力,例如跨不同区块链的互操作性。上面我们已经在CKB上展示了通用语言支持,但是旅程并不止于此。深藏在CKB VM的模型中,还有更多的潜力,只有使用定制设计的编程语言才能展现出来。本着这种精神,我们也在研究在CKB上创建针对脚本开发的专用语言的可能性。这些尝试准备就绪后,将释放出CKB独特设计所带来的更多功能。当前发布的项目主要满足后端开发人员的需求。也有许多同样渴望加入CKB仙境的前端或应用程序开发人员。我们还致力于提供nocode工具,使那些好奇的人能够在Nervos CKB上构建完整的dapp体验。

我们确实相信CKB的潜力是无限的。除了上面提到的所有内容外,我们还在CKB上尝试更多的想法并开发更多的工具,我们真诚希望将来与您分享。

要保持最新状态,请加入我们的社区:Discord — Github — Nervos对话论坛 — Twitter

对于讨论或问题,请在Discord上加入对话, 或查看我们的社区电报渠道:英语,韩语,俄语,日语,西班牙语,越南语 和中文

翻译自官网:

A Tale of Abstractions: the quest for better CKB developer tools

https://nervosnetwork/a-tale-of-abstractions-the-quest-for-better-ckb-developer-tools-550aed756a91

—-

编译者/作者:Dew_x

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...