通过强调以开发者为中心的设计,并通过社区的共同努力,提供引人入胜的开发者体验,我们可以在 Web3 世界中培育一个充满活力和包容性的开发者生态系统!
原文作者:Yiping
原文来源:IOSG Ventures
TL;DR
Starknet 在 2022 年 11 月 29 日推出 Alpha Mainnet。
Scroll 在 2023 年 2 月 27 日推出其 Goerli Alpha Testnet。
zkSync 在 2023 年 3 月 24 日推出 zkSync Era Mainnet。
Polygon 在 2023 年 3 月 27 日推出其 zkEVM Mainnet Beta。
有了这些众多的 ZK Rollup,作为一名 Solidity 开发者,你可能会好奇:
随着 ZK Rollup 的陆续上线,现在是研究 ZK Rollup 开发体验的最好时机。考虑到所有 ZK Rollups 都在推广他们的 EVM 兼容性,我们对开发者体验的探索将从 Solidity 工程师的角度出发,让我们通过数据驱动的答案深入探讨这些问题 ⬇️
开源提升了开发者体验,通过促进质量、安全性和合作。其透明性允许全球开发者解决 Bug 和安全问题,从而持续提升软件。GitHub 充当学习平台,提供对各种编码风格、先进技术和行业标准的访问,丰富了开发者的旅程。开发者可以根据特定需求修改代码。开源通过多样化的社区鼓励协作和创新,推动项目的发展。
项目通常在达到关键里程碑后开源他们的代码,通常是当代码至少达到 Alpha 版本时。仍在进行大量开发的代码不适合开源,因为它们可能无法提供预期的好处,如质量提升、安全性提升和协作学习。因此,开源代码的数量通常与项目开发阶段相关。
所有的 ZK Rollup 都在他们的 GitHub 上投入了大量的工作,尽管他们提供的内容有所不同。
Rust 在许多项目中成为构建编译器、节点、工具链、CLI 工具和虚拟机的首选语言。
开发文档对于开发者体验至关重要。这些资源有效地弥合了 Layer2 解决方案的复杂性和以太坊虚拟机 (EVM) 兼容的开发生态系统之间的鸿沟。
不同的项目提供稍微不同的文档结构和内容。
zkSync 为其特色功能 AA 和 Layer1 <> Layer2 通信提供了详细文档和参考代码。
我们发现了以下改进的空间:
贡献者的数量反映了开源社区的参与度。更新的频率和参与度对于保持最新、全面的文档至关重要。
贡献人数越多代表其开源社区更活跃。大部分项目都在刚上线的时候达到文档更新频率的最高峰。
编码体验取决于工具链、编辑器体验和框架。
相关工具链决定了是否容易设置本地开发环境、调试和运行代码。
编辑器体验决定了编码的速度。一个好的编辑器体验应该包括清晰的语法高亮、定义和自动补全。
框架提供了一个结构化的环境,大大加速了开发过程。它们带有预配置的功能和可重用的库,开发者可以利用这些来有效地编写智能合约,无需从头编写每一行代码。
Remix 类似软件的支持可以帮助开发者在不需要建立自己本地环境的情况下快速开始开发工作。目前,这种云原生的开发体验只适用于后端智能合约。它还需要进行改进以适应 Dapp 开发,包括智能合约和前端。
Warp 表现不佳。Kakarot 将是与 StarkNet 兼容的 EVM 的唯一解决方案。Kakarot 提供了一个非常流畅的 Solidity 开发体验。与所有现有的以太坊工具,如编译器、Remix 和 Hardhat 兼容。
Kakarot 提供了一个用 Cairo 编写的 EVM。作为一个 EVM,Kakarot 能够执行 EVM 字节码程序,使得 Ethereum 智能合约能在 StarkNet 上运行。
测试是智能合约开发的重要方面,它确保了智能合约的质量、功能和可靠性。这个过程包括验证每个功能是否按照预期运行,并在部署之前找出需要修复的任何错误或问题。通过进行彻底的测试,开发者可以有信心,软件将在各种场景和条件下正确运行。这个过程不仅防止了可能影响用户体验的潜在故障,而且帮助维护智能合约的完整性和安全性。测试还使开发者了解到潜在的优化,从而有助于智能合约的持续改进。
Tenderly 是智能合约开发的最佳调试工具之一。它提供智能合约执行模拟、调试器、燃气分析器、分叉和警告功能,以帮助开发者更好地构建 Dapp。然而,Tenderly 并不支持任何 ZK Rollup。
希望在不久的将来,我们能看到更多支持 ZK Rollup 的智能合约开发和调试工具,这将有助于推动区块链技术的进一步发展和应用。
部署过程在智能合约开发生命周期中至关重要。好的部署工具为从开发到链上环境部署智能合约提供自动化、一致和可靠的体验。好的部署工具可以显著减轻手动部署任务的负担,从而加快交付时间并减少人为错误。
StarkNet 的部署步骤分为 Declare 和 Deploy 两步,因此需要较长的时间。
Layer2 解决方案在解决可扩展性、效率和用户体验的挑战方面发挥着至关重要的作用。ZK Rollup 还处在早期阶段,但已经显示出解锁开发者新可能性的巨大潜力。
通过提供如状态差异(State-diff)、无缝的 Layer1 与 Layer2 通信,以及账户抽象化等突破性创新,ZK Rollup 使开发者能够创建创新项目,推动区块链可实现的界限。这些高级特性不仅增强了去中心化应用的能力,而且为区块链技术的主流接纳铺平了道路。
StarkNet 和 zkSync Era 使用状态差异技术,理论上,可以产生更低的费用。他们只发布状态差异,而不是交易输入,这允许数据压缩和降低存储成本。这将会给游戏开发者带来好处。
Polygon zkEVM 在链上发布所有的交易输入,依赖于预期在未来几年内数据存储成本的降低。
大多数 ZK Rollup 提供 Layer1 <> Layer2 通信功能。例如,zkSync Era 提供了一个利用 Layer1 <> Layer2 通信的治理例子。在 Layer1 上,合约可以启动一个 Layer2 合约执行。在 Layer2 上,Layer2 合约只能向 Layer1 合约发送信息。然后我们可以在 Layer1 上处理收到的消息。同样,Polygon 提供了一个关于 Nft-bridge 使用跨链通信在 L1 和 L2 之间共享信息的编码示例。
账户抽象化是另一个令人兴奋的特性。zkSync Era 提供原生的 AA。zkSync Era 的账户可以启动交易,像 EOA 一样,但也可以在其中实现任意逻辑,像智能合约一样。由于 zkSync 原生实现了 AA,账户不需要额外的代理合约。即使是普通的 EOA 也可以有无需燃料费支付的交易,这在仅仅 EIP-4337 中是不可能的。Polygon zkEVM 和 Scroll 实现了与 EVM 兼容的 AA。StarkNet 也正在进行账户抽象化的工作。它寻求实现签名抽象化和支付抽象化。
在这次的研究中,我们深感这些 ZK Rollup 项目在不断改进产品和对开发者的支持方面付出了巨大的努力。然而,考虑到我们还处在区块链应用的初级阶段,面临的开发者群体相对较少,因此,致力于提升开发者体验无疑会帮助项目吸引未来的开发者,并最终塑造这个行业的未来。
以下是一些提高开发周期支持的常见建议:
1,文档:
2,可用性和效率:
3,透明度和更新:
随着 Web3 领域的技术快速进步,以一种可扩展和可持续的方式维持一致的高水平开发者体验,对于 Web3 项目来说是一个显著的挑战。
为了应对这个挑战,我们建议项目探索两个方向:利用 AI 来增强自动化和生产力,减少对大量人力资源的需求,和利用社区的力量,激励贡献。
通过强调以开发者为中心的设计,并通过社区的共同努力,提供引人入胜的开发者体验,我们可以在 Web3 世界中培育一个充满活力和包容性的开发者生态系统!