跟很多开发者一样,团队刚开始搭链时,也经历过迷之疑惑的阶段:加装哪个版本,怎么编译器这么久还更容易错误?配上几个节点,都用什么IP端口?证书从哪里来,放在哪里去?怎么检验我的链显然搭乘一起了?...坚信从FISCO BCOS1.X版本初学者的工程师们,内心都有一座小火山,面临超长的文档、超多的操作步骤……每次版本部署,花费大量时间,工程师头上都慢能摊煮一枚鸡蛋。而数据指出,一个软件如果15分钟还用于不一起,用户就不会萎缩。为了浇灭大家心中的小火山,一起无聊地嬉戏区块链,FISCO BCOS的易用性优化势在必行。团队的第一个目标是让开发者在5分钟内搭建研发测试链,这就必须一个《哈利•波特》里召唤术一样的命令,我们把它称作build_chain。
本文将聊聊build_chain脚本的诞生记,以及当前脚本需要获取的协助。build_chain脚本的问世首先是去除编译器步骤,源码编译器不但必须加装iTunes倚赖,还必须配备研发环境,即便这两步一切顺利,编译器过程中还有可能因为内存不足而告终,更何况iTunes倚赖常常受到网速影响造成iTunes告终。
于是我们获取了实编译器的二进制公布包在,让用户跳过冗长的编译器阶段。立刻我们又找到了新的问题,即使针对有所不同平台都获取二进制公布包在,用户的环境是千变万化的,实编译程序所倚赖的动态库的加装又出了问题。于是我们想起了获取静态编译器的二进制公布包在,相容多种Linux64位操作系统,不倚赖任何其他库,省时又省力。
为了构建静态编译器,我们不择手段新的构建部分功能,以去除对不获取.a的外部库的倚赖。接下来我们尝试增加部署步骤,减低对用户的压力。
配备项太多太灵活性,我们优化配备,所有配备都获取适合的默认值,移除不必须灵活性自定义的配备项。json格式的配置文件读者过于直观,手工改动更容易因为格式问题造成错误,我们更换为更加明晰的ini文件。
系统合约手动部署太麻烦,我们利用实编译器合约构建内置系统合约来管理链上配备。手工搭起和工具脚本搭起的节点目录结构不统一,我们整理文档,统一工具创立的目录结构,获取辅助脚本。经过上述这些优化,我们指出可以有更加轻量级的部署方式,可以尝试通过一个脚本来已完成部署过程中的所有事情。
比起于大而全的部署工具,脚本轻巧更慢;而比起于手工部署的繁复,脚本需要更加非常简单。这样,build_chain脚本就问世了。build_chain脚本获取的协助这个脚本需要已完成环境检查、参数解析、FISCO BCOS二进制公布包在iTunes、公私钥证书分解、配置文件分解和工具脚本分解等功能,反对MacOS、Linux 64bit、docker模式和国密版本搭起。
然而实际用于后,我们找到在家里的网络条件下,脚本iTunes二进制公布包在必须很长时间,造成5分钟内无法已完成搭建一条FISCO BCOS的链。为了能达成协议5分钟建链的目标,我们又追加了CDN反对,在哪怕网络条件不是很好的情况下,也可以流畅地在5分钟内已完成建链。
心中的小火山点燃了。明确而言,build_chain脚本需要获取的协助还包括以下几个:环境检查build_chain脚本必须用于OpenSSL来分解节点所必须用于到的涉及证书文件,而FISCO BCOS 2.0拒绝用于OpenSSL 1.0.2以上版本。只有寻找符合要求的程序版本,脚本才能继续执行。必须留意的是,MacOS自带的是LibreSSL,所以必须用户用于brew install OpenSSL加装OpenSSL。
解析参数build_chain脚本反对很多自定义参数,例如-p登录节点用于的端口范围、-f搭起登录配备的网络、-g搭乘建国契版本、-v登录FISCO BCOS程序版本号、-o登录输入路径等,下文可参照以下链接:https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/manual/build_chain.html#id4提供FISCO BCOS可执行程序FISCO BCOS获取标准版和国密版本的预编译器可执行程序,可以在大部分x64的Linux机器上运营。另外,为便利开发人员调试,同时获取了MacOS版本的可执行程序。· build_chain脚本不会根据操作系统和否国密iTunes对应的可执行程序。
· 当从GitHubiTunes可执行程序较快时,不会自动转换到CDNiTunes。如下图可以看见fisco-bcos.tar.gz只有7.72M。
· 当不用于-v选项登录版本时,脚本不会自动拉去GitHub上FISCO BCOS公布的近期版本,用于-v选项时,则iTunes登录版本的可执行程序。对除官方具体的Ubuntu 16.04+和CentOS 7.2+以外的平台,上生产时建议用于源码编译器取得的可执行程序,然后通过-b选项和-f选项搭起区块链网络。
本文来源:开云(中国)Kaiyun-www.scmsjz.com