-
安装Headscale CLI和Substrate:
- 使用npm安装Headscale CLI:
npm install -g headscale
- 安装Substrate节点,推荐使用Docker:
docker pull substrate/node docker run -d --name substrate-node substrate/node:latest
- 记录节点地址,假设为
http://localhost:9931。
- 使用npm安装Headscale CLI:
-
初始化Headscale项目:
- 创建项目目录,如
hs-bench:mkdir hs-bench && cd hs-bench
- 初始化项目:
headscale init
- 运行开发服务器:
npm run dev
- 创建项目目录,如
-
配置Headscale:
- 打开
config.json,填写Substrate节点地址和账户信息:{ "node": "http://localhost:9931", "account": "dev", "password": "yourpassword" } - 创建账户:
headscale account new
- 打开
-
编写智能合约:
- 使用
substrate-contract-mac初始化合约文件:npm init -y && npm install substrate-contract-mac
- 编写合约文件
Contract.ts:import { Module } from '@substrate/contract-mac'; declare module 'substrate-contract-mac' { // ... 标准模块导入 }
- 使用
-
部署智能合约:
- 编写
Main.ts并部署:import { Module } from '@substrate/contract-mac'; class Contract { storage: Map<string, string> = new Map(); // 存储NFT元数据 storeNFT(id: string, metadata: string) { this.storage.set(id, metadata); } } class Main { // ... 合约逻辑 } - 部署合约:
headscale deploy --contract Contract.ts
- 编写
-
使用Headscale API操作合约:
- Mint NFT:
headscale mint --recipient "x1234" --token-id "1"
- Burn NFT:
headscale burn --token-id "1"
- Transfer NFT:
headscale transfer --from "x5678" --to "x9abc" --token-id "1"
- Mint NFT:
-
测试和验证:
- 使用Substrate节点查询合约状态:
substrate-node --rpc --base-node http://localhost:9931 --state
- 检查NFT元数据是否存储正确。
- 使用Substrate节点查询合约状态:
通过以上步骤,您已成功配置并部署了Headscale的Layer2解决方案,能够在Substrate主网上高效运行智能合约。









