ADA币开发(一)运行节点,加入测试网络
警告:
本文为原创,禁止任何非授权的转载
本文不构成任何投资建议,币市很凶险,投资需谨慎
本文基于个人对 Cardano 官方文档的理解和实践经验,不排除有错误的可能,由此造成的损失,本人不承担任何责任

写在前面
作者在最早接触到比特币是在2012年,然而因为年少无知,错失了比特币最早的投资机会,继而对整个加密货币市场心灰意冷。直到最近,由于某些契机,才重新开始研究开始加密货币。经过一系列比对,作者对 ADA(Cardano)产生了浓厚的兴趣。
ADA 与大众熟知的 比特币 和 以太坊 不同,属于 PoS 类型货币。用最简单的话来解释,共识的建立,并非通过算力来证明,而是靠权益来证明,因此不需要耗费大量的算力来挖矿。
ADA 目前是市值第三大的加密货币,然而 ADA 的开发却一直以慢工出细活著称,直到最近上线的 Mary 版本,才具备了“原生代币”的功能,“智能合约”功能的上线,仍需一些时日。从另一个方面来看,一个还不能二次发币炒作的加密货币,能做到第三大市值,足见底子的深厚。
因此,作者花了些精力,阅读了官方开发文档,并把一些内容进行总结。如果有计划研究加密货币代码,甚至于发行货币的读者,可以进行参考。
本文内容
如果你只是想投资加密货币,那么只需要挑一个靠谱的交易所,投钱进去就行了。
而如果你想要了解加密货币的开发,亲自运行节点程序是必不可少的一步。
ADA 官方维护了一个测试网络,与正式网络相比,测试网络具备一些尚未部署的功能,并且测试网络的货币是可以自由申请的,所以很适合开发用途。
本文将介绍如何编译 ADA 节点程序,运行节点程序,并加入 ADA 官方测试网络。
先决条件
与官方文档一致,本文以 Linux 平台为例(Debian 10),因此默认读者具有基础 Linux 操作经验,本文不再在基本概念上做过多解释。
官方建议为 ADA 节点程序准备 2 核心 CPU 和 4 G 内存。鉴于克隆代码,下载第三方包均需要访问海外网络,作者建议用户直接购买一台海外云主机,作为开发平台。
命令介绍
ADA 节点为典型的 C/S 架构。
cardano-node 为节点主进程程序,cardano-cli 为命令行工具。
cardano-node 作为主进程,负责与网络上其他节点通信,实时更新最新的区块信息,维护共识。如果你的机器资源足够强大,你可以配置 cardano-node 成为出块节点,获取收益。
cardano-cli 是命令行工具,允许用户与 cardano-node 进行交互。执行诸如公私钥生成,签署事务,提交事务到网络等等功能。
安装编译器
ADA 所有代码均使用 Haskell 语言编写,因此需要先安装 cabal (Haskell 的包管理器)和 GHC (Haskell 的编译器)
安装依赖库
以 Debian 10 为例,安装操作系统依赖库
安装 Cabal 和 GHC
Haskell 官方提供预编译好的 deb 包,因此可以不用参考 Cardano 教程手动安装 Cabal 和 GHC
至此 cabal 和 ghc 命令安装完成,可以通过敲击以下命令来验证
安装定制版 libsodium
libsodium 是一个著名的加密解密库,Cardano 的开发公司 IOHK 维护了一个 libsodium 的分支版本,提供了一些额外的功能。
要编译 ADA 节点程序,必须先编译安装定制版的 libsodium。
编译 ADA 节点代码
终于到了最重要的一步,编译 ADA 节点程序代码
编译过程可能耗时长达半个小时,因此需要耐心等待,如果没有意外,最终能正确构建 cardano-node 和 cardano-cli 两个可执行程序
将可执行程序复制到 /usr/local/bin 以完成安装
可以敲击如下命令来验证
建立工作目录
上面已经完成了 cardano-node 和 cardano-cli 两个命令的编译,下面就要着手建立工作目录,准备真正运行了
启动节点
所有准备工作已经妥当,下面是最激动人心的一步了,启动测试节点。
首先要保证你的云主机防火墙开放了 3001 端口,允许其他节点访问你自己的 3001 端口;然后从云主机厂商那里获取你的服务器公网地址。
最后执行以下命令,即可启动 cardano-node 节点,并连接到测试网络
正常情况下,你会看到一堆输出信息,表示 cardano-node 正在与测试网络同步最新的区块信息。

由于上述命令会运行 cardano-node 并占用当前命令行,因此需要新开一个命令行,或者使用 tmux 终端复用程序新开窗口。
输入以下命令验证
不出意外,cardano-cli 也应该能获取到当前区块信息

至此,你的 cardano-node 节点已经成功地和 ADA 测试网络建立了连接,现在你可以放置一个晚上,让你的 cardano-node 节点完成区块数据同步。
记得使用 tmux 终端复用程序,或者使用 systemd service 文件,让你的 cardano-node 能够后台运行,防止你与服务器连接断开,导致进程退出。
下期预告
下一期,我会告诉你如何创建一个 Cardano 钱包地址,并从官方那里要到 1000 测试 tADA 币
参考资料
https://docs.cardano.org/projects/cardano-node/en/latest/getting-started/install.html
https://docs.cardano.org/projects/cardano-node/en/latest/stake-pool-operations/getConfigFiles_AND_Connect.html
https://downloads.haskell.org/~debian/
赞助
ADA 地址:addr1q9aemmfl4qr8sjp2xj5zupzvuamuw36z5awv865qt0lsl3pj72alpak07tadfuusgl5guq3ndtr3r2aknt4c3tgny7eqna8kkj
BTC 地址:bc1q5s6wwn3f4nj9sygv9fzwzuuuqqve0323mnwf8e