艾达币开发环境配置:完整指南与步骤详解

分类:交易所 访问:65

艾达币开发环境配置指南

艾达币(ADA)是Cardano区块链的原生代币,Cardano是一个第三代区块链平台,旨在提供更安全、更可持续和更可扩展的基础架构。 对于希望在Cardano区块链上进行开发的开发者来说,搭建一个合适的开发环境至关重要。 本文将详细介绍如何配置艾达币的开发环境,涵盖从安装必要的工具到设置本地节点等各个方面。

1. 选择操作系统

在开始Cardano区块链开发之前,选择一个合适的操作系统至关重要。Cardano生态系统与多种操作系统兼容,您需要根据自身的技术背景、开发习惯以及项目需求进行选择。以下是几种主流操作系统的详细分析:

  • Linux: Linux是Cardano开发的首选操作系统,这主要是由于其卓越的稳定性和强大的命令行工具。Linux提供了丰富的开发资源和广泛的社区支持,使其成为区块链开发人员的首选平台。各种Linux发行版(如Ubuntu、Debian、Fedora等)都能够很好地支持Cardano节点的运行和智能合约的开发。Linux的开源特性允许开发者更深入地了解和定制系统,这对于解决复杂的区块链问题非常有帮助。
  • macOS: macOS是另一个流行的选择,尤其受到具有Unix系统经验的开发者的青睐。macOS结合了Unix系统的底层架构的稳定性和Apple公司提供的卓越用户界面。它提供了一个强大的开发环境,拥有诸如Terminal、Xcode等高效的工具,可以方便地进行Cardano相关项目的开发和测试。macOS对开发者友好的特性,如Homebrew包管理器,可以简化依赖项的安装过程。
  • Windows: 虽然Windows操作系统也可以用于Cardano开发,但它通常需要借助Windows Subsystem for Linux (WSL) 来获得更好的兼容性。WSL允许在Windows上运行Linux环境,从而能够使用Linux的命令行工具和开发资源。直接在Windows上进行Cardano开发可能会遇到一些兼容性问题,例如某些依赖项可能难以安装,或者某些工具可能无法正常运行。因此,推荐使用WSL来模拟Linux环境,从而更好地支持Cardano开发。使用WSL2相较于WSL1,拥有更好的性能和系统调用兼容性,建议优先选择。

本指南将主要针对Linux和macOS操作系统进行讲解,因为这两种操作系统在配置和使用上都更加便捷,能够提供更好的开发体验。对于Windows用户,建议安装并配置WSL2,并按照Linux的步骤进行操作。

2. 安装必备工具

为了高效地构建、测试和部署Cardano区块链上的应用程序,必须预先安装一系列关键工具。这些工具涵盖了开发流程的各个方面,从智能合约的编写和编译,到链上交互和交易的验证。

以下是一些建议安装和配置的工具,它们将极大地提升你的Cardano开发体验:

  • Plutus Application Framework (PAF): PAF是一个全面的开发框架,专门为Cardano上的Plutus智能合约设计。它包含了编译器、模拟器和调试工具,方便开发者编写、测试和验证Plutus脚本。
  • Cardano Node: 一个完整的Cardano节点允许你与Cardano区块链进行交互。你可以使用它来查询链上数据,提交交易,以及参与网络共识。安装Cardano Node意味着你需要下载区块链的历史数据,并保持节点同步。
  • Cardano CLI: Cardano命令行界面(CLI)是一个强大的工具,用于与Cardano节点进行交互。它允许你创建钱包、构建和提交交易、查询账户余额以及执行其他链上操作。 熟悉Cardano CLI是进行高级Cardano开发的基础。
  • Nix Package Manager (可选): Nix是一个强大的包管理器,用于构建可重复的、可靠的开发环境。虽然不是必须的,但Nix可以简化Cardano工具链的安装和管理,尤其是在不同的操作系统和环境中。
  • 必要的编程语言环境: 根据你选择的开发语言,如Haskell(用于Plutus)或其他支持的语言,确保安装相应的编译器、解释器和库。 例如,使用Plutus需要安装GHC (Glasgow Haskell Compiler) 和 Cabal。
  • 集成开发环境 (IDE): 选择一个适合你的编程语言的IDE,例如VS Code、IntelliJ IDEA 或其他。 配置好IDE以支持Haskell或你选择的其他语言,并安装必要的插件以提高开发效率。

正确的工具安装和配置是成功进行Cardano开发的关键。请务必仔细阅读官方文档,并根据你的具体需求选择合适的工具。

2.1. Git:分布式版本控制系统的基石

Git 是一款强大的分布式版本控制系统(DVCS),它不仅能够记录代码的每一次修改,还允许开发者在本地进行版本控制,极大地提升了协作效率和灵活性。 Git 的核心功能在于追踪项目文件的变更历史,使开发者能够轻松地回溯到之前的版本,比较不同版本之间的差异,以及合并来自不同来源的修改。 这种版本控制能力对于软件开发至关重要,能够有效地管理代码的演进过程,避免代码丢失和冲突。

为了开始使用 Git,你需要先在你的计算机上安装 Git 客户端。 安装步骤会根据你的操作系统有所不同。以下是常见的安装命令:

Linux (Debian/Ubuntu):

sudo apt update
sudo apt install git

Linux (Fedora/CentOS/RHEL):

sudo yum install git

macOS (使用 Homebrew):

brew install git

Windows:

你可以从 Git 官方网站 ( https://git-scm.com/downloads ) 下载 Git for Windows 安装包,并按照安装向导的指示进行安装。 安装过程中,建议选择“Use Git from Git Bash only”选项,这样可以在 Git Bash 命令行环境中方便地使用 Git 命令。 你也可以选择其他的集成方式,根据你的习惯选择即可。

安装完成后,可以通过在命令行中输入 git --version 命令来验证 Git 是否成功安装。 如果成功安装,将会显示 Git 的版本信息。

一旦 Git 安装完成,你就可以使用 Git 命令来管理你的代码仓库了。 常用的 Git 命令包括 git init (初始化一个新的 Git 仓库), git clone (克隆一个现有的 Git 仓库), git add (将文件添加到暂存区), git commit (提交更改到本地仓库), git push (将本地仓库的更改推送到远程仓库), git pull (从远程仓库拉取最新的更改), git branch (创建、查看和管理分支),以及 git merge (合并分支)。 掌握这些基本命令是使用 Git 进行版本控制的基础。

Debian/Ubuntu:

在 Debian 和 Ubuntu 系统中,可以使用 apt 包管理器来安装 Git。以下步骤详细说明了安装过程:

1. 更新软件包索引:

bash
sudo apt update

这条命令会刷新你的软件包列表,确保你获取到最新的软件包信息。 sudo 命令允许你以管理员权限执行此操作,因为更新软件包索引需要系统级别的权限。如果没有更新,安装过程可能因为找不到最新的 Git 版本而出错。

2. 安装 Git:

bash
sudo apt install git

这条命令使用 apt 包管理器来安装 Git。 sudo 再次用于授予安装权限。安装过程中,apt 将会下载 Git 及其依赖项,并自动完成配置。安装完成后,你就可以在终端中使用 Git 命令了。可以使用 git --version 来验证 Git 是否成功安装及其版本信息。

macOS (使用Homebrew):

在macOS系统上,推荐使用Homebrew包管理器安装Git。Homebrew简化了软件的安装和管理过程。

确保你已经安装了Homebrew。如果尚未安装,可以在终端中运行以下命令进行安装:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安装过程中会提示你输入管理员密码,并可能需要安装Xcode Command Line Tools。请按照提示完成安装。

安装完Homebrew后,使用以下命令安装Git:

bash

brew install git

该命令会自动下载并安装最新版本的Git及其依赖项。安装过程可能需要一些时间,具体取决于你的网络速度。

安装完成后,可以通过运行 git --version 来验证Git是否成功安装。在终端中输入以下命令:

bash

git --version

如果Git安装成功,终端会显示Git的版本信息,例如: git version 2.43.0 。这表明Git已经成功安装并可以正常使用。

若在安装过程中遇到权限问题,可以尝试使用 sudo brew install git 命令。 sudo 命令允许你以管理员权限运行该命令,从而解决权限不足的问题。输入该命令后,系统会提示你输入管理员密码。

更新Git可以使用命令:

bash

brew upgrade git

卸载Git可以使用命令:

bash

brew uninstall git

2.2. Cabal

Cabal 是一款专为 Haskell 语言设计的构建工具和包管理器。在 Cardano 生态系统中,Cabal 扮演着至关重要的角色,原因在于 Cardano 的众多核心组件,例如节点客户端、库和框架,都是使用 Haskell 编程语言进行开发的。因此,Cabal 对于构建、管理和分发 Cardano 应用程序和库而言是不可或缺的。

在使用 Cabal 之前,首要步骤是安装 GHC (Glasgow Haskell Compiler),这是 Haskell 语言的编译器。GHC 负责将 Haskell 源代码编译成可执行代码或库。Cabal 依赖 GHC 来完成构建过程。在安装 GHC 时,请确保选择与你的操作系统和架构相匹配的版本,并将其正确添加到系统环境变量中,以便 Cabal 能够找到并使用 GHC。具体的安装步骤可以参考 GHC 的官方文档,通常包括下载安装包、运行安装程序以及配置环境变量等环节。安装完成后,可以通过在命令行输入 `ghc --version` 来验证 GHC 是否成功安装。

Debian/Ubuntu:

在 Debian 或 Ubuntu 系统中安装 Haskell 开发环境,你需要安装 Glasgow Haskell Compiler (GHC) 和 Cabal 包管理器。以下是通过 bash 命令行安装的步骤:

打开终端(Terminal)。

然后,使用 apt 包管理器执行以下命令:

bash
sudo apt update  # 确保软件包列表是最新的
sudo apt install ghc cabal-install  # 安装 GHC 编译器和 Cabal

这条命令会安装 GHC(Haskell 的主要编译器)以及 Cabal,这是一个用于构建、打包和安装 Haskell 库和程序的工具。 sudo 命令允许你以管理员权限运行该命令,从而允许系统安装软件。 apt update 确保你的软件包列表是最新的,这样你就可以安装最新版本的 GHC 和 Cabal。

安装完成后,建议更新 Cabal 的软件包列表:

bash
cabal update

为了确保 Cabal 能够找到全局安装的软件包,建议将其二进制文件路径添加到你的环境变量 PATH 中。你可以通过修改 ~/.bashrc ~/.zshrc 文件来实现。打开你的 shell 配置文件,并添加以下行:

bash
export PATH="$HOME/.cabal/bin:$PATH"

保存文件后,运行以下命令使更改生效:

bash
source ~/.bashrc  # 如果你使用的是 Bash
# 或者
source ~/.zshrc  # 如果你使用的是 Zsh

现在,你应该能够使用 ghc cabal 命令来编译和管理 Haskell 项目了。例如,你可以使用 ghc --version cabal --version 来验证它们是否已成功安装并显示其版本信息。

macOS (使用Homebrew):

在macOS操作系统上,使用Homebrew包管理器可以便捷地安装GHC(Glasgow Haskell Compiler)和Cabal。GHC是Haskell语言的主要编译器,Cabal则是Haskell项目的构建工具和包管理器。确保你的macOS系统已经安装了Homebrew。如果尚未安装,请访问Homebrew官网获取安装指南。

bash brew install ghc cabal-install

执行上述命令后,Homebrew会自动下载并安装GHC和Cabal及其依赖项。安装过程可能需要一些时间,具体取决于你的网络速度和系统配置。安装完成后,建议验证GHC和Cabal是否成功安装,可以通过在终端输入 ghc --version cabal --version 来查看版本信息。

安装完成后,更新Cabal包索引:

Cabal包索引包含了Haskell社区维护的各种软件包的信息。定期更新包索引可以确保你获取最新的软件包列表和依赖关系信息。这对于项目的构建和依赖管理至关重要。

bash cabal update

执行 cabal update 命令将会从Hackage服务器下载最新的包索引。这个过程可能会消耗一定的网络带宽。更新完成后,Cabal就可以使用最新的包信息来解决依赖关系和构建项目。

2.3. Cardano节点

Cardano节点是Cardano区块链网络的核心基础设施,它负责维护区块链的完整性和安全性。运行Cardano节点意味着您成为了网络中的一个参与者,积极贡献于网络的去中心化和共识过程。通过运行本地节点,您可以直接与Cardano区块链进行交互,而无需依赖第三方服务提供商。这为您提供了更高的控制权、安全性和隐私性。

你需要运行一个本地节点才能安全地与Cardano网络进行交互,执行各种关键操作。例如,您可以提交交易来转移ADA或其他原生代币,查询区块链的实时状态以获取最新的区块信息、交易数据、账户余额等,还可以参与权益质押(Staking)以赚取奖励,并对Cardano的治理提案进行投票。运行本地节点使得您可以验证交易的有效性,确保所有数据的真实性,从而增强您对Cardano网络的信任。

搭建和运行 Cardano 节点涉及多个步骤,包括下载和配置节点软件,同步区块链数据,以及维护节点的运行。虽然这需要一定的技术知识,但是 Cardano 社区提供了丰富的文档和工具,可以帮助用户轻松地完成这些任务。也有一些第三方服务提供商提供了简化的节点设置和管理方案,使得即使没有专业技术背景的用户也能参与到 Cardano 网络的运行中来。

2.3.1. 下载节点

要运行Cardano区块链节点,你需要下载并安装节点软件。你可以从Cardano官方GitHub仓库下载预编译的Cardano节点二进制文件,这些文件针对不同的操作系统进行了优化。

获取节点软件的一种常见方法是克隆 cardano-node 仓库。这将下载所有必要的源代码和构建脚本。

以下是如何使用Git克隆仓库并切换到最新版本分支的步骤:


git clone https://github.com/input-output-hk/cardano-node.git
cd cardano-node
git checkout $(curl -sS https://api.github.com/repos/input-output-hk/cardano-node/releases/latest | jq -r .tag_name)

git clone 命令会将 cardano-node 仓库复制到你的本地计算机。 cd cardano-node 命令将你导航到该仓库的目录。 git checkout 命令切换到与最新发布标签对应的特定版本。这确保你正在使用最新稳定版本的代码。 curl 命令从GitHub API检索最新的发布标签,而 jq 命令用于解析JSON响应并提取标签名称。 使用特定的标签版本,可以避免使用不稳定的开发版本,保证节点运行的稳定性。

2.3.2. 构建节点 (可选)

如果你希望更深入地参与 Cardano 网络,或者需要自定义节点配置,你可以选择从源代码构建节点。这种方式能够让你完全掌控节点的编译过程和运行参数。下面是构建节点的详细步骤:

确保你的系统已经安装了必要的依赖环境,包括 Haskell 构建工具 Cabal。如果尚未安装,请根据你的操作系统查阅 Cabal 的官方安装指南进行安装。

接下来,使用以下命令更新 Cabal 的软件包索引:

bash
cabal update

这条命令会从 Hackage (Haskell 的软件包仓库) 下载最新的软件包信息,确保你的 Cabal 能够找到构建 Cardano 节点所需的依赖项。

然后,使用以下命令构建 Cardano 节点的所有组件:

bash
cabal build all

这条命令会指示 Cabal 编译 Cardano 节点的源代码,并链接所有必要的库。这个过程可能需要相当长的时间,具体取决于你的系统配置,包括 CPU 性能、内存大小和硬盘速度。在编译过程中,Cabal 会自动下载并安装所需的依赖项。请耐心等待,直到编译完成。

编译完成后,你可以在 Cabal 的安装目录下找到可执行文件。通常,这个目录位于 ~/.cabal/bin 。你需要将这个目录添加到你的 PATH 环境变量中,以便可以直接从命令行运行 Cardano 节点。

2.3.3. 配置环境变量

为了能够在系统的任何位置轻松访问和运行Cardano节点的二进制文件,需要配置环境变量。这允许您无需每次都指定完整路径即可执行 cardano-node cardano-cli 命令,极大地简化了操作流程。

修改 shell 配置文件 (例如 .bashrc .zshrc ) 是配置环境变量的常见方法。这些文件在每次打开新的终端会话时都会被加载,确保环境变量的持久性。

打开您的 .bashrc (通常用于 Bash shell) 或 .zshrc (通常用于 Zsh shell) 文件,并在文件的末尾添加以下行。这些行将定义 CARDANO_NODE_HOME 变量以及将 Cardano 节点和 CLI 的可执行文件路径添加到 PATH 变量中:

CARDANO_NODE_HOME 变量指定了 Cardano 节点安装的主目录。 PATH 变量是系统用来查找可执行文件的环境变量。通过将 Cardano 节点和 CLI 的可执行文件路径添加到 PATH 中,您可以直接在终端中运行这些命令,而无需指定它们的完整路径。

bash

export CARDANO_NODE_HOME=$HOME/cardano-node
export PATH="$PATH:$CARDANO_NODE_HOME/dist-newstyle/build/x86_64-linux/ghc-8.10.7/cardano-node-1.35.4/x/cardano-node/build/cardano-node/cardano-node:$CARDANO_NODE_HOME/dist-newstyle/build/x86_64-linux/ghc-8.10.7/cardano-cli-1.35.4/x/cardano-cli/build/cardano-cli/cardano-cli"

重要提示: 务必根据您实际的 Cardano 节点安装情况,调整以上路径中的 GHC (Glasgow Haskell Compiler) 版本号 (例如 ghc-8.10.7 ) 和 Cardano 节点版本号 (例如 cardano-1.35.4 )。错误的版本号会导致命令无法正确执行。您可以通过检查 Cardano 节点的构建目录来确定正确的版本号。

修改完成后,保存 .bashrc .zshrc 文件。为了使更改生效,您需要重新加载该文件,可以使用以下命令之一:

source ~/.bashrc (如果您修改的是 .bashrc 文件)

source ~/.zshrc (如果您修改的是 .zshrc 文件)

执行 source 命令后,您应该能够在终端中直接运行 cardano-node cardano-cli 命令。 您可以通过运行 cardano-node --version cardano-cli --version 来验证环境变量是否配置正确,并确认版本信息是否符合预期。

2.3.4. 获取Genesis文件和拓扑文件

你需要下载Genesis文件和拓扑文件,这两个文件对于节点与Cardano网络同步至关重要。 Genesis文件定义了Cardano区块链的初始状态,例如初始代币分配和共识协议参数。 拓扑文件则描述了网络中节点之间的连接方式,使你的节点能够发现并与其他节点通信。

为了正确配置你的Cardano节点,请按照以下步骤操作:

创建一个用于存放配置文件的目录,并进入该目录。 这有助于保持节点目录的整洁和有序。

bash
mkdir -p $CARDANO_NODE_HOME/configuration
cd $CARDANO_NODE_HOME/configuration

解释:

  • mkdir -p $CARDANO_NODE_HOME/configuration : 此命令创建名为 "configuration" 的目录,如果该目录不存在。 -p 选项确保如果父目录不存在,也会被创建。 $CARDANO_NODE_HOME 是一个环境变量,指向你的 Cardano 节点的主目录。
  • cd $CARDANO_NODE_HOME/configuration : 此命令将当前工作目录更改为你刚刚创建的 "configuration" 目录。

接下来,你需要根据你所连接的网络(例如,主网、测试网)下载正确的Genesis文件和拓扑文件。 这些文件通常可以从官方Cardano文档或可信赖的社区资源中获取。请务必验证文件的来源,以确保其真实性和安全性。

例如,如果连接到Cardano主网,你可能需要下载 genesis. topology. 文件。 下载命令可能如下所示(请根据实际情况修改URL):

bash
wget https://example.com/genesis.
wget https://example.com/topology.

重要提示:

  • 请务必使用与您要连接的网络相对应的Genesis文件和拓扑文件。 使用不正确的文件会导致节点无法同步或出现其他问题。
  • 在下载和使用任何文件之前,始终验证文件的完整性(例如,使用SHA哈希)。 恶意文件可能会损害你的节点或危及你的资金。

Mainnet

为了顺利连接到Cardano主网,你需要获取创世区块文件(genesis.)、拓扑文件(topology.)以及配置文件(config.)。这些文件包含了网络的关键参数和节点连接信息,对于参与网络共识和交易验证至关重要。

你可以使用 curl 命令从IOHK的Hydra构建服务器下载这些文件。Hydra持续集成系统确保你获取的是最新且经过验证的版本。请注意,Hydra服务器上的路径可能会发生变化,建议定期检查以确保使用的链接仍然有效。

以下是下载这些文件的具体命令:

下载创世区块文件 (shelley_genesis.):

curl -s -o shelley_genesis. https://hydra.iohk.io/job/Cardano/cardano-node/cardano-deployment/latest-finished/nix/genesis.

这个文件定义了Shelley时代的初始状态,包含了初始的ADA分配和其他重要的网络参数。

下载拓扑文件 (topology.):

curl -s -o topology. https://hydra.iohk.io/job/Cardano/cardano-node/cardano-deployment/latest-finished/nix/topology.

拓扑文件描述了你的节点应该连接到的其他节点的列表。它允许你的节点发现并连接到网络的其余部分。 主网拓扑可能包含relay节点,这些节点是专门用于中继交易的,并且通常由Stake Pool Operator (SPO) 维护。 使用正确的拓扑至关重要,可以确保节点高效通信,从而保证网络稳定高效运行。

下载配置文件 (config.):

curl -s -o config. https://hydra.iohk.io/job/Cardano/cardano-node/cardano-deployment/latest-finished/nix/config.

配置文件包含了节点运行所需的各种配置选项,例如数据库路径、网络端口和日志设置等。它定义了节点如何与其他组件交互,以及如何参与到区块链的处理中。 config. 文件中包含了许多关键参数,例如协议魔术字(magic number),它用于区分不同的 Cardano 网络(主网、测试网等)。请务必使用与你想要连接的网络相对应的config.文件。

curl 命令中的 -s 选项表示静默模式,它会阻止 curl 显示进度条和错误消息,除非发生实际的错误。 -o 选项指定输出文件的名称。

请确保将这些文件保存在你的Cardano节点可以访问的位置。 通常建议将他们放在节点配置目录中。 获得这些文件后,您可以继续配置和启动您的Cardano节点以连接到主网。

Testnet (Preprod)

curl -s -o shelleygenesis. https://book.world.dev.cardano.org/environments/preprod/shelleygenesis.

curl -s -o topology. https://book.world.dev.cardano.org/environments/preprod/topology.

curl -s -o config. https://book.world.dev.cardano.org/environments/preprod/config.

该命令使用 curl 工具,以静默模式 ( -s ) 从指定的URL下载Cardano预生产环境的配置信息,并将下载的内容保存为名为 config. 的文件。 curl 是一个强大的命令行工具,常用于从服务器传输数据。

根据你希望连接的Cardano网络环境选择相应的命令。对于预生产测试网(preprod testnet),上述命令下载的就是预生产环境的配置文件。不同的网络环境需要不同的配置文件才能正确连接和同步区块链数据。

请注意,配置文件包含了连接Cardano节点所需的关键参数,例如网络ID、Genesis哈希等。 确保从官方和可信的来源获取配置文件,以防止潜在的安全风险。

2.3.5. 启动节点

现在,所有必要的配置已经完成,你可以启动 Cardano 节点,使其开始参与到 Cardano 网络中。

为了启动节点,你需要在命令行中执行以下命令。该命令包含了节点运行所需的所有关键参数:

cardano-node run \
  --topology $CARDANO_NODE_HOME/configuration/topology. \
  --database-path $CARDANO_NODE_HOME/db \
  --config $CARDANO_NODE_HOME/configuration/config. \
  --shelley-genesis $CARDANO_NODE_HOME/configuration/shelley_genesis.

参数说明:

  • run :指定 cardano-node 执行的动作为运行。
  • --topology :指定拓扑文件的路径。拓扑文件定义了节点将连接的其他节点(例如中继节点)的网络结构。使用 $CARDANO_NODE_HOME/configuration/topology. 确保指向正确的拓扑文件。
  • --database-path :指定节点存储区块链数据的数据库路径。在这里,数据库存储在 $CARDANO_NODE_HOME/db 目录下。
  • --config :指定节点的配置文件路径。配置文件包含了节点的各种配置参数,例如网络ID、协议参数等。 确保使用正确的配置文件路径 $CARDANO_NODE_HOME/configuration/config.
  • --shelley-genesis :指定 Shelley 创世文件的路径。创世文件定义了 Shelley 时代的初始状态,包含初始的账户余额和协议参数等。同样,确认使用正确的创世文件 $CARDANO_NODE_HOME/configuration/shelley_genesis.

请注意,上述命令假设你已经设置了 CARDANO_NODE_HOME 环境变量,并且所有配置文件都位于该变量指定的目录下。 建议使用绝对路径来避免潜在的错误。

一旦你执行了该命令,节点将开始尝试连接到 Cardano 网络并同步区块链。这个过程可能需要一段时间,具体取决于你的网络连接速度和当前区块链的长度。 你可以通过查看节点的日志文件来监控同步进度。

2.4. Cardano CLI

Cardano CLI (命令行界面) 是一款功能强大的工具,允许用户直接与Cardano区块链节点进行交互。它提供了一系列命令,使用户能够执行各种关键操作,例如生成加密货币地址、构建和签署交易、查询链上数据以及提交交易到Cardano网络。与图形用户界面 (GUI) 钱包不同,CLI 提供了一种更加灵活和控制性的方式来管理你的 Cardano 资产和参与区块链活动,尤其适合开发者和高级用户。

Cardano CLI 通常与 Cardano 节点一同编译和构建。这意味着,如果你已经成功完成了 Cardano 节点的配置和构建过程,那么 CLI 工具也应该可以立即使用。这种集成方式确保了 CLI 与特定版本的 Cardano 节点兼容,从而避免了潜在的兼容性问题,并简化了整个开发和维护流程。建议始终使用与你的节点版本匹配的 CLI 版本,以确保最佳性能和安全性。

为了验证 Cardano CLI 是否成功安装并正确配置,你可以打开你的终端或命令提示符,并执行以下命令: cardano-cli --version 。 如果 CLI 已经正确安装,该命令将显示 CLI 的版本信息,包括主版本号、次版本号和补丁版本号。 如果命令返回错误或无法找到 cardano-cli 命令,则表明安装可能存在问题,你需要检查你的环境变量配置或重新安装 Cardano CLI。 成功验证 CLI 的安装后,你就可以开始使用它来执行各种 Cardano 区块链操作了。

3. 设置钱包

在开始Cardano区块链应用开发之前,首要步骤是设置一个Cardano钱包。这个钱包将用于存储、发送和接收ADA,Cardano的原生加密货币,以及与智能合约进行交互。 你可以使用Cardano命令行界面(CLI)工具来创建和管理钱包。Cardano CLI提供了一套全面的命令,允许你生成密钥对、创建地址、查询余额以及构建和提交交易。请确保你已经正确安装并配置了Cardano CLI,并熟悉其基本命令。

使用Cardano CLI创建钱包通常涉及以下步骤:

  1. 生成密钥对: 使用 cardano-cli address key-gen 命令生成一个包含公钥和私钥的密钥对。私钥用于签署交易,必须安全保管,切勿泄露。
  2. 从公钥派生地址: 使用 cardano-cli address build 命令,从生成的公钥派生一个Cardano地址。该地址是你接收ADA的唯一标识符。你可以根据需要创建多个地址,例如,为不同的应用或交易目的使用不同的地址。
  3. 创建钱包文件: 可选地,你可以将密钥对和地址信息存储在一个钱包文件中,方便管理和备份。这通常涉及到将密钥对加密并存储在本地文件中。

除了Cardano CLI,你还可以使用图形用户界面(GUI)钱包,例如Daedalus或Yoroi。这些钱包提供了更友好的用户界面,方便初学者使用。然而,对于开发目的,Cardano CLI通常更灵活和强大,因为它允许你直接控制底层的区块链交互。

3.1. 创建密钥对

在 Cardano 区块链中,密钥对是交易和账户管理的基础。密钥对包含一个公钥(Verification Key,.vkey)和一个私钥(Signing Key,.skey)。公钥用于验证交易的签名,而私钥用于对交易进行签名,证明交易发起者的身份和授权。

使用 cardano-cli 工具,您可以轻松生成用于支付的密钥对。以下命令将创建一个公钥文件 payment.vkey 和一个私钥文件 payment.skey

payment.vkey 文件包含公钥,您可以安全地与他人共享此文件。 payment.skey 文件包含私钥,必须严格保密,切勿泄露给任何人。私钥的泄露可能导致您的资金被盗。


cardano-cli address key-gen \
      --key-verification-key-file payment.vkey \
      --key-signing-key-file payment.skey

命令解释:

  • cardano-cli address key-gen :调用 cardano-cli 工具的地址密钥生成功能。
  • --key-verification-key-file payment.vkey :指定公钥(Verification Key)保存的文件名为 payment.vkey
  • --key-signing-key-file payment.skey :指定私钥(Signing Key)保存的文件名为 payment.skey

在执行此命令后,请务必妥善保管生成的 payment.skey 文件。建议将其存储在安全的离线设备或硬件钱包中,并进行备份,以防止意外丢失。

3.2. 获取地址

在Cardano区块链中,生成有效的地址是交易的关键步骤。 cardano-cli 工具提供了灵活的方式来构建不同类型的地址。以下命令演示了如何使用支付验证密钥 ( payment.vkey ) 创建一个测试网地址。


cardano-cli address build \
    --payment-verification-key-file payment.vkey \
    --out-file payment.addr \
    --testnet-magic 1097911063

参数解释:

  • address build : 指定 cardano-cli 执行地址构建操作。
  • --payment-verification-key-file payment.vkey : 使用 payment.vkey 文件中包含的支付验证密钥来生成地址。该文件由密钥生成过程创建,是验证交易合法性的重要组成部分。 该验证密钥对应于你的支付私钥,用于验证交易的有效性。
  • --out-file payment.addr : 将生成的地址信息保存到名为 payment.addr 的文件中。该文件包含编码后的Cardano地址,可用于接收 ADA 或其他原生代币。
  • --testnet-magic 1097911063 : 指定网络标识符。 1097911063 是 Cardano 预览测试网 (preview testnet) 的 magic number。 使用正确的 magic number 非常重要,因为它决定了地址在哪个网络上有效。 如果要为主网创建地址,则应使用 --mainnet 参数代替。对于不同的测试网络,需要替换为相应的 magic number。 例如,preprod 测试网使用不同的 magic number。

主网地址生成:

若要生成主网地址,使用 --mainnet 参数:


cardano-cli address build \
    --payment-verification-key-file payment.vkey \
    --out-file payment.addr \
    --mainnet

重要事项:

  • 确保使用与密钥对 ( payment.vkey 和相应的私钥) 相匹配的网络参数。在错误的网路上使用地址可能导致资金丢失。
  • 生成的 payment.addr 文件包含你的 Cardano 地址。 安全地存储此文件,因为任何拥有此地址的人都可以查看与之关联的交易。
  • 除了上述方法,还可以构建企业地址、质押地址等。 这些地址类型在构建命令中涉及其他参数,请参考 cardano-cli address build --help 获取更多信息。

4. 测试环境

为了验证你的Cardano开发环境配置是否正确,建议进行实际操作测试。 这可以通过创建一个简化的交易,并尝试将其提交至Cardano测试网络来实现。在执行此操作前,你需要从Cardano测试网的水龙头获取测试用的ADA代币。这些测试代币没有实际价值,专门用于开发和测试目的。 获取测试代币后,你可以使用cardano-cli或其他SDK构建一个简单的交易,例如将少量测试代币发送到你控制的另一个地址。然后,使用你的私钥对该交易进行签名,并将其提交到测试网络。如果交易成功提交并被网络确认,则表明你的开发环境已正确配置,可以开始进行更复杂的开发工作。

5. 集成开发环境 (IDE)

虽然命令行工具提供了强大的底层控制能力,但使用集成开发环境 (IDE) 能显著提高开发效率,尤其是在复杂Cardano应用程序的开发过程中。 我们强烈推荐使用Visual Studio Code (VS Code),因为它具有轻量级、高度可定制的特点,并且拥有一个庞大的扩展生态系统,可以无缝支持Haskell开发。 VS Code的开源特性也使其成为社区驱动的,意味着你可以从全球开发者的贡献中受益。

为了获得最佳的Haskell开发体验,请安装Haskell Language Server (HLS) 扩展。 HLS是一个全面的工具,它集成了多种Haskell开发工具,能够提供实时代码补全、类型检查、错误诊断、代码格式化 (使用Ormolu或Stylish Haskell)、跳转到定义、查找引用等功能。 这些功能可以帮助你更快地编写高质量的代码,并减少潜在的错误。 还可以考虑安装诸如"Bracket Pair Colorizer"和"Rainbow Indent"之类的扩展来增强代码的可读性。

成功安装并配置好IDE后,你就可以开始编写Cardano应用程序了。 确保配置正确的Haskell编译器路径和HLS设置,以便IDE能够正确识别你的项目并提供相应的支持。 使用IDE的代码调试功能可以帮助你逐步执行代码并查找潜在的问题。

通过遵循以上步骤,你应该已经成功配置了用于Cardano开发的Haskell环境。 下一步是深入学习Cardano的智能合约语言Plutus,掌握其语法和特性,从而能够开始构建你自己的去中心化应用程序 (DApps) 和其他Cardano生态系统中的应用。 可以从Cardano官方文档和Plutus Pioneer Program等资源中获取更多学习材料。