UPE:金色相对论之High-Light:百度XuperChain开源

5月28日,百度超级链Xuperchain正式宣布开源。根据官网显示,链内并行技术、可插拔共识机制、一体化智能合约等四大技术支撑开源,让区块链应用搭建更灵活、性能更高效,全面赋能区块链开发者。

金色相对论之High-Light第一期请到了百度的资深研发工程师、此次负责XuperChain底层技术开源的孙君意作为首期嘉宾,金色财经技术男神潘瑞携手佟掌柜,专研最前沿的区块链技术与应用,为金色财经读者带来最精彩的技术AMA社群讨论~第一期迎来流量霸主百度,一起聊聊开源的那些事儿!

佟扬:大家早上好~今天是个好日子~金色财经的新栏目High-Light上线啦~High-Light旨在打造最精彩的技术AMA社群讨论~所以除了佟掌柜外,我还邀请了我们金色财经的技术当家人潘瑞潘总来一起跟大家讨论技术的那些事儿~欢迎潘瑞

潘瑞:谢谢大家很高兴可以与大家一起学习分享

佟扬:我先来介绍一下潘总。潘瑞,技术当家人~曾就职于国内最著名论坛服务商Discuz!、腾讯、伙伴集团,现任金色财经联合创始人

佟扬:介绍完潘总,就要有请出我们本次的嘉宾啦~我们本次请到的是百度的资深研发工程师孙君意孙总@百度超级链-孙君意,欢迎做客金色相对论之High-Light

百度在区块链领域的布局

佟扬:@百度超级链-孙君意孙总大家都对百度在区块链方面的布局非常感兴趣能否请您先代表百度先简单介绍一下呢?

孙君意:朋友们,大家好。我叫孙君意,是百度区块链实验室的资深研发工程师。我在超级链里面负责架构设计,也是负责这个超级链活动的宣讲和推广。

孙君意:上图是百度超级链的产品体系。左边是我们的核心技术XuperChain,它包括XuperUnion、XuperCore、XuperCross和XuperLight四个主要的技术。这次我们开源的是XuperUnion,主要是联盟链的一个技术,包含着我们六大核心技术中的四个。

右边是基于超级链,我们做了很多行业解决方案,这里面会和比如说可信计算、大数据然后还有边缘计算都有一些技术的融合,然后产生的XuperFair、XuperIPR、XuperEngine、XuperData和XuperEdge。

XuperUnion开源地址:github.com/xuperchain/xuperunion

后续我们会还会开源我们的XuperCore,是和公开网络技术相关的一些组件,还有XuperCross,是和跨链有关的技术。还有将来会再开源XuperLight,它主要解决的是在一些IoT设备上部署我们的轻量级的节点,这里面有很多技术问题要在XuperLight里去解决。

孙君意:这张图是我们超级链底层的六大核心技术。首先第一点是超级节点技术,因为现在抛开共识算法的计算以外,其实区块链的性能还存在很多问题,尤其是在智能合约这里还不能做到并行、利用多核能力的计算模型。然后,超级链实现了计算和存储分离的这样一个架构,即一个节点,它表面上是节点网络中的一个节点,它的背后则是一个强大的、分布式的计算和存储集群。

第二个链内并行技术,链内并行技术是说基于经典的UTXO模型,演化出来一个XuperModel模型,它能够支持多个事务并行的去处理和校验智能合约,从而利用多核和甚至是多机的计算资源。

第三点是立体网络技术,就是基于我们的平行链还有侧链技术,能够让整体的性能达到进一步的飞跃。

第四点,在开发者支持这方面,我们主要是提供了一个一体化的智能合约解决方案,我们通过一个XuperBridge的技术,能够去支持多种虚拟机的可插拔和替换,然后只要实现一些标准的接口,就能把这个虚拟机很容易的移植到XuperChain中。

第五点,我们提供了一个完善的权限帐号系统,这个帐号系统和Fabric那种中心化的权限系统不一样,它是一个完全内置在账本中的一个去中心化的全面解决方案,非常的灵活,支持多私钥控制,每个私钥的权重不一样,然后支持私钥一个集合运算,从而能够去适配很多种灵活的权限模型。

第六个就是可插拔的一个共识机制,因为大家知道现在关于PoW好还是PoS好,关于两者优缺点的争论非常的多。然后我们作为一个技术解决方案,提供了一个可插拔的共识机制。开发者可以很容易地进行二次开发,只要求开发者实现两个标准的接口就可以变成一个插件,放到XuperChain里面,从而可以在他部署自己区块链的时候,选择自己的独有的共识机制,来满足他的客户需求。

孙君意:这个是轻量级节点技术Xuperlight,我们前面也提到区块链在具体的实施过程中,其实大家要解决一个问题,就是怎么保证最开始上面的这些数据没有篡改并且是可信的,比如说是摄像头采集的信息,或者是比如充电桩采集的这些用电信息。

我们提供了一个轻量级节点的技术,可以把轻量级节点很方便的去植入到包括Limux系统、arm芯片等架构的IoT设备里面,需要去解决大量技术问题。我们把整体的解决方案放在XuperLight组件里面,后续会把这些内容开源。另外,在实施项目的过程中也会遇到客户需求不光是标准的椭圆曲线加密,还会有很多其他的需求,比如对国密的支持,尤其在一些政府项目中。

孙君意:XuperData,就是把区块链、大数据和可信计算做了一个融合的解决方案。它解决了什么问题呢?当企业、机构之间要交换数据的时候,会担心数据的权限不可控,数据被复制和数据被窃取等问题,通过把这几个技术进行融合,提供了这样一个平台,然后实现多方数据交换时,数据可用但是不可见。那区块链起到什么作用呢,区块链主要存储了什么数据呢?它存储的是数据的指纹信息,当然指纹数据的变更也会推到这个链上,还有一个数据的使用方去申请信息,申请请求也是上链的,同时数据拥有者的审批也是通过区块链来完成的,这样就使得多方能够对数据的权限、价格流转、使用等都能够达成一个共识,而且是可衡量的,数据的交换的价值本身也是可衡量。

孙君意:目前的超级链和北京,广州互联网法院共建的一个司法区块链系统,这个就是基于我们的XuperIPR解决方案。

佟扬:我先来问一个比较基础的问题哈~不过也是大家非常关心的问题,正好结合现在孙总丢的这些图片,可以更好的说明孙总在宣讲什么。百度区块链部分有百度证据链、数据协同平台、XuperEdge、百度图腾、度宇宙等产品以及司法与版权两个解决方案,请您举例解释一下区块链在这些场景中的运用?其中区块链技术的不可或缺性体现在哪里?

孙君意:例如版权交易场景,通过应用区块链技术进行数据存证及数据溯源。区块链技术能够公证透明地记录、追溯数据资产的来源、所有权、使用权和流通路径,通过共识算法建立可信任的数据资产交易环境,破除数据被任意复制的威胁,保障数据拥有者的合法权益,有助于数据要素流通融合。这个是中心化平台做不到的。

孙君意:这个是后续的Roadmap

佟扬:百度一直强调自己是100%自主研发为什么要重新开发全新的区块链系统.新系统的可靠性和健壮性如何验证?

孙君意:技术是无国界的,但是工程师是有国籍的。几乎每个流行的区块链项目都有一个稳定的核心开发团队圈子,为了不受制于人,尤其对于新兴技术,唯有自主研发才是正途。百度超级链的愿景是让信任的建立更加便捷,未来区块链会广泛应用在各行各业的大量业务,成为信任的连接器,当前我们已经在版权保护、司法存证、数据流通等领域落地了应用,可靠性健壮性得到了验证。此次开源也是为了在更广泛的业务场景中应用,我们也会不断迭代代码、打磨系统,完善文档。

佟扬:感谢孙总,我关于应用场景的问题就问完啦,后面的技术问题就交给我们金色财经技术当家人潘总。

High-Light:近看百度XuperChain开源

潘瑞:好的,感谢孙总的讲解,非常高兴今天作为一位开发者近距离了解百度区块链。我的问题是:XuperChain引入链内并发及多版本事务处理技术,那么它又是如何保证事务的原子性及时序性?是否与分布式数据库的事务相似呢?

孙君意:通过将一个事务涉及的数据变更打包在一个底层KV数据库的Batch写,保证其原子性。事务的处理时序是通过事务的引用关系来定序:DAG的拓扑序。在经典的UTXO模型中,事务声明了“资金引用”,而XuperChain的事务模型中,有两种引用:资金引用和数据引用,通过数据引用来支持通用的智能合约。

孙君意:链内并行原理:节点收到一个事务后,除了校验密码学签名,还会校验其依赖的Input哈希指针(指向依赖的其他事务的output)是否有效(uptodate),如果有效则加载数据构造合约执行环境,然后重新执行合约,验证输出的数据是否和其声明的Output一致。这整个过程都是无锁的,因此能并行,利用多核能力。验证通过后,事务的Output写入账本,这个过程是有锁的,写入前会再次检查一次哈希指针的有效性。整体上的原理和分布式数据库的MVCC并发控制有相似之处。

潘瑞:感谢孙总的回答,我们都知道事务处理最怕的恶魔就是死锁,那么我的下一个问题是:如果具有时序性,是否会产生死锁问题?为什么?

孙君意:不会有死锁。从前面对链内并行的原理分析也可以看到,我们是采用的“乐观锁”的机制,有点类似CPU的硬件同步原语Compareandswap。事务之间最差情况是冲突导致单次提交失败,不会死锁。超级链中事务的提交分为两阶段,预执行(PreExec)和提交(PostTx)。预执行阶段合约对账本是只读(Read-Only)的,预执行结果会返回事务的“读写集合”,其中读集合描述了事务依赖数据各个Key的Hash指针,这个Hash指针指向已经成功提交的事务的Output域。客户端将读写集和自己的签名组装起来,开始第二阶段:提交,节点验证成功后,事务输出才写入生效,进入待上链状态。如果提交失败,客户端可以返回第一阶段重新开始。

潘瑞:了解这样确实安全的实现了并发和事务,我的下一个问题是:XuperBridge是合约虚拟机和区块链账本的桥梁,它的好处当然有很多,可以统一接口,更低的耦合度,但同时也会限制一些灵活性,关于这点是如何处理的呢?

孙君意:XuperBridge通过统一接口降低了将不同类型的虚拟机接入到XuperChain的难度,给予开发者更多的选择来开发Dapp,而不限于某一类特定的编程语言。目前我们已经接入了WASM和Docker来满足不同场景的业务需求,后续我们会开放更多的接口来满足开发者的多样的开发需求。事实上,我们通过XuperBridge也已经支持了以太坊的solidity虚拟机,只是由于License问题,此次不便开源。

佟扬:可插拔共识是否有什么限制?

百度超级链孙君意:当前,每种共识都有他的优缺点。POW太消耗能源,而DPOS经常被质疑是不够去中心化的。所以,在XuperChain的代码中,我们实现了一种可插拔的共识机制,只要开发者自己实现两个接口,编译成插件就可以完成替换,在代码的consensus文件夹中可参考。

潘瑞:作为一名十年以上的开发者,我们深知在技术选型时开源项目对开发工具、开发流程、开发文档、开发社区的重要性,XuperChain对开发者友好方面我们都作了什么呢?

百度超级链孙君意:在应用开发的支持上,我们是有自研的Wasm虚拟机,目前已经支持了C和Go这两种主流的编程语言,未来支持其他的也非常方便。而且,提供了丰富的智能合约样例代码,公开发者参考。代码质量有诚意的,如单元测试、代码风格、注释等方面我们一直严格要求,通过goreport检查获得了A的成绩。

在架构方面,超级链是完全的可插拔架构,如果编译过我们的代码,会发现我们的程序是由一个主程序和若干个模块插件so组成的。开发者完全可以根据自己的需要灵活地替换插件。比如,实现一个自己的共识算法,实现自己的加密库等等。

潘瑞:感谢孙总的回答,看到XuperEngine可以允许开发者快速构建自己的区块链系统,我的问题是:开发者基于XuperEngine创建的链与XuperChain是什么关系?

百度超级链孙君意:XuperEngine提供了一种超级链平台化能力,适合于基于区块链开发应用的用户,他们能够便捷地搭建一整套区块链,在上面快速把应用跑起来,且有完善的监控和配套服务。另外,由于底层对接了百度云,不需要用户担心机器资源层面的问题。XuperChain这次开源的代码,使得用户可以做二次开发,不仅仅是开发智能合约应用,也可以定制自己的区块链。

佟扬:我还有个问题:关于边缘计算目前XuperEdge的目标和目前所处的阶段是什么?

百度超级链孙君意:XuperEdge目标是将闲散的边缘计算资源整合为弹性更好的算力、带宽、存储资源,通过区块链技术让资源更高效的流通和利用起来。目前XuperEdge已经在邀请使用阶段,在未来2个月内会对外全面开放。

潘瑞:感谢孙总的回答,前面了解到了开发者构建自己区块链系统的相关问题,我下一个问题是:百度区块链部署的亮点/技术优势?

百度超级链孙君意:部署亮点:不同于传统的联盟链系统,超级链具备全球化部署能力,节点通信基于加密的P2P网络,支持广域网超大规模节点,且底层账本支持分叉管理,自动收敛一致性,提供了内置TDPOS算法确保了大规模节点下的快速共识。

主要技术优势是:高性能:通过原创的XuperModel模型,真正实现了智能合约的并行执行和验证,通过自研的WASM虚拟机,做到了指令集级别的极致优化。

架构灵活:其可插拔、插件化的设计使得用户可以方便选择适合自己业务场景的解决方案,通过独有的XuperBridge技术,可插拔多语言虚拟机,从而支持丰富的合约开发语言。

安全:内置了多私钥保护的账户体系,支持权重累计、集合运算等灵活的鉴权策略。保障了智能合约运行的安全和可控。

社群提问

佟扬:社群问题1:在场景应用方面,个人觉得SAAS有比较广泛的应用,能解决大型企业不愿意使用中心化的SAAS云服务器以免自家的数据不可控的问题,请孙总赐教,超级链在SAAS方面有没有解决方案,感谢!

百度超级链孙君意:我们各种解决方案开放能力已经具备,也正在建设自己的SAAS服务平台,就是前面介绍的XuperEngine,目前平台正在逐步完善中,正处在测试邀请阶段,如果群里有兴趣使用的,可以线下联系我们申请测试账号。

佟扬:社群问题2:我看百度超级链也参考了超级账本架构,具体是哪些方面?

百度超级链孙君意:这个朋友是说合约预执行么?Fabric的Ledger是不支持分叉的,XuperChain是支持的。Fabric中数据的版本编码是和区块高度绑定的,因此它不支持在同一个区块内多笔事务修改同一个Key。而且,Fabric也没合约虚拟机啊,不支持Gas审计。总之,区别太大了。

佟扬:社群问题3:百度超级链在状态和账本裁剪上如何设计?避免存储增长问题?

百度超级链孙君意:XuperChain中的节点主要分为全节点和轻量级节点,轻量级节点是运行在IOT设备上的,其账本存储是裁剪过的。全节点目前没有支持裁剪,但是底层的存储是抽象了KV接口,默认是一个Leveldb实现,如果单机存储容量也没法满足,也可以实现一个分布式数据库的KV去适配,非常方便。可以参考开源代码的KV文件夹。

佟扬:由于时间的关系,孙总只能回答最后一个问题啦~社群问题4:超级链的可插拔共识机制如何解决因此导致的链与链之间的互操作问题?

佟扬:其他的问题,大家可以加@百度超级链-孙君意,PM哈~

百度超级链孙君意:这个问题很好,跨链技术一直是讨论的焦点,目前我们开源出来的XuperUnion只有平行链技术,没有跨链互操作。后续我们会在XuperCross这个项目中开源我们的跨链技术方案,敬请关注。我们已经建立自己的开源社群,欢迎各界开发者加入,后续还有更多的问题,可以进群交流。

潘瑞:感谢金色财经佟掌柜构建High-Light这样一个技术分享精进平台,让区块链技术同学们一起近距离共识出块。感谢孙总@百度超级链-孙君意,为我们带来的讲解,并让我们全方位了解关于区块链技术及百度区块链技术的方向和思考。谢谢大家

佟扬:那本期的High-Light就到这里结束了~感谢群里所有的技术大咖们~我们下期再见~

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

火必APPGHT:以太坊技术应用大会

活动时间:06月29日–06月30日主办方:CSDN、灵钛科技最近,区块链行业极为关注的一件大事莫过于2019第二届以太坊技术及应用大会了.

[0:15ms0-3:706ms