以太坊是首批支持去中心化应用(dApps)的链之一,其应用的后端基于“智能合约”构建,并具有链上事件处理机制。为了解决区块链的三难问题——可扩展性、去中心化和安全性——各种二层(Layer 2,L2)解决方案和汇总技术应运而生。这些L2方案在链下处理交易,并将以太坊作为数据可用性层。然而,虽然L2旨在扩展以太坊,它们并未完全解决计算扩展问题。汇总技术,即便在链下运行,仍依赖于以太坊虚拟机(EVM)来处理交易,这导致了较高的Gas费用。大多数汇总框架面临的一些挑战包括:
计算资源:汇总技术,尤其是乐观汇总,要求额外的计算步骤来生成和验证正确性的证明。这涉及在链下执行相同的交易,然后向主链提交证明,增加了计算负担。
状态管理:保持L2状态与以太坊主链状态的一致性需要大量的计算资源。例如,zk-rollups必须生成零知识证明,这对计算资源的要求非常高。
数据承诺:汇总技术经常向以太坊提交数据(上文提到为调用数据),以确保数据的可用性和正确性。当主链拥堵时,这些提交可能会变得昂贵且缓慢,削弱了使用L2的一些优势。
Cartesi 是一个应用特定的汇总解决方案,拥有自己的 Linux 运行时,为去中心化应用提供专用虚拟机的完整计算能力,并扩展了超越以太坊的设计空间。随着越来越多的解决方案和 dApps 转向模块化方法,Cartesi Rollups 可以部署在模块化配置环境中:可以作为以太坊之上的二层解决方案,作为诸如 Arbitrum、Optimism、Base 或 ZK-EVM 链之上的三层解决方案,或作为独立的主权汇总。通过利用 Cartesi,开发者还可以使用现有的软件栈和不受 EVM 支持的编程语言,从而减少开发者的摩擦,并提供用户体验,这种体验可以通过原生 Web2 流程支持。
开发者的分散化是真实存在的
尽管以太坊生态系统被认为相当庞大,但根据 Statista 的一份报告,只有 1.1% 的开发者使用 Solidity 语言编写代码,而 51% 的开发者仍然在使用 Python 构建应用程序。基于这一差异,可以推断出,不仅仅是让新开发者入门很难,还要让高级开发者仅为了智能合约而学习一种新编程语言也同样困难。换句话说,EVM 的设计空间在实际开发智能合约时非常受限,尤其是在使用像 Solidity 和 Vyper 这样的语言时,这可能并不能很好地激发开发者学习区块链的兴趣。不要忘记,开发者必须先掌握至少一种编程语言,才能获得学习另一种语言的技能,而 dApp 开发仍然在使用诸如 React 这样的库和框架,这些工具的逻辑与 Web2 应用类似。
对于开发者来说,最好的解决方案并不是一种新语言,而是使用他们已经熟悉并擅长的编程栈来开发应用程序。我们正在讨论的是将数百万开发者引入 Web3,这不应该是开发者的任务,他们不应该花时间去了解专门针对 EVM 应用的各种工具。Cartesi 通过抽象语言障碍,提供了一个极好的解决方案。作为开发者,你仍然可以使用 Python、Rust、JavaScript 等语言,并集成不同的开源库来构建用户应用程序。
理解 Cartesi Rollups
Cartesi Rollups 通过提供一个模块化执行层,解决了区块链领域的关键需求,大大提升了去中心化应用(dApps)的可扩展性和性能。借助 Cartesi Rollups,每个 dApp 在自己的高性能汇总应用链上运行,配备了专用的 CPU,确保在 Cartesi 生态系统内没有资源竞争。该设计在保持底层区块链强大安全性的同时,实现了显著的计算可扩展性。
Cartesi Rollups 采用乐观汇总模型,利用故障证明来管理和解决争议,确保可靠且高效的处理。其框架由两个主要组件组成:链上的基础层(如 dApp 合约所在的以太坊)和执行层(Cartesi 处理链下计算的地方)。如果你想深入了解 Cartesi 的架构和这两个组件,可以查看相关文档
https://docs.cartesi.io/cartesi-rollups/1.3/core-concepts/architecture/
将开源力量引入 dApps
开源在科技行业中扮演着非常重要的角色。Linux 是最早真正开源的操作系统之一,它在商业软件中带来了范式转变。Linux 始于 1991 年的个人项目,逐渐转变为一个可以自由分发的 UNIX 开源版本。其资源需求极低,并为开发者提供了根据自己需求构建不同应用程序的自由。Linux 具有足够的“模块化”特性,可以在整个生态系统中分发。例如,使用 Linux 内核并与软件包、框架和配置结合,允许开发者生成新的软件。Ubuntu 是 2004 年发布的著名操作系统之一。
目前,大多数现有库依赖于特定的操作系统,如 MacOS 或 Linux。银行和金融机构长期以来依赖定制操作系统和 Java、C、COBOL、FORTRAN 和汇编等语言来构建关键软件。将 Linux 引入区块链开发可能会在 DeFi、游戏和开发工具方面推动创新,因为它具有灵活性和安全性。在 pypi.org 上有超过 1,000 个专门为使用 Python 语言的区块链开发者构建的库可供使用。
以下是一些在使用 Cartesi 基础设施和构建 dApps 时可以使用的有趣算法和编译器:
rustc(Rust 编译器):Rust 由于其内存安全性和并发特性,正在区块链开发中越来越受欢迎。rustc 对于编译智能合约和其他注重安全性和性能的区块链组件至关重要。
Glasgow Haskell 编译器 (GHC):Haskell 以其强大的类型系统和函数式编程范式著称。GHC 可用于区块链开发,构建经过数学验证的智能合约和金融模型,如 Cardano 中的模型。
使用压缩算法:区块链系统通常处理大量数据,从交易记录到智能合约代码。高效的数据压缩对于减少存储需求和提高网络性能至关重要。压缩算法如 gzip、bzip2、xz 和 lz4 可以用于在将区块链数据存储到磁盘或通过网络传输之前对其进行压缩。选择算法取决于区块链系统的具体需求——是优先考虑速度、减少 RAM 使用,还是减少 CPU 负载。
使用引擎:Linux 还支持多种引擎,主要用于游戏行业,如 FlaxEngine、Panda3D,但在应用程序中还可以使用 Docker 引擎来运行容器,实现应用级别的扩展。
Linux 的开源贡献:Linux 通过发布更多开源库也作出了重要贡献,如 Hyperledger Fabric(一个分布式账本软件)和 Hyperledger IROHA(一个由 C++ 编写的平台,供金融机构用于管理数字资产)。
https://www.hyperledger.org/projects/fabric
开发者抽象与 Cartesi 的模块化扩展
为每个应用程序提供专用虚拟机(VM)能够帮助开发者不必担心工具问题和整体扩展。Cartesi 机器是一种虚拟机,旨在处理区块链应用的链下计算。Cartesi 机器使用 RISC-V 指令集架构(ISA),这是一套开源的处理器指令。它独立运行,能够被一致地重现。开发者可以为各种应用开发定制处理器,从嵌入式设计到超级计算机。
代码执行:Cartesi 机器根据特定输入运行代码,以执行计算、处理数据或根据任务需求执行自定义逻辑。
构建现实世界的应用程序:借助 EVM 基础架构的抽象层,开发者可以专注于构建能够根据需求利用计算资源的 dApps。
扩展开发者的设计空间:在 Cartesi 的世界里,开发者可以使用 C++、Rust、Go、TypeScript 或 Python 等语言来构建链上应用程序,而无需处理特定合约的复杂性。
开始使用 Cartesi 的最佳方法是查看 Cartesi CLI (https://docs.cartesi.io/cartesi-rollups/1.3/quickstart/)或尝试 Cartesi 的 Udemy 课程(https://www.udemy.com/course/cartesi-masterclass/)。
开发者如何使用 Cartesi 构建?
Cartesi 生态系统正在不断发展,开发者在现有的 Web2 基础设施上大力构建功能强大的 dApps。集成 Cartesi Rollups 可以增强他们的应用程序,使其更专注于用户,同时也能使用不同的技术栈进行开发。
Nebula Duel(Rust):Rust 因其性能和安全性而著名,非常适合复杂的区块链应用。借助 Cartesi 和 Linux,Nebula Duel 可以在熟悉的 Linux 环境中利用 Rust 的高级功能,为高性能 dApps 提供所需的低级控制。没有 Cartesi,Rust 的强大功能在区块链中的集成将更加复杂且受限。
Turtlish(Python 与 Matplotlib):Matplotlib 是 Python 中强大的数据可视化库。Cartesi 和 Linux 允许 Turtlish 原生运行 Matplotlib,使去中心化应用能够进行复杂的图形分析。没有 Cartesi,直接在链上实现如此高级的可视化几乎是不可能的。
Comet(JavaScript/TypeScript):JavaScript 对于快速开发和部署业务逻辑至关重要,viem 等库能够实现无缝的 Web3 集成。Cartesi 和 Linux 让 Comet 可以在强大且可扩展的环境中使用这些工具,使开发者更快地将 dApps 推向市场。没有 Cartesi,开发者难以在区块链领域实现同样的效率和集成。
OnChess(TypeScript):TypeScript 结合了静态类型和 JavaScript 的灵活性。Cartesi 和 Linux 使 OnChess 能够在去中心化环境中充分利用 TypeScript 的优势,确保智能合约的可靠性和可维护性。没有 Cartesi,在区块链中有效利用 TypeScript 将变得更加困难。
DeVolt(Go):Go 因其并发功能和效率而闻名,非常适合需要高性能的 dApps。Cartesi 和 Linux 允许 DeVolt 原生运行 Go 应用程序,在安全且可扩展的环境中充分利用 Go 的能力。没有 Cartesi,现有区块链环境的限制将阻碍 Go 在去中心化应用中的全面利用。
如果你正在使用 Cartesi 构建,可以申请展示你的项目。https://forms.gle/bAySRe16nQTXnnnW6
结论
Web3 旨在成为当前互联网或 Web2 技术的去中心化版本,让用户从一开始就能掌控并拥有他们的数据。开发者长期以来信赖 Linux 的开源特性,重视其带来的自由和灵活性。Linux 提供了丰富的工具、库以及成熟的开发环境,提升了去中心化应用的能力。
Cartesi 为开发者提供了直接在区块链环境中利用这些 Linux 功能的机会,打破了 EVM 设计空间的限制。通过允许开发者选择他们喜欢的编程语言和技术栈的模块化构建块,Cartesi 正在吸引更多开发者,并加速 Web3 领域的创新增长。
声明:本网站所有相关资料如有侵权请联系站长删除,资料仅供用户学习及研究之用,不构成任何投资建议!