在说智能合约开发前先说这个,因为所有对智能合约的操作都是建立在账户和权限管理的基础上的。
先说下几个概念:
钱包
钱包是存储密钥的客户端。密钥可以与多个账户权限相关联。钱包本身受密码保护。
cleos 可以使用wallet相关命令。
账户
帐户是存储在区块链中的可读名称,需要账户才能将交易转移或以其他方式推送到区块链。而对它的各种操作取决于具体的权限配置。
同样的,cleos可以使用account相关命令。
权限
原生权限:
owner 可以对账户进行任何操作,包括变更账户所有权。只有少数交易需要用到这个权限。
active 用于转移资金,投票或别的高等级更改。
自定义权限:
开发过程中有原生权限就能满足需求了,不深入展开。
操作智能合约的流程:
详细操作:
1.启动单节点测试网络
nodeos -e -p eosio --plugin eosio::wallet_api_plugin --plugin eosio::chain_api_plugin --plugin eosio::account_history_api_plugin
2.创建钱包
cleos wallet create
创建默认钱包default ,加-n参数 可以指定钱包名称 密码注意保存
3.打开钱包
cleos wallet open
刚创建的钱包是默认已打开,下次启动nodeos时需要打开指定钱包 加-n参数 可以指定钱包名称
可以使用 cleos wallet list 查看钱包列表。
4.解锁钱包
cleos wallet unlock --password xxxxx
刚创建的钱包是默认已解锁,下次启动nodeos时需要解锁。
生产环境不建议添加--password xxxxx,等提示输入时再手动输入。因为密码会留在命令行的历史记录增加隐患
5.创建公钥和私钥
cleos create key(刚创建的钱包默认生成一个公钥和私钥,你也可以直接使用)
6.导入公钥和私钥到钱包
cleos wallet import 你的私钥
可以使用 cleos wallet keys 查看已解锁的钱包中的公钥和私钥列表。
7.创建指定账户,并用公钥进行权限关联
cleos create account 创建者账户名 生成的新账户名 Owner权限公钥 Active权限公钥 (系统内置了一个特殊账户eosio,当没有一个账户时,可以用它当作创建者账户名)
可以使用 cleos get accounts 你指定的公钥 查看指定公钥对应的账户列表。
以上便是账户和权限管理的部分了,相关的命令你可以封装成shell脚本,方便以后的开发。用账户来操作智能合约将在下一章展开。