AElf区块链项目节点部署指南:从零开始搭建开发环境
为什么需要运行AElf节点
在AElf区块链生态中,运行节点是开发者深度参与网络的基础。根据不同的需求,节点可分为两种类型:
-
全节点(Full Node):
- 存储完整的区块链数据
- 可查看所有链上信息
- 支持部署DApp和智能合约
- 提供与链上合约交互的能力
-
出块节点(BP, Block Producer):
- 参与网络共识和出块
- 需要参与选举成为前2N+1名(N初始为8,每年递增1)
- 当前出块节点数量阈值为17个
- 获得参与AElf网络治理的权限
环境准备
跨平台支持
AElf节点支持在三大主流操作系统上运行:
- macOS
- Linux/Codespaces
- Windows
无论您使用哪种系统,都可以按照相应章节完成部署。
macOS环境部署指南
1. 安装aelf-command工具
首先需要安装AElf命令行工具,执行以下命令:
npm i aelf-command -g
成功安装后,您将看到类似输出:
+ aelf-command@0.1.44
added 314 packages in 25.958s
若遇到权限问题,可执行:
sudo chmod 755 /usr/local/lib/node_modules
2. 获取并构建AElf源码
建议在桌面创建专用目录:
mkdir ~/Desktop/Code
cd ~/Desktop/Code
克隆AElf仓库并构建:
git clone https://github.com/AElfProject/AElf.git
cd AElf
dotnet restore AElf.All.sln
dotnet build AElf.All.sln
构建过程约需15分钟,成功后会显示:
xx Warning(s)
0 Error(s)
Time Elapsed 00:15:59.77
3. 创建AElf账户
使用aelf-command创建账户:
aelf-command create
系统将生成包含以下信息的账户:
- 助记词(Mnemonic)
- 私钥(Private Key)
- 公钥(Public Key)
- 地址(Address)
请务必妥善保存这些信息,特别是同意保存为JSON文件后,文件默认存储在:
/Users/{username}/.local/share/aelf/keys/
4. 配置并运行单节点
单节点模式适合合约测试和开发环境:
- 启动Redis服务:
redis-server
- 修改配置文件: 进入
src/AElf.Launcher目录,编辑appsettings.json:
- 在
Account部分填写您的地址和密码:
"Account": {
"NodeAccount": "您的地址",
"NodeAccountPassword": "您的密码"
}
- 在
Consensus部分添加您的公钥:
"Consensus": {
"InitialMinerList": ["您的公钥"],
// 其他配置保持不变
}
- 启动节点:
sudo dotnet run
成功启动后,您可以通过访问本地Swagger界面(http://localhost:8000/swagger/index.html)与节点交互。
Linux/Codespaces部署
Linux环境的部署流程与macOS基本相同,主要区别在于:
- 账户JSON文件存储在:
/root/.local/share/aelf/keys/
- 构建过程可能需要额外依赖,请确保已安装所有.NET Core所需的库。
Windows环境部署
Windows用户需要注意:
- 建议使用PowerShell或新版终端
- 目录路径使用Windows风格:
cd C:/Users/${username}/Desktop/Code
- Redis服务可能需要单独下载安装
常见问题处理
-
Rosetta 2问题: 在M1/M2芯片的Mac上,若遇到contract_csharp_plugin调用失败,执行:
/usr/sbin/softwareupdate --install-rosetta --agree-to-license -
数据清理: 如需清空所有测试数据,执行:
redis-cli flushall -
节点关闭: 使用Ctrl+C组合键安全关闭节点
进阶建议
- 为提升开发效率,建议将常用命令写成脚本
- 测试环境下,可以降低出块间隔(修改MiningInterval)
- 定期备份您的账户JSON文件和助记词
- 开发合约时,可考虑使用AElf提供的模板项目加速开发
通过本指南,您已经成功搭建了AElf区块链的开发环境,接下来可以开始智能合约开发和DApp构建了。如需进一步了解合约开发,请参考AElf的智能合约开发文档。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



