译者陈军审稿人孙淑娟目前,我们正处于Web3的技术爆发期。作为一名Solidity开发者,如果你想构建一个比以太坊(Ethereum)更快、更安全、更具可扩展性的区块链,那么Flow将是你的选择。本文将详细讨论Flow区块链及其智能合约语言Cadence,并解释为什么以太坊开发人员应该在Flow上构建。什么是流量?2017年,加拿大公司DapperLabs开发了一款新的以太坊收藏品游戏——CryptoKitties。尽管如此,由于只有10,000名用户,它在以太坊网络上造成了严重拥堵,并立即成为头条新闻。DapperLabs的开发人员很快意识到以太坊网络并未针对游戏的运营和扩展进行优化,因此他们开始研究替代方案。DapperLabs努力的成果是Flow区块链。作为一个去中心化且对开发人员友好的区块链,它无需分片即可扩展。同时,Flow针对NFT等数字资产的创建和管理进行了高度优化。Flow的四大支柱Flow区块链的基础包括四个关键支柱:多角色架构面向资源的编程开发人员工程消费者登录这四大支柱不仅使Flow独一无二,而且有助于解决问题。其他区块链面临的共同挑战。接下来我们一一讨论:Multi-RoleArchitectureFlow采用了允许网络扩展的多角色架构。这种独特的设计是通过验证节点实现的。这个节点可以分为四个不同的角色:收集、共识、执行和验证。简单来说,采集节点负责批处理,共识节点负责保护,执行节点负责补全,验证节点负责校验。当然,虽然每个节点会专注于流程的不同阶段,但也会参与验证交易,可以有效提高交易吞吐量。面向资源编程Flow的第二个支柱是面向资源编程。Cadence作为一种面向资源的编程语言,可用于在Flow区块链上开发智能合约。这种优化的智能合约语言通过使用强大的静态类型系统将错误降至最低。同时,由于该语言允许各种前置条件和后置条件,开发人员可以强制执行各种预期行为。我们将在下一节详细介绍Cadence。开发人员工程从一开始,Flow的创建者就专注于支持开发人员并使他们的工作更轻松。如前所述,Cadence智能合约语言是从头开始构建的,旨在使创建和管理资产的过程更加高效且不易出错。开源工具——FlowJavaScriptSDK、FlowGoSDK和FlowPlaygroundGUI使开始使用Flow的过程更加顺畅。各种可升级的智能合约将有助于最大限度地减少代码中的错误,从而创建一个更安全的整体生态系统(更多关于合约不变性的信息见下文)。其内置的日志记录支持为开发人员提供了一种跟踪程序行为的方法。这是许多区块链生态系统不提供的受欢迎的功能。消费者登录可见性安全通常确保用户在运行交易时做出明智的决定。Flow提供的人类可读交易可以确保一定程度的透明度,清楚地显示用户可能被授予的权限,从而避免只签署那些混淆数字和字母的散列交易。FlowWallet具有内置的、可选的、模块化的智能合约功能,可以实现更复杂的授权控制和自动化流程。这些功能不仅可以确保用户不丢失资产,还可以在丢失密钥的情况下提供恢复帐户的选项,从而获得更好的体验。此外,它还允许用户定期回收旧密钥,并通过提供多重签名支持来增加钱包的安全性。什么是节奏?除了提供更快、可扩展的区块链之外,Flow的开发团队还创建了一种新的智能合约语言——Cadence。它旨在优化在区块链上创建和管理数字资产的过程。Cadence的语法受到Swift、Kotlin和Rust等其他现代编程语言的启发。它是第一个高级的、面向资源的编程语言,并利用了强大的静态类型系统。相应地,它可以有效地帮助减少运行时(runtime)错误并确保各种预期行为的实现。说到面向资源,在Cadence中,有一种特殊的数据类型,叫做资源。它基于线性数据类型,代表Flow上资产的数字所有权。NFT等资源可以直接存储在用户的账户中,而不是作为记录反映在公共数字分类账上。此外,它们一次只能存放在一个地方。这意味着Flow上数字资产的所有权是直接用语言本身定义的,从而有效地消除了将余额存储在集中式数字分类账上所涉及的风险。此外,Cadence通过执行严格的操作规则来改进资产管理。在指定是否移动、存储或销毁资源之前,开发人员必须使用“@”符号来定义资源的类型。这种对资产的强制管理杜绝了因代码错误导致资产丢失或意外删除的可能性,减少了各种人为错误。与Flow类似,Cadence建立在以下五个支柱之上:安全和保障-Cadence使用强大的静态类型系统、基于线性类型的内置所有权原语以及对资产管理的基本关注以确保代码的完整性。预期行为并最大限度地减少黑客的攻击媒介。清晰——Cadence的声明性特性确保开发人员清楚他们的意图,并使代码更易于阅读、编写和审查。可访问性——Cadence的语法和语义受到Swift和Rust等语言的启发。其全面的文档、高效的工具和熟悉的环境使开发人员非常容易上手。开发者体验——Flow生态系统通过各种资源支持整个开发生命周期。直观的资源所有权-资产所有权的概念通过资源使用而不是中央分类账内置到Cadence语言中。相应地,资产可以直接与账户存储绑定,无需智能合约,可以自由转移。为什么开发人员应该在Flow上构建?随着Flow不断完善和引入各种协议,以太坊开发者或Web3新手可以通过广泛的架构指南深入了解Flow优化的解决方案,并通过使用其各种工具套件,提高区块链生命的开发效率循环。其中,FlowClientLibrary(FCL)JS包通过强大的SDK提供快速安全创建Dapps所需的各种工具,从而简化钱包的集成。而Flowser(FlowBrowser)是一个创新的区块链开发工具。您不仅可以使用它来检查Flow的主网络、测试网络和模拟器的状态,还可以通过其GUI管理自定义模拟器和钱包。此外,Flow区块链还能够优先考虑环境影响。由于其共识机制和上述多角色架构,它使用比其他区块链更少的能量来进行工作量证明。例如,从能源使用的角度来看,执行谷歌搜索的能源成本可以用来创建12个FlowNFT。Flow是最环保的区块链。Flow和Ethereum的比较我们将从以下几个重要方面和区别来全面比较Flow和Ethereum:交易费用和速度Ethereum在网络需求高的时候会因为交易成本高而增加费用。这通常是区块链网络用来将交易量保持在可管理水平的机制。也就是说,当区块空间需求很高时,费用会上涨以阻止人们进行部署。此外,以太坊上的区块需要每12到14秒确认一次,最终确认发生在6个区块内,可能需要1分钟以上。这将其最大事务吞吐量限制为每秒大约15个事务。为了满足数百万用户的需求,这方面需要改进。Flow是在考虑到这些挑战的情况下创建的。上面提到的多角色架构将导致区块大约每2.5秒完成一次,或每秒大约100个交易。它在主网上的部署和交易成本只是以太坊主网上的一小部分。合约不变性总的来说,以太坊智能合约的不变性在部署中有利也有弊。一方面,由于智能合约部署后无法编辑,即:与你交互的代码一旦上线就无法更改或重复使用,因此可以保证可信度。另一方面,即使是非常熟练的编码人员,第一次部署也很少是完美的,因此任何小缺陷都可能导致大规模破坏,从而造成重大损失。在这方面,为了修复有缺陷的智能合约,开发者必须部署一个全新的合约,以确保他们的用户群使用这个合约。在这一点上,恒定性突出了缺点。并且Flow已经考虑到上述场景及其智能合约的恒常性。当合约部署到Flow区块链时,它们默认是可变的。这意味着如果实时合约出现任何复杂情况,开发人员可以轻松更改它。当然,这并不意味着智能合约完全跳过测试阶段。合约开发团队通常利用软件开发的最佳实践,在测试网对各种合约进行测试迭代,最终部署到主网上。智能合约在主网上运行一段时间后,完成各种最终测试或安全检查。此时,开发者可以选择撤销持有智能合约的账户的密钥。此操作可防止任何进一步的更改,有效地保证了智能合约的不变性。可以看出,智能合约开发者可以随时为任何合约启用恒常性,这是Flow相对于以太坊和其他区块链网络的优势。不断壮大的生态系统除了技术优势,Flow的社区也在快速发展。作为一个强大的开发者生态系统,合作伙伴在其网络中的参与和对内容的贡献都有助于Flow上交易量的稳步增长。值得一提的是,2022年6月是Flow创纪录的一个月,其交易量接近3400万笔。当大多数人听到Flow区块链时,他们会想到NBATopShot的不可替代代币。事实上,Flow也已经广泛涉足DeFi和游戏领域。其中,基于Flow区块链聚合器——Flowverse的Chainmonsters和Zeedz是引领游戏领域的热销产品。在DeFi领域,Blocto打造了去中心化交易所——BloctoSwap和IncrementFi。您可以通过链接查看更多基于Flow的项目——https://www.flowverse.co/projects。此外,Flow生态系统从Flow生态系统基金获得了7.25亿美元,以帮助开发人员在Flow的基础上进行建设。可以预见,随着Flow技术的完善、知名度的扩大、资金的积累,开发者对Flow和Cadence的需求,以及基于Flow构建的项目将不断攀升。总结随着CryptoKitties的成功,DapperLabs团队很快意识到以太坊已经无法支持大型区块链游戏。为了优化数字资产的创建和管理,他们创建了Flow区块链和Cadence智能合约语言。对于以太坊和Solidity开发人员来说,现在是开始构建更快、更安全和更具可扩展性的区块链的最佳时机。如果您想了解有关在Flow上进行开发以及如何使用Cadence的更多信息,请访问https://developers.flow.com/。译者简介JulianChen,社区编辑,拥有十余年IT项目实施经验,善于把控内外部资源和风险,专注传播网络与信息安全知识与经验。原标题:FromEthereumToFlow–AnIntroductionToTheFlowBlockchain,作者:JohnVester
