Conflux生态 CIP-37(Conflux-rust v1.1.1 )升级指南

本次更新为兼容版本更新,公链的共识层未发生改变。新旧地址格式仅做编码转换,原有私钥和助记词可正常登陆 Conflux 钱包账户,不会对个人资产产生影响。

详情见:CIP-37(Conflux-rust v1.1.1 )升级通知:https://forum.conflux.fun/t/topic/4872

Conflux 基金会建议 Conflux 生态逐步淘汰旧版 hex40 格式地址(0x开头),统一更新为 base32 格式地址(以网络标识开头,如 cfx:),ConfluxScan 页面已添加新旧地址转换工具。建议所有Conflux生态伙伴完成本次升级。

本次升级对生态应用会产生较大影响,Conflux 基金会将同已上线的生态项目和各合作伙伴(如钱包、交易所、矿池等)沟通,尽量将时间升级固定在短时间内(这个时间以ConfluxPortal 更新为 0.6.x 版本为节点)。

ConfluxPortal 暂定于 2021 年 3 月 9 日 11 点 - 13 点之间,在 Chrome 和 Firefox 插件商店更新到 0.6.x 版本,更新后的 ConfluxPortal,api 仅返回 base32 地址,签名同时支持 hex40 格式地址(0x开头)和 base32 格式的地址(以网络标识开头,如cfx:)。

ConfluxPortal base32 地址格式迁移说明:https://doc.clickup.com/p/h/3hg1c-1153/dfb38d55262e9e8
本文档包含:0.6.0 测试版插件下载链接,0.6.x 版本对Dapp的影响介绍和迁移文档。

Conflux RPC 地址列表:https://github.com/conflux-fans/conflux-rpc-endpoints(仅供开发测试使用,不保证可用性)

我是节点运营者/矿工,我需要做什么?

配置说明

v1.1.1之后的版本
run/tethys.toml 文件中

mining_author="个人钱包地址"

填写新旧格式的地址均可

注意:

目前Conflux-rustv1.1.1里mining_author填写新地址时需要带引号才能识别,如

mining_author='"cfx:aampumd7hpufe4krfpsur645xt1cewtkpybkhyn7fc"'

之后将发布的 Conflux-rust v1.1.2 将可以直接输入地址,如

mining_author="cfx:aampumd7hpufe4krfpsur645xt1cewtkpybkhyn7fc"

目录变化:

v1.1.1之后的版本所有的数据均置于conflux_data_dir参数配置的目录下,默认路径为./blockchain_data.

v1.1.0及以前版本的默认目录结构如下:

├── blockchain_db
├── net_config
├── storage_db
├── conflux
├── log
├── log.yaml
├── start.bat
├── start.sh
├── stderr.txt
├── tethys.toml

v1.1.1 版本后的默认目录结构如下:

├── blockchain_data
│   ├── blockchain_db
│   ├── net_config
│   └── storage_db
├── conflux
├── log
├── log.yaml
├── start.bat
├── start.sh
├── stderr.txt
├── tethys.toml

适配方法1(推荐):

新建目录blockchain_data,并将blockchain_db, net_config, storage_db 三个目录移动到blockchain_data 下。不用修改配置文件tethys.toml.

适配方法2:

无需移动目录,在配置文件tethys.toml里设置

conflux_data_dir = "."
netconf_dir = "./net_config"
block_db_dir = "./blockchain_db"

我是不支持DApp的钱包/矿池/中心化交易所,需要做什么?

建议尽早升级新版 RPC 和新版 SDK,并提前提示用户升级。
旧 RPC 和旧 SDK 只能使用旧地址进行转账,若想向新地址转账,需要转换成旧格式地址。
新 RPC 和新 SDK 只能使用新地址进行转账,若想向旧地址转账,需要转换成新格式地址。

各 SDK 都已经提供方法可以在两种地址之间转换,若想升级后适配旧地址,前端加一下判断和转变即可,如钱包用户,在用户界面可以接受旧地址,但在跟 RPC 交互的时候只能使用新地址。

我是支持生态应用的钱包和生态应用,需要做什么?

建议北京时间 2021 年 3 月 9 日 下午13点左右,同全部生态应用一同完成统一升级。并提前提示用户升级。

支持DApp的钱包和生态应用,ConfluxPortal 升级后只提供新版 RPC 和 SDK,返回的地址亦是 base32 格式的新地址。

Dapp 升级方案:
方案一 不适配旧版Portal(推荐方案):当检测到钱包返回的地址是旧地址,则提示用户升级最新版本的钱包。
方案二 适配旧版Portal:当检测到钱包返回的地址是旧地址,同 portal sdk 实例交互时需要使用旧版地址,如果用户输入地址为 base32 地址,需要应用转换为 hex 格式地址。

1 Like

最近看经常遇到生态合作伙伴咨询通过api查寻交易和节点数据存放的问题

常出现

{
    "id": 1,
    "jsonrpc": "2.0",
    "result": null
}

返回是null .

通常这种情况是需要自己的节点需要打开 persit_index 配置。而自己运行节点时,这个配置很容易忽略。
具体方法如下:
HTTP RPC端口在toml配置文件里通过jsonrpc_tcp_port指定,其它还有jsonrpc_ws_port、jsonrpc_tcp_port、jsonrpc_http_port、jsonrpc_local_tcp_port、jsonrpc_local_http_port。可以参考release里提供的tethys.toml默认配置文件。默认的数据存放在运行路径(pwd)下的blockchain_db和storage_db里。可以通过配置文件里的conflux_data_dir和block_db_dir分别配置。需要注意如果需要访问老的receipt数据的话,需要把persist_tx_index设置为true.