树图链Conflux
说明:Conflux 为采用树图(Tree-Graph)共识结构的公链网络,支持高吞吐与低确认延迟。其在架构上划分为 Core Space 与 eSpace 两个逻辑空间:前者为原生 Conflux 执行环境,后者兼容 EVM,可复用以太坊开发工具链。本文档梳理两者的技术差异与使用场景,并以 eSpace 为例,记录基于 Hardhat 的智能合约部署与验证流程,供开发者参考。
一、Conflux 网络介绍
Conflux 网络中的 Core Space 和 eSpace 是两个逻辑上独立但共享底层数据存储的空间,主要区别如下:
1. 核心区别对比
| 对比维度 | Core Space | eSpace |
|---|---|---|
| 本质 | 原始 Conflux 网络 | 在 Core Space 上运行的虚拟化以太坊链 |
| 地址格式 | base32 编码地址 | hex40 地址(与以太坊完全兼容) |
| EVM 兼容性 | 从 EVM 演变而来,有优化 | 完全 EVM 兼容 |
| 开发工具 | 需要专有钱包和 SDK | 可直接使用以太坊工具(MetaMask、Remix、Hardhat 等) |
| 交易编码 | Conflux 格式交易 | 以太坊格式交易(EIP-155) |
| 账户模型 | 独立账户系统 | 以太坊账户模型 |
| 区块打包 | 所有区块都可包含 Core 交易 | 仅在区块高度为 5 的倍数时打包 eSpace 交易 |
2. 技术细节
- 共享账本:两个空间共享相同的数据存储底层账本,单个区块可以包含来自两个空间的交易,通过交易编码区分。
- 账户独立性:Core Space 和 eSpace 中的账户是独立的,拥有各自的余额和状态。使用相同私钥在两个空间会生成不同的地址。
- 跨空间通信:通过
CrossSpaceCall内置合约可以在两个空间之间转移资产和数据,这些操作是原子性的,具有 Layer 1 安全性。 - 开发体验:
- eSpace:对以太坊开发者友好,dApp 可无需修改直接部署,支持所有主流以太坊工具链。
- Core Space:需要学习 Conflux 特有工具,但包含 PoS 质押、跨空间通信和链上治理等内置合约。
3. 适用场景
- 选择 eSpace:如果你是以太坊开发者,希望快速迁移现有 dApp,或想使用 MetaMask 等熟悉工具。
- 选择 Core Space:如果你需要原生 Conflux 功能,如链上治理、跨空间通信,或开发 Conflux 原生应用。
两个空间通过原子性跨空间调用紧密集成,开发者可根据项目需求选择合适空间,或利用两者优势构建跨空间应用。
二、eSpace
eSpace 为开发者和普通用户提供的体验与以太坊相同。以太坊的 dApps 可以直接部署到 eSpace,无需任何修改。以太坊的开发工具(Remix、Hardhat、Foundry 等)、SDK(ethers.js、viem、web3.py、web3.js)、钱包(Metamask、Taho)和服务(TheGraph)可以在 eSpace 中直接使用。
1. MetaMask 连接到 eSpace
Conflux eSpace 测试网配置参数:
| 参数 | 值 |
|---|---|
| 网络名称 | Conflux eSpace (Testnet) |
| 新的 RPC URL | https://evmtestnet.confluxrpc.com |
| 链 ID | 71 |
| 货币符号 | CFX |
| 区块浏览器 URL | https://evmtestnet.confluxscan.org |
Conflux eSpace 正式网配置参数:
| 参数 | 值 |
|---|---|
| 网络名称 | Conflux eSpace |
| 新的 RPC URL | https://evm.confluxrpc.com |
| 链 ID | 1030 |
| 货币符号 | CFX |
| 区块浏览器 URL | https://evm.confluxscan.org |
2. 领取 CFX
-
Conflux eSpace 测试网:前往 eSpace 水龙头 获取测试网 CFX。将您的钱包地址粘贴到地址输入框中,输入验证码,然后点击 Claim 即可领取测试网 CFX。
-
Conflux eSpace 正式网:前往 Conflux Faucets 获取主网 CFX。这里目前会向您发送 0.02 CFX,可用于 Core Space 或 eSpace。这笔金额足够在 eSpace 上进行 3-10 次交易。
三、eSpace 部署智能合约
在这个 GitHub 仓库 中展示了使用 Hardhat 和 Foundry 的部署模版。在这里我们使用 Hardhat 部署智能合约。
1. 安装工具
如果您尚未安装,请先安装 Node.js。
2. 下载代码安装依赖
git clone https://github.com/conflux-fans/espace-contract-guide
cd espace-contract-guide
npm install
3. 运行部署
第一步: 按照根目录中的 .env.example 示例创建一个 .env 文件。将 .env 中的 PRIVATE_KEY 更改为您自己账户的私钥。
第二步: 运行 npx hardhat help 查看所有可用命令。
⚠️ 特别注意:如果电脑上没有安装 Foundry,可能会报错。但我们这里使用的是 Hardhat 部署合约,本身并不需要下载 Foundry,这只是模版代码中引入的一个依赖,删除即可。
操作步骤:
- 打开
package.json文件,在devDependencies中删除"@nomicfoundation/hardhat-foundry": "^1.2.1"这一行。 - 打开
hardhat.config.ts,将import "@nomicfoundation/hardhat-foundry";删除或注释掉。 - 删除项目根目录下的
node_modules文件夹。 - 重新运行
npm install重新安装纯净的依赖。 - 之后,运行
npx hardhat help命令应该就能正常工作了。
第三步: 运行 npx hardhat compile 编译合约。
第四步: 运行以下命令启用 Gas 消耗显示:
$env:REPORT_GAS="true"
第五步: 运行 npx hardhat test test/Lock.ts 运行测试。
第六步: 打开一个新的终端,运行 npx hardhat node 启动本地节点。
第七步: 返回刚刚那个终端,运行 npx hardhat run scripts/deploy.ts 部署到本地。如果要部署到测试环境,需运行:
npx hardhat run scripts/deploy.ts --network espaceTestnet
第八步: 运行以下命令进行 eSpace 验证:
npx hardhat verify --network espaceTestnet <contract address> <space separated constructor parameters>
4. 验证示例
在步骤七执行之后返回结果为:
Lock with 0.001ETH and unlock timestamp 1777518389 deployed to 0xD224417C5b65a7244f8baF6eb98DF32f7bbBDb81
对应的验证语句为:
npx hardhat verify --network espaceTestnet 0xD224417C5b65a7244f8baF6eb98DF32f7bbBDb81 1777518389
验证成功后,可在区块浏览器查看合约源码:
👉 https://evmtestnet.confluxscan.org/address/0xD224417C5b65a7244f8baF6eb98DF32f7bbBDb81#code
更多推荐
所有评论(0)