开发基板运行时模块和基板智能合约(例如使用ink!语言)有什么区别?
最好用一种形式或另一种形式编写的应用示例有哪些?
答案 0 :(得分:4)
基板运行时模块和基板智能合约是用于构建“分散式应用程序”的两个完全独立的平台。这里可能有一个更好的术语,但是出于这篇文章的目的,我的意思是,除了智能合约之外,区块链本身也是分散的应用程序。
传统的智能合约平台允许用户在一些基础区块链逻辑之上发布其他逻辑,在Substrate中将其称为运行时。由于此代码可以由任何人(包括恶意行为者和经验不足的开发人员)发布,因此围绕智能合约平台构建了许多故意的安全防护措施。一些示例是:
这些不同的开销使运行合同的速度变慢且成本更高,但是合同开发的“目标受众”又不同于运行时开发人员。
合同可以使您的社区在您的运行时逻辑之上扩展和开发,而无需经历提案,运行时升级等的所有疯狂行为。它甚至可以用作将来运行时更改的测试依据,但是这样做可以使您的网络与可能出现的任何增长中的烦恼或错误隔离开来。
摘要,底物智能合约:
运行时模块不能提供智能合约为您提供的这些保护或安全防护。作为运行时开发人员,您生成的代码上的输入栏会迅速增加。
您完全控制网络上每个节点将运行的基本逻辑。您具有对所有模块中每个存储项目的完全访问权限,可以对其进行修改和控制。您甚至可以用不正确的逻辑或差的错误处理来构建链。
基板运行时模块开发旨在产生精简,高性能和快速的节点。它不提供事务恢复的任何保护或开销,并且不会在您的链上运行哪些节点的计算中隐式引入任何费用系统。这意味着在开发运行时功能时,您可以正确评估和向运行时逻辑的不同部分收取费用,以免恶意行为者滥用它并损害您的网络。
总结,底物运行模块:
底物运行时模块和底物智能合约是为您提供的解决问题的工具。
每个人可以解决的问题可能有很多重叠,但也存在一组仅适合这两个问题的明确问题。每个类别中只有两个给出一个示例:
除了上面写的所有内容之外,您还需要考虑使用某种工具来建立DApp的成本。部署合同是一个相对简单,容易的过程,因为您可以利用现有网络。唯一需要支付的费用就是您为部署和维护合同而支付的费用。
另一方面,建立自己的区块链需要付出代价,即建立一个社区,在您的服务中寻找价值,或者以云计算系统和常规网络维护的开销建立专用网络。
我认为现在真的是第一次构建运行时逻辑是如此容易和容易。过去,即使不是最适合工作的工具,每个人都使用可用的工具“智能合约”建立他们的“去中心化应用程序构想”。
随着Substrate的推出,有一个新工具可用于构建您的去中心化应用程序;但同样,认为您的所有想法都应该是Substrate Runtime Module是错误的。
相反,作为社区的第一次,我们有两个工具,我们需要一起弄清楚哪种情况最适合每种情况。我认为目前尚无所有答案,但是我们可以在此过程中学习并做出一些有根据的猜测。