入门指南
JuChain 开发者文档 - 入门指南
JuChain 当前仅支持 Solidity 版本 <= 0.8.8 进行编译,后续版本支持将根据官方通知逐步开放。
欢迎体验 JuChain 开发者之旅!本指南将帮助您快速上手 JuChain 平台,从设置开发环境到部署您的首个智能合约,再到连接 JuChain 测试网。本章节面向初次接触 JuChain 的开发者,旨在提供清晰的步骤和实用示例,确保您能迅速开始构建。
前提条件
在开始之前,请确保您具备以下基础知识和工具:
基础区块链知识:熟悉智能合约、区块链交易和以太坊虚拟机(EVM)的基本概念。
开发工具:
Node.js(建议 v16 或更高版本):用于运行 JavaScript 和安装依赖。
npm 或 yarn:包管理工具,用于安装项目依赖。
代码编辑器:推荐 Visual Studio Code 或类似工具。
钱包:安装 MetaMask 或其他兼容 EVM 的钱包,用于管理账户和测试网代币。
终端技能:基本的命令行操作能力。
如果您已经熟悉以太坊开发,JuChain 的完全 EVM 兼容性将让您的迁移过程非常顺畅。
第一步:设置开发环境
安装必备工具
安装 Node.js 和 npm
下载并安装最新版本的 Node.js(包含 npm):Node.js 官网。
验证安装:
node -v npm -v
如果您更喜欢 yarn,可使用
npm install -g yarn
安装。
安装 Truffle 或 Hardhat JuChain 支持以太坊主流开发框架。这里以 Hardhat 为例:
全局安装 Hardhat:
npm install -g hardhat
创建一个新 Hardhat 项目:
npx hardhat
选择“Create a basic sample project”并按提示完成初始化。
安装 MetaMask
下载并安装 MetaMask 浏览器扩展:MetaMask 官网。
创建或导入一个钱包账户,用于后续测试网交互。
配置 JuChain 网络
JuChain 提供主网和测试网供开发者使用。以下是测试网的配置信息:
网络名称:JuChain Testnet
RPC URL:
https://testnet-rpc.juchain.org
链 ID:
货币符号:JU
区块浏览器 URL:
https://explorer-testnet.juchain.org
在 MetaMask 中添加 JuChain 测试网:
打开 MetaMask,点击“网络”下拉菜单。
选择“添加网络” > “手动添加网络”。
输入上述配置信息并保存。
第二步:获取测试网 JU 代币
在 JuChain 测试网上部署和测试智能合约需要 JU 代币。您可以通过官方水龙头获取测试网 JU。
访问 JuChain 测试网水龙头:https://faucet-testnet.juchain.org。
输入您的 MetaMask 钱包地址。
点击“领取”按钮,每日可领取一定数量的测试 JU(例如 10 JU)。
在 MetaMask 中确认您的测试网余额已更新。
第三步:编写您的首个智能合约
以下是一个简单的智能合约示例,用于在 JuChain 上存储和读取数据。
创建智能合约
在 Hardhat 项目目录下,进入
contracts
文件夹。创建文件
SimpleStorage.sol
,并输入以下代码:// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract SimpleStorage { uint256 private storedValue; // 存储一个值 function set(uint256 _value) public { storedValue = _value; } // 获取存储的值 function get() public view returns (uint256) { return storedValue; } }
配置 Hardhat
打开
hardhat.config.js
,添加 JuChain 测试网配置:require("@nomicfoundation/hardhat-toolbox"); module.exports = { solidity: "0.8.0", networks: { juchain_testnet: { url: "https://testnet-rpc.juchain.org", chainId: accounts: ["YOUR_PRIVATE_KEY"] // 替换为您的私钥(注意安全) } } };
将
YOUR_PRIVATE_KEY
替换为您的 MetaMask 私钥(从“账户详情”中导出,注意不要公开分享)。
确保安装必要的 Hardhat 插件:
npm install --save-dev @nomicfoundation/hardhat-toolbox
编译智能合约
在终端运行以下命令编译合约:
npx hardhat compile
成功后,您将在 artifacts
文件夹中看到编译结果。
第四步:部署到 JuChain 测试网
编写部署脚本
在
scripts
文件夹中,创建deploy.js
:const hre = require("hardhat"); async function main() { const SimpleStorage = await hre.ethers.getContractFactory("SimpleStorage"); const simpleStorage = await SimpleStorage.deploy(); await simpleStorage.deployed(); console.log("SimpleStorage deployed to:", simpleStorage.address); } main() .then(() => process.exit(0)) .catch((error) => { console.error(error); process.exit(1); });
部署合约到 JuChain 测试网:
npx hardhat run scripts/deploy.js --network juchain_testnet
部署成功后,终端将输出合约地址,例如:
SimpleStorage deployed to: 0x1234...abcd
在 JuChain 测试网区块浏览器(
https://testnet-explorer.juchain.org
)上输入合约地址,验证部署是否成功。
第五步:与智能合约交互
测试合约功能
在 Hardhat 控制台中测试:
npx hardhat console --network juchain_testnet
输入以下命令与合约交互:
const SimpleStorage = await ethers.getContractFactory("SimpleStorage"); const simpleStorage = await SimpleStorage.attach("0x1234...abcd"); // 替换为您的合约地址 await simpleStorage.set(42); (await simpleStorage.get()).toString();
输出应为
"42"
,表示合约正常工作。
使用 ethers.js 前端交互(可选)
如果您想通过网页与合约交互:
初始化一个前端项目:
npm init -y npm install ethers
创建
index.html
和app.js
,示例代码如下:import { ethers } from "ethers"; const provider = new ethers.providers.Web3Provider(window.ethereum); await provider.send("eth_requestAccounts", []); const signer = provider.getSigner(); const contractAddress = "0x1234...abcd"; // 替换为您的合约地址 const abi = [ /* 从 artifacts/SimpleStorage.json 中复制 ABI */ ]; const contract = new ethers.Contract(contractAddress, abi, signer); // 设置值 await contract.set(100); // 获取值 const value = await contract.get(); console.log("Stored value:", value.toString());
第六步:连接 JuChain 测试网节点
JuChain 提供免费的公共 RPC 节点,开发者无需自己运行节点即可开发和测试。
使用公共 RPC
测试网 RPC:
https://testnet-rpc.juchain.org
在 Hardhat 或其他工具中直接使用此 RPC URL 连接网络。
运行自己的节点
暂未开放。
下一步
恭喜您已成功部署首个智能合约到 JuChain 测试网!接下来,您可以:
探索 开发者指南 以深入了解 API 和流量金融集成。
查看 教程与示例 以构建更复杂的 dApps。
加入 JuChain 开发者社区:Discord 或 论坛 获取支持。
如果遇到问题,请参考 FAQ 或联系技术支持团队。
Last updated