说明: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. 技术细节

  1. 共享账本:两个空间共享相同的数据存储底层账本,单个区块可以包含来自两个空间的交易,通过交易编码区分。
  2. 账户独立性:Core Space 和 eSpace 中的账户是独立的,拥有各自的余额和状态。使用相同私钥在两个空间会生成不同的地址。
  3. 跨空间通信:通过 CrossSpaceCall 内置合约可以在两个空间之间转移资产和数据,这些操作是原子性的,具有 Layer 1 安全性。
  4. 开发体验
    • 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,这只是模版代码中引入的一个依赖,删除即可。

操作步骤:

  1. 打开 package.json 文件,在 devDependencies 中删除 "@nomicfoundation/hardhat-foundry": "^1.2.1" 这一行。
  2. 打开 hardhat.config.ts,将 import "@nomicfoundation/hardhat-foundry"; 删除或注释掉。
  3. 删除项目根目录下的 node_modules 文件夹。
  4. 重新运行 npm install 重新安装纯净的依赖。
  5. 之后,运行 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

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐