Merlin Clash小猫咪
本文档主要描述将旧版本chainmaker升级为新版本的步骤,正常情况下,伴随着新版发布,都会有相应的升级描述。本文档根据版本号倒序排版,即最新版本升级描述会在最前面,请读者注意。
版本v2.3.0进行了Docker Go合约引擎重构升级,相比之前的版本具有一定的性能和稳定性提升,支持多语言跨合约调用,推荐升级到v2.3.0版本。v2.3.0之前的Docker Go合约文件需要参考v2.3.0合约升级指南进行修改并升级。
如果Docker VM是本机部署,在编译替换chainmaker的时候,需要同时替换下bin目录下的start.sh,stop.sh,restart.sh三个脚本,脚本会处理合约虚拟机的拉起和停止。脚本由build_release.sh生成,可以参考《编译和安装包制作》。
如果Docker VM是独立部署(比如部署在其他host),可以参考《独立部署DockerVM》。
SDK使用方式变更,由之前每个函数入参传递一个CMStubInterface实例来使用SDK接口方法改为通过全局变量来使用SDK提供的接口方法。
如果Docker VM是本机部署,在第4步编译替换chainmaker的时候,需要同时替换下bin目录下的start.sh,stop.sh,restart.sh三个脚本,脚本会处理合约虚拟机的拉起和停止。脚本由build_release.sh生成,可以参考《通过命令行体验链》。
如果Docker VM是独立部署(比如部署在其他host),可以参考《启动支持Docker_VM的链》。
如果是v2.2.0之前的合约文件还需要对合约源码进行一些修改,参考v2.1.0 - v2.2.0版本升级指南升级合约文件。
在第8步编译合约文件之前,还需要对合约源码进行一些修改,修改内容如下,【合约编译步骤参考】:
v2.1.0兼容v2.0.0,升级时只需要替换相应二进制文件(无需修改配置文件),并重启所有节点Merlin Clash小猫咪。升级所有生态工具即可。
从历史版本升级为 v2.1.0版本,新功能只支持自研网络(需将所有节点停止,并修改chainmaker.yml文件的net.provider为liquid后,再启动)。若想体验其他新功能如java国密、公钥身份、透明加密等,请重新安装新版本ChainMaker。
4.编译chainmaker:编译新版本的可执行文件,并替换原版本的可执行文件(一般在目录bin中)。
5.修改配置:若不使用新版本特性,则可跳过;若需使用,可修改所有节点的chainmaker.yml对应部分。
8.(强烈建议)编译合约文件:使用和chainmaker-go最近版本的合约SDK编译新的合约文件。
10.(强烈建议)升级配套工具:如果有使用sdk或者cmc工具,请将sdk或cmc版本升级为和链一致的版本,否则可能会导致交易失败。
1.新节点的bc*.yml文件必须与旧版本时期保持一致(路径参数则需要路径对应的内容保持一致),无需修改为新的版本。新的版本程序已对其做了兼容,如果修改bc*.yml会导致创世块不一致,无法完成同步。