cosmos主网即将上线,对文档做了大量更新。特地翻译了一下,方便小伙伴们阅览, 之后会持续更新
第四章客户端:
服务提供商
我们将“服务提供商”定义为给终端用户提供服务的实体,这些实体包括与基于Cosmos-SDK的区块链(包括Cosmos Hub)的某种形式的交互。更具体地说,本文档将聚焦与token的交互。
本章节不涉及旨在提供轻客户端功能的钱包构建。预计服务提供商将作为终端用户的区块链的可信节点。
架构的高级描述
主要有三点需要考虑到:
- 全节点:与区块链交互。
- REST服务器:充当HTTP调用的中继者。
- REST API:定义REST服务器的可用入口。
运行一个全节点
安装和配置
我们描述运行Cosmos Hub和全节点交互的步骤。对于其他基于SDK的区块链,过程应该是类似的。
首先,你需要安装软件。
然后,你可以开始运行全节点。
命令行界面
接下来,你将找到一些有用的CLI命令来与全节点交互。
创建密钥对
生成一个新密钥(默认使用secp256k1椭圆曲线算法):
gaiacli keys add <your_key_name>
系统将要求你为此密钥对创建密码(至少8个字符)。该命令返回4个信息:
- ['NAME']:密钥的名称
- ['ADDRESS']:你的地址。用于接收资金。
- ['PUBKEY']:你的公钥。验证人要用到。
- ['Seed phrase']:12个单词的短语。将此种子短语保存在安全的地方。它用于在你忘记密码时恢复你的私钥。
你可以输入以下内容查看所有可用密钥:
gaiacli keys list
查看你的余额
你的地址收到token后,你可以输入以下内容查看帐户的余额:
gaiacli account <YOUR_ADDRESS>
注意:当你查询帐户余额为零的账户时,你将收到以下错误信息:在状态内找不到地址为<YOUR_ADDRESS>的帐户。这是预料之中的!我们正在努力改进我们的错误消息。
通过CLI发送代币
下面是通过CLI发送代币的命令:
gaiacli send --amount=10faucetToken --chain-id=<name_of_testnet_chain> --from=<key_name> --to=<destination_address>
标识:
-
--amount
: 此标识接受的格式<value|coinName>
。 -
--chain-id
: 此标识允许你指定区块链的id。不同的测试网络和主网有着不同的id值。 -
--from
: 发送方账户的名称。 -
--to
: 接收方的地址。
帮助
如果你需要做其他事情,你最好运行:
gaiacli
它将显示所有可用命令。对于每个命令,你可以使用--help标识来获取更多信息。
启动REST服务器
REST服务器作为前端节点和全节点之间的中介。你不需要在全节点所在的计算机上运行REST服务器。
启动REST服务器:
gaiacli advanced rest-server --node=<full_node_address:full_node_port>
标识:
-
--trust-node
: 布尔值。如果为true,则禁用轻客户端验证。如果为false,则启用。对于服务提供商,应将其设置为true。默认情况下,设置为true。 -
--node
: 你可以在此设置全节点的地址和端口。格式为<full_node_address:full_node_port>。如果全节点在同一台机器上,则地址应为tcp://localhost:26657
。 -
--laddr
: 此标识允许你指定REST服务器的地址和端口(默认为1317
)。你通常只使用此标志来指定端口,在这种情况下只需输入“localhost”作为地址。格式为<rest_server_address:port>。
监听传入的交易
监听传入的交易的推荐方法是通过LCD的以下入口定期查询区块链:
/bank/balance/{account}
REST API
REST API记录了可用于与整个节点交互的所有可用入口。在这里查看。
API针对每种类别的入口划分为ICS标准。例如,ICS20描述了与token交互的API。
为了给开发者提供更大的灵活性,我们支持生成未签名交易,使用不同API入口对其进行签名和广播。这允许服务提供商使用他们自己的签名机制。
为了生成未签署交易(转移代币的示例),你需要在base_req
中使用generate_only
。