F Fortune Autonomous Fortune Automation Framework那么 Fortune Automation Framework呢之前在我们Havoc在香港的Mita活动里面呢曾经做过一次然后反响非常强烈大家觉得这东西对大家平时的生产级别的区块链部署有很大的一个帮助尤其是里面的一些用到一些比较非常主流并且有广泛使用的一些开源框架那么也有感于上次的那个很好的一个用户反馈我们这次呢就是我们来自爱生者的区块链和多方系统的朋友以及我们的张博士这次用以特别专门以中文的语言频道来再次做一次这个Fortune Autonomous Fortune Automation Framework的减渐那么区块链制的话关下是一个Hyperlegic Labs项目现在属于服务化的状态我换一下会让大家适用Tool Request会给一些反馈意识或者是Review的一些意见那么这次我们叫我们那我现在也感谢大家然后讲现在我觉得将时间交给我们婉婷谢谢好的 谢谢那大家好很高兴今天能通过超级账的这个平台来跟大家聊一聊我们这个区块链自动化框架这个项目那我是黄婉婷我是爱生者区块�还有多方系统欧洲市场的团队经理那目前我在法兰克福主要负责德语地区还有欧洲一些跨国的项目那我再算是大概将近10年的时间那最近4年主要在我们这个区块链还有多方系统的这个团队里面工作否则项目的一些解决方案还有一些交付项目的实施那今天还我们来自一个伦敦办公室的同事来运行是我们区块链的技术专家运行来介绍一下自己大家晚上好大家好我是张云熙我是一名技术架构师目前就职于爱生者伦敦柔性工作室那么我在爱生者已经工作了4年了那么自从加入爱生者以后基本上我所有接触到的项目都是和多方系统或者是区块链或者是DLT相关的一些项目所以同时当BUFF在爱生者还是一个内部项目内部项目的时候我也参与了一些开发那么今天很高兴可以和大家分享一下和BUFF相关的一些基础的一些技术架构的信息那么同时我们今天还有Shoenuck它是我们的BUFF的原代码的主要贡献者和主要的维护者那么如果有任何细节的一些技术的问题如果我们这边不能回答的话Shoenuck可以帮助我们进行回答那么Shoenuck的话它是不会中文但是我们可以做一个英文和中文的一个翻译的时候好吧那么具体取决于什么样的问题好吧话筒直接交回给黄婷好谢谢那今天我想先从那个区块链整体的一个趋势说一下我们爱生者的一些观点还有我们怎么样看这个领域的一些发展还有变化然后说一下我们为什么开始做这个区块链这个自动化框架这个项目然后这个block chainautomation framework你想运行刚刚才说的我们可以以后简称为BUFF还有我们怎么样做了开源的这个决定那最后会有一个一个BUFF的掩饰然后当然有一些预留了一些时间可以给大家做一些问答那好我们现在先看一下我刚才想说的这个关于企业合作模式的一个改变的整体一个趋势那第一先看一下这个点对点的这个现象模式这个我们已经在这个模式里面过了一个比较长的时间就是比较传统的模式主要强调的是企业内部价值的视线那如果我们来看一下右面这个句子是主要说我对产品的服务对产品会对这个服务的使用然后我怎么样实现我组织或者企业内部的一些价值那第二个呢这个是平台模式我猜在中国可能从90年代开始这个电子商务的发展很快然后我们也会看到有很多是围绕建立各种多功能平台展开的那这些平台大部分都是一个由单一的组织推出的那主要是通过他人或者是大家对这个平台的使用来实现自己的价值那现在我们进入的一个新的阶段就是最后这个多方系统的这个模式因为这个阶段我们主要注重的更是这个共享平台的使用还有这个大家共同价值的实现那我们如果看右边的也会发现这些代词的改变所以我们现在通常说的一个新的概念叫这个多方系统当然这个区块链是一个非常重要的科技技术来实现这个多方系统的价值但是我们更想从一个价值实现的角度多方系统价值实现的角度共享价值实现的角度而不是单纯从技术的角度来开始各种这样的讨论所以我们非常关注在这个新的生态系统中怎么样创造这个共享价值并且实现共享价值为这个最终目标所以我相信以后我们也会听到更多关于这个多方系统的这个概念我也想顺便提一下我们爱森真每年会发布最新的这个技术展望的报告那在2021年2021年这个技术展望报告里面有多方系统也被列为未来的这个五大科技趋势之一那比如最近因为疫情冷的需要不光是在中国那在包括在欧洲也非常的明显那政府还有企业对于很多相关的人员他相当实务改开展这些调动工作当然有同时要保证那个人隐私怎么样不被泄露然后这些要求在传统科技下其实是比较难实现的所以我们经常说曾经被认为源水救不了进火的这个多方系统或者区块链技术在很多的领域却救了这个疫情的进火那我们如果下一页看这个区块链项目这个大趋势就是有很多之前在我们讲概念验证阶段的这个项目现在都进入了生产阶段然后还有一些解决方案已经完成了彻底完成了这个工业化已经开始进入大量的应用但是还有很多像我们刚才做的项目也还在这个工业化的进程中然后再做了一些区块链项目以后我们发现几个非常明显的这个问题阻碍这个星期数落地比如第一个就是很多的资源都很难实现重复使用每一次开始一个新项目很多事情都要从头开始重建又比较耗时而且有程序比较复杂这里可能有一些在区块链领域一些大拿已经比较熟悉其实在开发区块链的这个项目里面开发应用程序包括写一些链码其实都不是最难的部分从我们一些交付的经验上面来看通常一个区块链的开发项目有大概10%到20%左右的开发工作其实都花在了区块链的网络的启动和管理上不设定不同的接点等等尤其是女还需要处理一些比如防火墙还有其他更复杂的这些情况的时候然后通常我们也看到市场上是出现了一些解决方案但这些解决方案的重点更是抓住了某个特定的比较小的市场所以在我们试图建立新的生产系统的时候反而又出现了一些供应商的锁定然后反而是和我们的初衷是冲突的所以我们想尽量避免这种供应商锁定的这种情况然后最后除此之外我们还看到一个风险是选择不合适的一个技术平台或者是某些企业对这方面有比较大的担忧当然这也是另外一个我们为什么推出了在超级账本的另外一个项目叫Cactus先生长的项目是关于互操作性还有兼容性的另外一个问题就是缺少尤其在确定的领域里面缺少行业标准还有所谓的最佳的实施范利所以我们想在开发区块链参考系统的时候我们发现这个一致性其实很难实现每个人都会有自己的权势所以我们就开始想我们到底能做些什么来解决这些问题然后能更快地加速区块链这个项目的这项技术的落地所以这个就是我们开始BUFF项目的初衷所以下一项大概四年前我们开始在内部做一个区块链的一个参考架构对 谢谢所以当我们看比如给客户来交付一个完整的解决方案的时候那所需要的所有跟区块链有关的这些功能还有相应的服务到底都是什么那这也就是我们现在看到这个区块链的一个参考架构这个在我们后来跟许多客户的交涉还有产品开发计划中都使用了它然后反复也非常的好那现在这个参考架构也是整个BUFF这个开源项目的一部分然后后来我们就去看我们怎么样能更大程度上实现区块链这个开发还有网络部署的这个移制性然后我们怎么样可以加速这个网络部署的这个工作让所有人都更容易的能完成这个工作所以我们就想把这个理论的参考架构变成一些比较实际的东西这个是为什么我们开始做这个BUFF这个代码这一部分的开始然后这我还想再加一个对我们来讲比较重要的一个点就是我们开始做这个项目之后发现已有了这个代码能做这一些自动化包括自动化网络部署的这个远远不够因为我们发现我们必须要把它做成开源因为我们其中一个最大的初衷就是想解决企业对这个IP 还有市产权的这个分歧特别是在开始建立一个新的生态系统联盟的时候你会发现这些平静是非常真实的如果这个大家在这个行业的时间过程有参加生态联盟建立的人就会知道真正达成这个知识产权的这个协议是一个非常大的难点所以我们的目标就像我一开始说的缺乏量这个自动化框架这个BUFF并不是试图建立新的壁垒而是真的想试图加速这些工作还要加速这些讨论如果我们一直陷入对谁来拥有这个这个代码的知识产权的话其实并没有做到真正的加速的这个实施而是阻碍了我们这个而是阻碍了这个这个事情的推进所以我们想通过吧BUFF 相关的所有的资源还有代码都放入这个开源社区使我们的知识产权化这个问题大大地减化所以我们并不是试图商业化这种而是真的试着让大家对这套代码拥有和我们一样的权利和爱森专那边一样的权利所以你可以根据自己的能力对这个代码做你自己的贡献或者你也可以直接拿去这个在你自己的应用里面去用然后运行好 下一页所以简单来讲那BUFF 就是一个自动化框架它可以 我们的目的是让快速的然后一致性的然后安全的部署生产级或者是说工业化的区块链的网络所以我把它简单化来讲它就是一个单一的配置文件的输入然后你在这个配置文件中你可以选择你所有想设置的比如区块链的平台他们的版本然后你想选择的共识机制还有其他的一些网络化的细节那这个单独的配置文件就是你进入BUFF的一个输入自动化的开始然后它就会自动的把你这些具体的要求部署到你所选择的云里面所以现在我有两个比较重要的就是商业化的我觉得优势使用BUFF的优势我想提一下然后第一个就是我们启动的一个原则就是基础架构的云独力性所以我们想要让这个BUFF可以在任何任意的云上来运行不管你选择是什么甚至你可以在本地的一些infrastructure上运行都可以所以这就取消了一部分的对云的选择性的依赖性上那第二个我想说的是重点是在生产和维护上对当我们提到生产级的解决方案的时候意味着我们通常会很经常的需要改变你这些网络的设置那也要分上新的业务的对区块链的密缩设立的网络的需求的改变那新的生态还有新的合作伙伴的关系是怎么样改变的然后你能在你的网络设置上来做同样的配合比如有联盟里面有新的成员的加入然后联盟内部的治理关系有一系列的改变我们都希望这一系的改变都是通过代码的方式而不是一个通过手动流程的方式来管理那当你实现区块链的这些基础设施通过代码化的管理那你当然也可以更多的信心你知道每次我来维护上这个一次得到的结果是肯定会一致性的所以网络可以一种更安全的方式跟着你的业务的需求更快的发展那当然我们也可以更容易的扩大你现在的联盟的一些参与者当然这个我觉得是两个对我们商业实施的角度来讲很重要的两个优势那我现在就把这个把话题交给云夕然后给我们来解释一下这个BUFF里面具体的一些技术框架谢谢婉婷谢谢婉婷很高兴可以和大家讨论一下那个BUFF的一些技术架构的一些东西那么在需求BUFF技术架构的一些前的话题之前呢我想再稍微讨论一下目前现有云服他们可以提供的一些解决方案因为就像我们婉婷刚才所说的我们看到有构建一个特定的一个DLT的一个平台其实并不是那么容易的那么即使是对于那些有很多经验的那些工程师或者是应为人员如果他们对于这些新的特定的这些DLT的平台如果他们不是很了解的话那么当他们第一次去碰触这些平台并且想要快速的构建一个新的DLT的平台其实会花费他们很多的时间那么这些时间可以可以从数周或者到数个月不等那么除了艾森哲以外其实其他的云服商其实也看到了这个问题那么这些云服商他们也提供了一些相应的解决方案比如说一个比较特定的一个解决方案是像亚马逊云或者是微软云他们提供了自己的Blockchain as a service那么翻译成中文就是区块链济服的一个功能那么使用他们Blockchain as a service简称Bus如果使用Bus的功能的话其实也可以很快的构建一个特定的分布式账本技术但是如果我们看一下他们提供的解决方案其实还会有两个比较明显的一个缺陷那么第一个明显的缺陷是每一个云服商他们现在提供的Bus的服务其实并不是很多比如说亚马逊的话他可能只提供了一个Bus的平台微软云的话到目前为止可能也就是一个或者是两个那么并不多那么这样的话其实对于从用户的角度来说其实并没有很多的选择如果他们想使用Bus这个功能的话那么第二个就是刚才婉婷也提到过的一个互操作性的一个问题那么就目前为止如果及时使用这些云服上提供的这些Bus的功能构建一个同一个类型的一个DLC的平台那么当两个不同的平台如果他们是运行在两个不同的云服的一个基础供应商的一个基础设施上面的话其实他们是不可以互相操作的那么这其实是并不利于一个多方系统的一个长远的一个实施那么从这一点说Buff其实是解决了这两个问题首先第一个Buff目前支持六种不同的DLC的主流平台那么第二个是如果使用Buff的话Buff是要求用户首先要设置底层的一个基础设施然后在底层的基础设施上面用户需要构建自己的Cubernetes的一个集群那么Buff其实是在Cubernetes集群上面在构建相应的DLC的平台那么因为Cubernetes集群之间是可以相互通信的所以说这样的话我们可以确保同一个DLC的平台当他们构建在不同的Cubernetes上的集群集群上的同时即使底层的云服互商的基础设施是并不一样的但是从DLC的平台来说它的护造收信是可以被保证的那么这两个是Buff可以从另外一个角度就是解决了云服互商目前给出的解决方案中一些不足之处同时如果我们使用Buff的话其实从DLC的平台的构建的速度来说它也大大缩短了用户的开发时间可以从数周其实可以接受到数小时甚至是几分钟这样的话其实给予用户更多的时间去考虑当企业用户或者是个人用户他们要选择一个特定的一个DLC的平台的话他们可以花更多的时间去考虑一下到底哪一个DLC平台是适合于他们自己的一个商业需求的那么接下来我稍微说一下Buff的一个基本应用就像我刚才所说的Buff其实是要求用户是必须构建自己的一个底层的一个基础设施包括一个Kubernetes的一个集群的那么Buff所要做的是在这两个层面上面搭建一个DLC的平台那么用户需要做的是快速的配置快速的输入一个配置文件那么这个配置文件其实是一个YAML的文件它是一个非常典型的一个建置文件那么在Buff里面我们已经提供了所有的一些属性的一些建那么用户只需要提供相应的一些具体的值给这些件那么确保Buff可以很快的确认到这些建值的信息是正确的那么从Buff的一个架构考量来说我们其实是有一些原则的首先第一个是我们的Buff的一个参考架构它是拥有的一致的方法论那么刚才婉婷其实已经展示了一个比较大的一个框架Buff其实是在这个框架的基础上面逐渐实施的那么第二个是它是独立于任何的一个基础架构的我们并不要求用户使用一个特定的云壶用户可以选择使用氧碳讯云可以使用微软云或者是使用其他的比如说是阿里巴巴云只要在云层面上面可以构建Cubernetes的一个集群那么原则上面在使用Buff在Cubernetes的集群上面构建一个新的DLT的品牌就可以进行通信同时用户甚至可以在飞云平台上面那么同时用户可以在飞云平台上面构建自己的Cubernetes的一个集群那么同时在Buff的一个架构上面我们也考虑到了一个模坏化的设计那么通过把所有的系统进行模坏化以后如果在今后如果Buff的这个社区因为它是一个公共的社区如果我们有更多的参与者进来如果大家都非常有兴趣大家觉得有更多的功能需要应该加入到Buff的这个框架里面其实是可以很快的以模坏化的形式加入这些性的功能的然后是安全性设计安全性设计其实是一个非常重要的一个特点那么我相信在所有的生产环境中安全性是一个非常重要的一个考量那么当我们在构建一个特定的DLT的一个平台里面每个DLT平台其实它会有自己相应的这些密要那么所有的这些隐私性的信息它应该被存放在一个非常安全的一个场所而不应该存放在一些原文件或者配置文件中那么这一点在Buff的一个构建中我们也考量到了那么在下一页slide里面我会介绍是哪个构建那么最后最后Buff它是一个开源的一个组建那么我们提供了一个阿巴奇2.0的一个许可那么原则上面任何人都可以使用我们的Buff的这个框架或者并且任何人如果觉得他们可以贡献自己的支持反馈到Buff这个框架里面这个也是非常方便的那么如果现在我们看一下关于这个开源的这一块的话Buff首先提供了一个非常重要的一个关联文档我们有一个自己的一个专用的一个网站叫RidderDock那么在那个网站上面用户可以看到非常详细的如何使用Buff的一些一些细节的信息那么第二个的话是工具简化在Buff中我们其实使用了不少和运为相关的一些工具但是当用户在使用Buff的一个过程中其实真正使用到的工具其实并不多因为很多工具其实已经被自动化了那么我在接下来的一些depp里面我也会进行讲述那么对于这些工具他们都是一些通用的工具那么并不会阻碍用户把Buff如果想引用Buff到他们的目前的生产环境中不会有太多的障碍同时Buff它是基于Cubernetes的一个集群的一个特征那么所有在Cubernetes上面进行构建的一个Delta品牌最终会以容器化的一个形式出现然后是一个自动化部署那么我们知道Buff的一个主要功能其实是完全自动化整个Delta品牌的一个构建这样可以大大减少任何人员的一个参与可以降低很多这种人员的一个维护成本然后接下来一个是一个防控策略记带码那么在Buff中我们建议每一个企业用户至少建立一个Delta品牌的一个节点那么如果企业用户愿意的话他们可以在他们的节点下面生成新的这些子节点那么当我们在讨论一个多方系统的一个环境下面同时我们一般会讨论有多个企业会参与到整个的一个系统交流过程那么每个企业其实他们每个企业用户其实他们可以通过我们的配置文件来确定如何对于其他的企业如果他们想访问自己企业的节点是不是允许那么这一点在配置文件里面是可以通过配置的那么最后我们提供了一个供应链参考程序那么这个程序主要是用来帮助用户测试如果使用Buff构建了一个Delta的平台这个Delta平台是不是可以正确的使用或者说它是不是已经完全设置完成了那么如果用户使用过一些基本的一些Delta的平台的话其实有些平台是提供了一些基本的那些命令行的操作用户可以其实通过命令行来确认一个Delta平台是不是构建完成了那么但是从用户交互性的角度来说这并不是一个很好的体验那么在Buff里面我们提供了一个这个供应链的参考程序它是一个基于Web网页的一个程序那么用户可以通过浏览网页程序这个网页程序然后会自动的和底层的某一个特定的Delta的平台进行交互然后告知用户这个底层的Delta的平台是不是构建完成了好那么接下来的话我会稍微介绍一下我们Buff里面用到的一些组件首先第一个组件是AnsibleAnsible的话在Buff里面其实是一个非常重要的一个组件它可以说是我们Buff的一个最主要的一个引擎那么Ansible的话它是一个管理系统和软件配置的一个自动滑工具在Buff的话我们其实使用了一个Ansible的Playbook它是一个文档那么在这个文档里面我们其实已经预定了一系列的步骤那么这些步骤可以用来构建不同的Delta的一些平台所以说用户需要做的是运行这个Ansible的Playbook一旦这个Ansible的Playbook运行以后然后用户完成了这个文件的配置Ansible的Playbook会自动读取用户的配置文件然后进行一系列的Delta的平台的一个构建那么第二个主要的一个组件肯定是Kubernetes的一个集权那么就像我刚才所说的Kubernetes是一个非常重要的一个前提条件在接下来的话是GitOps和Flux那么质量工具的话主要是任何对于在Kubernetes集权上面如果有任何对Delta平台的有任何的更新这些更新会立刻被Flux的GitOps读取然后他们会自动部署到底层的Kubernetes的一个集权上面所以说用户并不需要自己去手动的更新这些Delta平台的一些更新所以GitOps和Flux从某种角度来说提供了一部分的CICG的一切功能接下来的话是HashCopVolt那么这个其实就是我刚才所提到和安全性相关的一个工具那么这是一个第三方的工具它不锁定于任何的一个零端的一个浮伤所以说对于每一个企业用户来说引用这个HashCopVolt应该不会是一个很大的一个障碍那么当时用HashCopVolt的话我们主要是用它来存放所有和Delta平台相关的一些密钥信息比如说令牌 比如说证书然后第五个是HelmChart那么HelmChart一般是和KubernetesService是一起使用的它是一个Kubernetes的一个软件包管理器它可以使用户非常灵活的定义我们应该如何建立一个正确的Kubernetes service那么在BUFF里面我们更多是用来定义当我们要构建一个Delta的平台然后它们是成为Kubernetes的一个容器化的一个形象它们应该是如何操作的那么所有的这些定义都是在HelmChart里面完成的那最后一个是AnyCloud那么就像我们刚才所说的我们不希望BUFF被限制于任何的一个云浮伤的一个基础设施里面所以BUFF可以被用于任何的一个基础任何的一个云浮伤那么只要用户拥有创建底层的基础设施并且在底层设施上面创建一个Kubernetes集群的一个能力那么原则上面BUFF是可以在Kubernetes的这个集群上面运行的好那么接下来再稍微说一下我们的BUFF是怎么样关联到我们之前所谈到的艾森哲提供了一个架构的设计里面那么在这张图上面大家可以看到有两个明显的一个区域一个是蓝色的区域在左边还有一个是绿色的区域在右边那么我们先来看一下右边绿色的区域右边绿色的区域它这边就是说明了使用BUFF之前我们应该需要一些什么一样的一些最基本的信息那么我刚刚才已经谈到了我们需要使用底层的基础设施它可以是云浮我也可以是非云浮那么在云浮上面接下来我们需要一个Kubernetes的一个集群那么这两个完成以后用户需要考虑到底使用哪一个DLT的平台对不对那么可以是Fabric可以是Indian那么BUFF现在目前支持六种不同的DLT的平台同时在系统嵌入的这一层面我们看到我们使用了一个Ambassador那么除了Ambassador的话在BUFF里面我们还使用了另外一个Tool工具称之为HAProxy那么这Ambassador和HAProxy他们是Kubernetes集群所支持的两种不同的负载均衡工具那么他们主要是用来处理Kubernetes集群的一个输入和输出流的一个控制那么因为使用了这个负载均衡的这么一个工具这样其实在底层上面保证了每一个Kubernetes集群其实是可以和另外一个Kubernetes集群所相互通信那么这样的话同时也保证了上层的DLT的平台可以和其他的可以和另一个相同类型的DLT的平台进行通信那么同时我们也可以看到我们还有很多的区域显示出是由具体的项目来确认的那么从这一方面来说就是说艾森哲其实提供了这些考量我们帮助了企业用户我们提供了企业用户一些建议就是这些方面企业用户是应该考量一下的但是同时也说明我们的BUFF是并不限制于任何的一个具体的一个工具那么用户可以自己选择在每一个层面里面使用什么样的工具来配合他们自己的DLT的平台进行一个使用那么这是右边的绿色区块那么接下来我们看一下左边的蓝色区块最左边的是一个安全性的服务那么刚才我们已经提到过了首先我们使用了一个HashCop Evolved它是用来存放所有的和安全相关的一些令牌证书那么因为我们的BUFF它的元代码是存放在GitHubs这个平台上面的所以用户要使用我们的元代码的话必须要使用Git这个工具来下载我们的元代码那么第二个框架的话是和DevOps相关的一些服务我们这边上也已经提到了很多了那么有一个没有提到的话可能是和CICD相关的一些信息那么当使用BUFF的话BUFF其实是BUFF没有提供任何的内置的CIC的一些工具因为我们不希望BUFF被限制于任何一个CICD工具但是原则上面我们也建议企业用户或者是个人用户可以尝试使用适合于自己的CICD的一些工具那么在iPhone者的话我们是使用了Jankins这个CIC的工具它可以进一步自动化整个DLT平台的一个搭建接下来的话我会稍微讲一下我们可以如何使用我们可以如何使用BUFF这个框架来快速的构建一个Hyperledge Fabric一个DLT的一个平台那么用户需要做的其实很简单用户首先需要首先需要配置首先需要填写我们刚才所说的那个配置文件是一个建置的文件确保所有的信息是正确的因为当我们在当你运行Ansible Playbook的时候Ansible Playbook在每一个步骤里面其实我们是预定议了很多教验的程序确保用户填写的配置文件中的信息是适合于需要构建的那个DLT平台的然后的话当你运行Ansible的时候其实对于Fabric这个DLT平台来说它会先从Fabric的官方下载一个官方的一个Docker的一个镜像文件下载完以后然后Ansible Playbook会会使用内置的很多的Helm Charts适合那个Fabric相关的一些Helm Charts所以说我们如果看这两个两个区域的信息的话其实很多信息它们是相通的比如说当我们需要构建一个集群的一个网络或者是多个集群的网络Helm Charts里面其实定义的方法是不一样的我们也同时在构建Fabric这个DLT的平台里面我们同时还需要做一些其他的操作比如说我们需要快速生成一些渠道的文件快速生成这些渠道然后快速生成一些和证书相关的一些信息然后我们要求每一个节点加入到这些渠道然后他们必须要安装Chin Code那么Chin Code的话在虚快链的背景下面它其实就是等同于智能合约这么一个概念只不过它是一个特别的一个它在Fabric里面使用了使用了一个不同的一个词汇那么同时生成构建Fabric这个平台还需要做一些其他操作比如说Audra Service的一个生成包括不同节点的一个生成那么整个流程其实是非常的自动化一旦Asable这个playbook启动以后用户确保配置文件都是配置是正确的话整个流程是非常的流畅的那么用户只需要接下来只需要等待整个流程完成然后就可以看到一个Fabric底层的DLT的一个平台生成了好 概念的话就讲这么多接下来的话我希望展示一个我们BUFF的一个代码库的一个介绍那么我想给用户更亲我想给大家一个更清晰的认识当你使用BUFF这个平台的话你应该怎么样使用它那么首先这是BUFF的一个它在GitHub上的一个位置那么当我们看一下这个BUFF的信息我们可以看到它有很多的文件夹它有很多的不同的文件那么用户其实可以省略很多的这些文件大家可以看到这有很多的文档信息你可以一个一个看那么稍微介绍一下这些文件夹第一个文件夹是Automation那么当我们进入这个文件夹的话我们可以看到其实BUFF已经提供了一个Jankins file的一个参考文件这个是在iPhone的中我们如何使用Jankins将BUFF牵入到我们的CICD拍plan的一个过程中那么用户可以选择使用他们自己的CICD的一个工具那么但是如果想知道如果使用的话他们仍然可以借鉴于这个Jankins file来理解iPhone者是如何使用BUFF的接下来的话是一个Documentation的一个文件夹那么这个文件夹其实包含了所有的细节的文档那么用户没有必要进到这个文件夹来进行阅读因为相应的话其实我们已经提供了一个read the docs的这个官方的网站这个是一个fabric的一个网站这个是我们刚才所提到的BUFF的一个官方的一个readme docs的一个官方网网站那么用户可以在这里逐一看具体的信息如何使用我们的BUFF好 回过来以后呢这里有一个examples的一个文件夹那么在这个文件夹里面我们提供了两个应用程序一个应用程序刚才已经提到过了这是一个供应链的一个程序它可以帮助用户确认底层的一个DLT的平台是否已经架构完成了那么另外一个是和身份验证相关的一个应用程序这个应用程序呢主要是单独应用于Hyperledger Indie的这么一个DLT的一个框架那么如果大家对Hyperledger Indie这个框架不是很了解的话简单介绍一下它是一个用于构建用于构建分布式的一个身份的一个DLT的一个平台那么用户可以使用这两个不同的应用程序来确认底层的DLT的平台是不是已经构建完成了好 最后我们看一下这个platforms的这个文件夹那么在这个platforms文件夹我们看到目前已经有六个不同的DLT的平台已经在里面了那么这说明我们的BUFF现在支持六种不同的DLT的平台那么由于今天我们接下来的一个演示主要是针对于Hyperledger Fabric这个平台所以我们接下来看一下Hyperledger Fabric这个平台那么从对于每一个平台的文件夹来说呢它的文件夹的这个整体的架构其实是非常的相似的所以一旦用户理解了Fabric这里的文件夹的一个架构其实当你们使用其他的平台的那个文件夹的话你们会看到非常相似的一些信息所以首先我们来看一下这个chass这个chass的话它里面是所有和Cubinetti或者是helpchass相关的一些信息我们已经定义了所有这些信息它们非常的灵活用户如果有信息的话需要了解它们是怎样使用的话你们可以进去里面注意观看如果你们只想使用BUFF的话其实也没有也没有必要花很多的时间去看底层的原代我们先调过configuration这个folder我们待会会回来这个文件夹接下来我们看一下images这个文件夹这个文件夹它主要是存放我们刚才所说的Fabric Dock的一个它的一个镜像文件那么在BUFF里面因为我们使用的是官方的Fabric一个官方的镜像文件所以说在你运行BUFF的时候它会自动从官方的官方的网站上面下载下来这就是为什么在这个文件夹里面你没有看到任何的和Fabric相关的一个Dock的一个镜像文件那么在其他的一些DLT的平台里面可能会存放一些相关的一些镜像文件那么这些镜像文件可能是我们已经进行修改过一些镜像文件然后是release的这个文件夹这个release的文件夹它主要存放和gitOps相关的一些文件那么由于由于我们现在是在一个master的一个分支上面我们就给出了一个非常简单的骑士那么当用户使用我们的BUFF的时候他们一旦克容了我们整个的一个代码库以后他们可以创建自己的分支那么在自己的分支上面他们就可以存放和gitOps相关的一些文件然后这个文件讲的是我们预计了一些脚本文件这些脚本文件也会在BUFF框架的使用过程中会自动运行那么同样如果用户觉得有兴趣了解一下他们是如何实施的话可以点进去看具体的一些信息如果用户只想使用BUFF工具的话其实也没有必要去查看这些脚本信息好 最后我们回到这个配置文件夹的这个位置来那么这个配置文件夹里面包含了一系列的那个YAMO的文件就是我们刚才所说的一个主要的一个配置文件那么同时我们在BUFF里面我们提供了一些参考的一些配置文件帮助大家理解如果你要使用这个配置文件的话你应该怎样放置正确的信息那么在这里的话我们快速的点其中一个那么那么稍微说一下对于这个配置文件来说每一个DLT的平台它会具有一些相似性在他们的配置文件中因为我们希望这个配置文件它可以被所有的平台一起分享那么这样用户在配置这些文件的时候不会有太多的疑惑那么同时每一个平台它因为它有自己的一些特定的一些功能比如说在Fabric里面它有一些自己特定使用的一些数语这些数语在其他的用户平台里面是没有的所以说在用户在使用这个配置文件里面你们会看到一些相同的信息也会看到一些不一样的信息那么接下来我们快速浏览一下这个配置文件首先第一个是一个network的一个配置信息那么它告诉用户你想配置一个影响迅速构建一个什么样的一个DLT的一个平台那么在这里我们是选用了一个fabric平台那么我们同时给出了一个版本那么目前的话fabric是支持两个版本一个是1.4 一个是2.2接下来的话是这个frontend的一个信息那么这个呢主要是告诉用户你是不是想使用我们刚才所说到的那个基于web的那个应用程序如果你想使用那个应用程序的话那么请将这个建置选为使用那么接下来的话用户可以选择说定义我是想在我的cubernetes的哪个环境里面生成或者构建我的需要的DLT的一个平台那么在这里我们是给出了一个fabric的一个平台那么用户可以选择承访他们自己需要的一些信息可以是dev可以是staging可以是production完全取决于用户的需求proxy这个是我们刚才所说到的那个负载均衡工具那么在fabric里面我们使用的是haproxy因为ambassad的话在某一方面并不支持fabric的使用这就是为什么我们会有一个haproxy的一个使用那么用户可以选择使用haproxy这样这就意味着所有的信息输入流会通过haproxy如果用户使用non的话那说明所有的DLT的内部信息会在内部进行一个轮转但是这些所有的输入输出流并不会出到你的底层的gubinatis的一个机群外面然后这里的话这个ambassad post的话这可能是一个小型的一个type因为我们并没有使用到ambassad在这个文件里面然后我们可以看到这里有一个retriot account在我们Ansible的playbook里面我们会我们有很定义了很多的这些不同的这些步骤那么有些步骤的话可能在运行时候会产生错误那么用户在这里可以定行可以定义一个再尝试的一个数值那么可以保证某些步骤即使他们在他们在第一次第二次失败以后那么在一定的数量运行以后他们会成功那么继续实验原因我不讨论我不显示太多了因为以下的所有的信息都是和fabric相关的一些信息那么接下来我会做一个很快的一个掩饰这个掩饰的话其实是说明我们可以如何使用BUFF来快速的构建一个fabric的一个平台那么当我在使用当我们在看这个掩饰的时候其实它的底层的Kubernetes的一个集群其实是已经构建好了那么现在这个用户需要做的话它只需要快速的执行我们现在这个内置的这个Ansible Playbook就可以了那么当然了当用户在运行这个Ansible Playbook的一个前期条件是底层的服务器或者是必须提供了Ansible的一个环境那么在这里的话我们可以看到其实这个用户它很快的说我想使用这个Ansible的一个配置文件然后这个是BUFF的一个主要的一个配置文件一旦用户输入以后我们会看到一系列的步骤会自动化进行那么首先BUFF会非常快的帮用户安装Flux那么从这一点来说用户是不需要自己去搭建自己的Flux的一些工具的那么如果用户看一下如果大家看一下我们左边的这边信息的话其实在Ansible里面我们定义了一系列的一些步骤然后每一个步骤我们都给了一个非常明确的一个名称那么用户可以非常地看到其实每一个步骤都在执行哪一个那现在的话我们就看到一些Kubernetes的一些命名空间已经被成功的生成了然后很快我们看到一些和CA相关的一些服务器也已经被很快地部署了那么这个CA的服务器是Fabric一个比较专属的一个工具然后我们可以看到这边相应的一些和安全性相关的一些文件也被生成了那么如果大家使用过Fabric的话构建如果构建过一些简单的用于Dev环境的工具的话其实Fabric提供了两种不同的方案用于构建一个Dev环境的平台来说用户可以使用一个很简单的一个Crypto Genie的一个Tool那么对于生产环境来说Fabric提供了一个和CA相关的一些一些一些Dock的一些容器那么在buff里面我们使用的是CA相关的一个容器现在我们可以看到Fabric里面的一些Otherers和PS他们已经开始执行了那么这些概念也是Fabric平台里面一些特有的一些信息然后我们很快看到Channels渠道被建立了然后不同的节点加入到了这些渠道里面那么这个渠道的话在Fabric里面它主要是用来构建隐私性的隐私渠道的一个方法那么我们知道在一个多方系统里面有时候我们并不希望所有的所有的用户看到一些非常隐私的信息那么渠道是Fabric在Fabric里面是一个比较重要的一个工具它用来定义哪些用户可以看到一些隐私性的信息这样可以保证其他的一些用户可以不需要看到这些信息那么现在我们看到Channels的安装也已经完成了那么这是说明智能合约的一些文档其实已经被安装完成了然后我们看到Channels的已经安装完成同时出实化开始那么所有的这一系列的步骤其实在构建每一个Fabric平台的过程中其实都是需要到的那么这就是为什么在BUFF里面我们尽可能的是整个流程自动化到这里为止我们看到其实整个的一个安装的一个playbook已经完成了然后这边用户迅速的在通过一系列代码来确认是不是相关的所有的一些容器已经被配置完成那么基本上就介绍这个掩饰到这里为止那么大家可以看到其实如果你正确地使用了这个BUFF的工具的话构建一个DLT的一个平台其实是非常快速地只需要几分钟那么从一个使用的过程中用户可能会遇到的一些问题是比较一些长期的问题是首先用户需要首先构建底层的基础设施包括包括Kubernetes的一个集群同时用户要非常熟悉如何使用我们的一个配置文件一旦这两个步骤完成以后其实从构建一个DLT的一个平台来说其实是非常快速的好那么我这边就到这里把话筒交回为主持人好的感谢张博适合晚点的分享那么我们今天我们的观众也有很多问题然后有一些我Mark在想回答有些我这个文字已经回答过了那么的话我们主一个先来过一些问题好那么好的第一个问题就是说有没有对部署靠谈的成功案例还有就是用buff进行跨运的部署那么我们相信这个问题之前已经回答过了我们buff是支持跨运的部署的那么之前提到过有参考有供应链参考代码我们之前今天的讲西洋界里面有没有提到过这个不好意思再提一遍问题就是我们今天的讲解里面有提到过供应链参考代码其实是有吗对就是我刚才已经我刚才已经反复在强调了一个我们提供了一个供应链的一个web应用程序好这个web应用程序其实是帮助大家来确认底层的DLT的平台是不是已经构建完成了好的明白那么因为本身这个参考代码的目的只是为了去测试这个DLT的部署情况我相信这个不会不会有太多真实的案例会是放在那个里面那么好那个好的这个这个是不适应对的那么buff在本地部署我们刚刚也刚看到了就是说其实它的部署目标其实是允许就是跨云之余还允许只是要部署到onpe的target上面是这样子的吧不好意思请再重复一下刚才那个问题好的我的问题是说buff可不可以做到本地部署只要在本地部署上面允许构建一个正确的一个Kubernetes集群那么buff就可以在Kubernetes集群上面进行一个部署原则上面是这样子的我看到有一个问题是buff支持可实化的web界面吗那么目前为止buff还不支持任何的web界面如果如果这个用户的问题是buff是不是提供任何web界面做一些相关的一些配置文件的一些操作的话目前是没有这么一个功能在然后也许可以加一个我们经常用的一个dash for the Kubernetes Lens就可以有一个一个可实化的关于你的这些pod和你的cluster的一个界面那么有个匿名观众也问了他之前说我如果对一个国民化改造的fabric然后它是本地构建的一个进行是说我今天演唱开的问题就是我们buff能不能支持不同的docker registry的登录或者说是这样子进向的就是指向自己定制的可以吗可以支持对就目前为止从我们内部来说我们使用的是docker registry那么buff当然也支持一些私有的一些docker registry这个完全没有问题因为在刚才的配置文件里面其实有一项用户是可以定义哪一个docker registry包括你的用户名和密码是都是都是这个已经在我们的配置文件中已经提供出来了简单他也提出说对一个跨集群的许多链说他想这个用户是ok so when he answer this questionI like I give it back to so whenhi david hi so sorrywhat's the questionso it's the the jgo questionsthe cross cross the questionis it answer alreadyoh yeah I was just writing it anywayswe can answer it livethat yeah so theuser or whoever is deployingthey should be able to connecteach of the clustersbut the baff as I think youshe explainedbaff uses ac proxyas the ingress egress controllerso you have only one pointof external communicationfrom each clusterso yes the user has to beresponsible so that one ingressone h proxy can beshould be able to talk to anotherh proxy那么我这边快速的翻译一下基本上刚才秀那个说的话就是在每一个cubernetes的集群里面呢我们试试用h proxy作为一个最主要的一个通信节点就是我刚才也介绍到了h proxy 它主要处理进入和主要处理cubernetes所有的输入和输出流那么如果如果两个不同的fabric network他们如果是要相互通信的话必须保证底层的h proxy 是可以相互通信的那么这一点呢是需要用户自己进行配置的我看到有一个问题是刚才还有一个问题没信讲我看到有一个问题是baff支持离线部署吗我不知道刚才我们是不是已经回答了这个问题sonna刚才说了一下她说如果你只是用一个cubernetes cluster的话然后不需要连到连网的话那就可以的我再回答另一个问题也许是workflow to update a network所以我觉得Younxi 你在分享的视频你可以分享我们的订阅如果你进入operations 项目我们有很多的团团如何进行每个的operations比如加入一个新纽加入一个频道加入一个新的团团加入一个新的团团或是一个新的团团所以所有的东西都在里面Younxi如果你可以分享你的视频在订阅的团团里面对就给你一分钟好 我们在订阅好 我们在订阅我们可以在operations 项目然后我们有订阅所以你你可以看到做订阅的订阅是最多的订阅你可以跟随着它们基本上基本上Redalk这个网站提供了一些非常细节的一些信息对于每一个不同的DLT的平台我们都有进行一个详细的描述那么用户如果想从使用的角度来了解如果使用BUFF的话他们首先应该看的是operations guide下面的这个下面的这个developer guide 更多是如果用户有兴趣想添加新的功能到BUFF里面的话那么用户可以看一下如何使用可以可以可以看一下这个developer guide也许我还有还有一分钟想先说一下在大家离开之前如果大家觉得有哪些方面还想要做一些贡献或者BUFF有一些地方还想要更完善的话那大家也都可以来加入这个社群来大家一起把这个BUFF建了更完善一些所以我们都是非常欢迎大家的贡献的对 大家可以直接到我们刚才展示的BUFF的那个原码区然后如果你有任何的建议可以直接在上面提一个新的意见那么这样的话呢我们的团队会根据这些意见的一些重要性来进行排序同时会考量是不是会把他们加入到今后的BUFF的一个开发过程中那么今天实验差不多感谢LiveAgent的专家的分享我最后有几个close的问题就是说第一个就是我们今天的视频本身这个视频是我们今天的分享是已经录制过了所以整个ofall的视频会随后放出来让大家欢迎去关注我们的hackledge的一些一些无论是各方渠道小学渠道另外一个就是我这么想问一下今天我们有个LiveDemo这个LiveDemo这个本身播放出来的NPC视频可以分享给我们吗我这里没有问题好的那么还有一些朋友也问过说我们BUFF也没有微信群那么就我所知应该是暂时还没有一个比较有规模的微信群不过今天可以今天可以成为一个好开始对这些评论因为在美丽中国它是中国最有许多的交流网站也许是中国有许多的网站所以我们可以简单地从我们今天的嘉宾的那个活动组织群然后从那边拉进来就更好了那么有兴趣的话可以我刚留了我的微信然后如果嘉宾愿意留微信的话也可以留一下然后我如果我是已经留了我的那么如果是有兴趣的话可以就加我然后等于你的来意那我把大家聊聊那个微信群里面对的到时候也会将我们今天的录制的视频放到腾讯视频上作为一个活动视频对我刚才就是把那个放到那个那么最后就是感谢大家各位嘉宾还有各位听众朋友们我们今天时间差不多了我们今天的网友早会到此结束谢谢大家谢谢各位好的谢谢谢谢