区块见闻 区块见闻
Ctrl+D收藏区块见闻
首页 > 瑞波币 > 正文

SUBS:一文了解Substrate与智能合约的异同_区块链运用的技术不包括

作者:

时间:

原创:王大锤搬运:PolkaBase这个系列面向的是智能合约开发者,或者是在智能合约和自己定制区块链之间摇摆不定的从业者。希望读完这个系列之后,可以帮助大家更好地了解Substrate与智能合约的异同,面对不同的业务需求时,可以更加高效进行技术选型。同时,也希望可以给大家提供一些有趣的视角来看待Substrate,欢迎任何反馈。什么是Substrate?

简单来说,Substrate是一个构造区块链的“轮子”。在Substrate之前,如果大家想要快速构造一条链,选择是非常少,而且可定制化程度也很低。基本上公链会forkBitcoin,联盟链会直接使用Hyperledger。Substrate是一个开箱即用的构造区块链的SDK,从简单的智能合约,到中层的链上逻辑,或者底层的p2p网络、数据库、共识,都可以自由定制。关于Substrate入门介绍文章已经很多了,这里就不赘述了。想入门的同学可以看看下面的资料:Substrate初次亮相视频15分钟速成搭链什么是Substrate-fromboka.network什么是Substrate-fromEthfans想要了解更多的童鞋也可以自行google。什么是智能合约

智能合约是部署在区块链之上的一段代码,可以按照合约里预先设定的不可篡改的规则执行功能。因目前主流的智能合约指的都是以太坊上的智能合约,下文中的智能合约指的都是以太坊网络中的智能合约。SubstrateVS智能合约

斗鱼与武汉理工大学签订科技成果转化协议书,内容包括区块链技术转化:11月23日,斗鱼与武汉理工大学针对八项直播领域的先进技术正式签订了《科技成果转化协议书》,分别是720度全景直播技术、AI直播技术、区块链验证技术、基于重力感应器的监测技术、网络连接请求优化技术、弹幕分发算法、直播推荐算法和直播风险识别算法。据悉,性能优化方面,区块链验证技术通过拒绝不合法的客户端视频流请求,避免了视频流盗播。(智通财经)[2020/11/23 21:49:51]

在这里,会从最宏观的角度去理解Substrate和智能合约的异同,不会涉及到具体的功能性demo和细节。更加详细的主题我们会在后续的文章中提及。1.存储类型1.1智能合约和Substrate都有的boolintegersaddress(`accountIdinSubtrate)arraymapenum1.2智能合约(Solidity)中独有的string:虽然存在string类型,但是没有完善的string处理方法1.3Substrate中特有的linked_map:可以遍历的mapper_things:可以认为定点数double_map:双键mapenum:这里单独列出来,是因为solidity中的enum只是数字的枚举,而substrate中的enum包含类型信息1.4单独说明Substrate中没有stringSubstrate中没有string类型,与string对应的,只有Vec<u8>。这就要涉及到Substrate或者是区块链的设计哲学。链上存储是很宝贵的,并且string和Vec<u8>是相互可转换的,因此Substrate决定不用string.Substrate中的enumSolidity和Substrate中都有enum,但是两者存在的意义对整个系统来说是完全不同的。Solidity中的enum更像是一个数字的文字化表述,例如下面的定义:

蚂蚁区块链徐慧:蚂蚁区块链提供的服务更像是一个连接器:5月27日,“英特尔X蚂蚁区块链普惠科技助力中小发布会直播”在线上进行。在圆桌论坛《新基建浪潮下,普惠科技为中小企业带来的发展新机遇》中,蚂蚁区块链首席产品架构师徐慧指出,蚂蚁区块链提供的服务更像是一个连接器,通过区块链技术将产业的链条结合在一起,降低了交易成本,背后是通过区块链降低了信任成本。从区块链的视角来看,云计算、5G、大数据、AI等技术与之密不可分,相互促进。这其中,区块链技术最大的技术价值是解决信任问题。 这也是区块链与新基建之间的密切链接之出。[2020/5/27]

这里的Red,Yellow和Green其实只是0,1,2而已。而Substrate中的enumhttps://doc.rust-lang.org/book/ch06-01-defining-an-enum.html则可以携带类型信息,功能强大。例如Substrate中的Error,

Substrate中的linked_map与Solidity中的map写智能合约的最大的痛之一就是,很简单的存储逻辑却需要多种类型的组合使用。例如以下场景,想要记录一个班级中所有的学生信息,在智能合约中,需要如下声明:

声音 | 中科院郑志明:价值能够自由流转,前提是区块链建立了低成本的信任通道:12月7日,由中国科学院学部主办、中国信息通信研究院等单位联合支持的“区块链技术与应用”科学与技术前沿论坛在深圳开幕。中国科学院信息技术科学部郑志明院士、数学物理学部王小云院士等四位院士发表主题演讲,同时还有300余名来自政府和企业界的代表出席会议,围绕区块链与数字身份、监管科技、金融应用等话题展开讨论。

会上,中国科学院院士郑志明称,价值互联、价值能够自由流转,是人类社会最基础、最重要的事情。其前提是建立低成本的信任通道,这就是区块链能够做到的。“中央在四中全会前组织局集体学习区块链,我们觉得是因为区块链和社会治理的能力和追求息息相关,其中最重要的就是信任”,郑志明院士表示。他同时认为,区块链是去传统信任的机制,是用技术来保证信任的成熟技术,是数字经济发展的必由之路。[2019/12/7]

并且对array进行元素删除并且是一件O(n)的操作,这意味着我们无法支付的起昂贵的gas费用,并且涉及到多个存储的更改,稍不留神可能就会出现逻辑错误。Substrate中提供了多种map,包括map,linked_map,double_map。其中linked_map即是对map提供了iterate的功能。这使得存储和逻辑变得更加贴近真实。想要深入学习Substrate中存储类型的童鞋,请移步Substratec存储类型概览https://zhuanlan.zhihu.com/p/1035109592.更加深度的定制作为一个前智能合约er,深知dapp的痛:gas费用太高,用户玩不起;出块时间长,用户等不起;一般dapp都会有自己的token,但是用户必须现有eth才可以玩,这对不习惯区块链的用户来说是一大门槛;新用户经常弄丢私钥,资产都没了;...这当然不是智能合约的错。站在昨天,智能合约是划时代的产物;站在现在,智能合约的不足需要新的技术来弥补。有些dapp开发者选择不在eth公链上部署dapp,而是自己使用eth开发私链来部署自己的dapp,确实可以解决上述的部分问题,但是类似私钥、多种token对用户门槛的提高,仍然是无法避免的。而Substrate作为区块链开发的“轮子”,因为优秀的框架设计和抽象分层,给开发者提供了多阶定制选择:

动态 | 富达投资集团有望于2018年推出区块链新产品:据Bitcoin Exchange Guide消息,美国跨国金融服务公司、全球第四大共同基金公司富达投资集团表示目前正在开发不同的区块链、数字货币产品和服务。根据相关报道,其目标是在未来几个月内推出产品和服务。富达投资首席执行官Abigail Johnson表示:“我们正在完成几件事,一些事已经被部分完成,但由于时机不对一些事情被搁置了。我们希望能在2018年年底前宣布一些事情。”[2018/9/18]

Substrate分层这里简单介绍一下Substrate的分层,想要深入了解的童鞋可以自己搜索一下,SubstrateNode:节点层。在这一层基本上不做什么改动。就是编译一下就可以运行一个节点了。如果想要做一些改动,就重写一下创世配置文件就好了。重新定义链中的参数,但是无法修改链的运行逻辑。SubstrateFRAME:runtime层。基本上绝大部分的定制化都发生在这一层。在这一层大家可以做的事情很多,概括起来就是修改区块链的运行逻辑。比如转账、治理、链上升级逻辑、staking等都发生在这一层。是智能合约开发者最需要关注的一部分。SubstrateCore:核心层。整个FRAME/runtime层在Core面前都可以被忽略。可以用任何语言从0开始搭建一个runtime,只要它最终可以被编译成WebAssembly.这一层主要包括区块链的一些底层组件,包括共识、数据库、p2p网络等。对于智能合约开发者而言,我们把大部分目光放在FRAME层就可以了。在这一层中,大家可以实现任何可以用智能合约实现的功能,以及用智能合约办不到的事情。比如:自定义tokensystem,除了转账,还实现链逻辑层面上的锁仓、自定义释放规则等;自定义区块间隔时间和手续费:这里,所有原先区块链的出快慢、手续费高的烦恼都可以丢掉,开发者可以自定义出块时长,以及操作手续费多少;实现链逻辑的整体升级;实现链的治理;实现多种账户支持,例如在用户丢失私钥的情况下,如果保证用户的资产不受损失;....所有对区块链操作门槛、用户友好、响应速度的抱怨,都可以在runtime层通过巧妙地设计来化解。接下来会详细聊到其中的一些部分。3.不用重复“造轮子”solidity智能合约开发者,还有一层痛苦就是,需要不停地ctrl+C和ctrl+V。因为solidity是独立于现有编程语言系统的,没有任何可以直接调用的依赖;solidity里自带的library,与其说是library,更像是一段“不配拥有地址的”代码引用。即使有import,前提也是依赖必须自己写。哪怕复制粘贴。这使得大家在写solidity代码的时候,无法直接找到现有轮子,然后下载引入;而是复制粘贴+改写,某种程度上,分散了dapp开发者的注意力,进一步阻碍了dapp的生态进步。毕竟,除了注意复杂的业务逻辑和防不胜防的安全漏洞之外,还要自己写轮子。对此dapp开发者有一段心酸地自嘲,“只要能用solidity写出log(n)就足以创建一个项目了”。Substrate的FRAME,目前parity自己使用Rust语言进行开发,但任何可以编译成WebAssembly的语言都可以用来写FRAME。终于,开发区块链逻辑也可以像正常写程序一样正常进行了。这里举个例子,比如著名的BTC-Relay项目,实现了BTC->ETH的跨链,方法是用solidity在智能合约中实现了一个BTC的SPV,其中最关键的一步就是验证比特币网络中的交易的有效性。验证交易有效性在solidity中的实现,也得益于solidity中提供的precompile的hashfunction和在BTC中使用的一样(SHA256),否则可以想见,这样著名的项目,可能就不会出现。所以,自由地使用各种现有的基础设施,不仅帮助开发者节省时间和精力,更是鼓励整个应用生态层层推进,向水更深、更未知的方向去探索。如果说之前dapp开发者是带着镣铐在跳舞,那现在substrate就是在帮助他们卸下枷锁,更自由地舞蹈。4.自动执行ETH是没有延后执行或者自动执行功能的,所有的交易必须手动触发。有一些区块链平台已经实现了延后执行的功能,但是不能精准控制执行的时间和条件。在Substrate中有一个很棒的自定义功能,on_initialize和on_finalize两个功能会在validator构造区块的开始和结束时自动执行,也就是如果有一些很重要的功能,需要根据是否达到时间点或者条件阈值而触发时,这是一个不错的选择。不建议大规模使用,因为如果需要消耗太多算力的话,会影响到validator的打包出块5.Off-chainworker在写智能合约时,如果想要获取链下数据比如随机数,第一可以自己手动写进去,这样缺乏公信力;或者也可以去请求oracle服务,贵且数据源选择不多。Substrate有一个功能叫做off-chainworker,用来执行一些计算密集并且计算周期长的操作。例如在获取链下数据时,可以把http请求操作写在offchainworker中,可以在runtime中被触发执行,获取链下数据并在请求成功之后把结果返回给链上进行相关计算操作。这不仅给了dapp开发者带来了很多便利,例如随机数请求;更给区块链开发者带来了全新的想象空间。比如在联盟链领域,之前通常的做法就是往左走区块链架构,往右走传统存储服务,因为区块链天然和链下世界隔离的特点,好像很难把两件事情融合在一起。有了off-chainworker,是不是可以发现一些新的交叉地带?请大家此处放飞想象力。6.相似点说了这么多不同,个人感觉,在开发Substrateruntime时,和开发智能合约在思路上,还是很类似的。无论写智能合约还是runtime,首先都会进行填空题操作:以上部分在Solidity中直接按照写代码的方式声明变量和方法就可以了,在Susbtrate中则是在相应的宏内声明,详见上表。所以对于智能合约开发者来说,所需要的只是学习Rust相关的语法,在逻辑构造环节,无缝迁移。Substrateruntime相关资料,请参考:SubstrateRuntime7.安全当然Substrate也不是全都是好处,最大的缺点,就是上手开发确实比智能合约要难。这里的难不仅体现在Rust语法上,还体现在Substrateruntime中的方法不像智能合约一样可以原子调用。即在智能合约中,如果其中一个逻辑失败,那么整个交易执行失败,所有存储更改全部回滚。但是在Substrate中,即使一笔交易在某一处逻辑判断失败,但是在这之前的执行,还是会发生。所以强烈提醒Substrateruntime开发者在开发runtime时,一定要Verifyfirst,WriteLast。总结

资本争相布局 区块链+版权可行性分析:每天有数以万计的数字内容在互联网裸奔,而随着区块链技术的发展,为版权保护提供一套全新解决方案成为可能,这也吸引了一批公司部署。区块链为版权领域的健康发展提供了信息不可篡改、验证使用权利、追溯交易记录等技术支持,促进提高版权登记效率,降低版权登记成本,提高文化企业价值,帮助文化企业融资,消除平台中介费用,方便司法举证。此前,工信部信息中心工业经济研究所所长于佳宁经过调研认为,区块链技术是版权保护天然需要的技术。但不可否认的是,区块链虽是当下热门技术,但应用落地还在路上,在区块链版权认证平台的互通、防侵权技术的局限和区块链版权法律保护等方面还待发展完善。目前资本市场已经对区块链+版权领域表现了积极回应,国内外多个项目均以区块链版权为主攻方向并完成天使轮和Pre—A轮融资,融资金额达到千万元级别。在政府部门积极推动版权保护、诸多企业对区块链+版权应用项目进行落地尝试、人们版权意识不断提高的当下,相信区块链技术在版权保护领域将获得良好发展。[2018/5/15]

作为系列开篇,简单地总结一下Substrate和合约开发的异同。在接下来的系列文章中,会从具体的例子触发,希望可以帮助大家在实操层面,感受到Substrate开发的自由。欢迎任何反馈和问题。

标签:区块链UBSSUBSIME区块链运用的技术不包括BUBS价格SUBS价格Slime Royale Gold

瑞波币热门资讯
FILE:不可忽视的Filecoin可验证存储功能:建立全局网络信任_FYDcoin

新专题——Filecoin协议特有功能,本文是专题第二篇,重点介绍Filecoin协议下的可验证存储功能!存储验证是将Filecoin市场整合在一起的粘合剂.

区块链:区块链“消解”ABS痛点_coc币是不是

出品|CoinVoice文|辛夷6月11日,先锋基金宣布使用区块链技术发行了一笔1.46亿美元的ABS.

比特币:六年换俩皮,雷达币死灰复燃_数字货币

编者按:本文来自蜂巢财经News,作者:凯尔,Odaily星球日报经授权转载。近日,连云港市将贝尔链定性为,将对涉案人员移交检察院审查起诉.

稳定币:市值突破110亿美元:稳定币会成为ETH最大威胁吗?_以太坊

编者按:本文来自碳链价值,Odaily星球日报经授权转载。在最近几年里,加密市场对稳定币的需求不断增长.

ETH:一文了解以太坊2.0秘密共享验证节点技术实现_SDT

编者按:本文来自链闻ChainNews,撰文:MaraSchmiedt,翻译:PlatON,星球日报经授权发布.

SDT:以太坊高手续费会吞噬DeFi的普惠愿景,怎么办?_usdt币交易违法吗香港

编者按:本文来自链闻ChainNews,撰文:潘致雄,链闻研究总监,星球日报经授权发布。很多人将「去中心化金融」归为「开放式金融」的一部分,认为它最终的目标是实现无需许可和普惠的金融基础设施.