Login
欢迎来到未来世界

您现在的位置是: 首页 > 计算机 > 区块链

区块链

区块链100讲:EOS环境搭建入门(私链节点-钱包-密钥-账号)

区块链 加入收藏
当前大家对于区块链100讲:EOS环境搭建入门(私链节点-钱包-密钥-账号)都是颇为感兴趣的,那么小编也是在网络上收集了一些相关信息以便大家阅读。本文作者:HiBlock区块链技术布道群-辉哥原文发布于简书原文链接:摘要

当前大家对于区块链100讲:EOS环境搭建入门(私链节点-钱包-密钥-账号)都是颇为感兴趣的,那么小编也是在网络上收集了一些相关信息以便大家阅读。

本文作者:HiBlock区块链技术布道群-辉哥原文发布于简书原文链接:https://www.jianshu.com/p/533f849489b11摘要【本文目标】通过本文实践,能在已编译的EOS V1.0.5版本环境上,完成私链节点启动,钱包创建,密钥导入和账号创建等内容。

【前置条件】你已完成了EOS编译,编译测试成功。

未完成的可参考如何在UBUNTU虚拟机上编译EOS完成环境搭建?(附代码)完成相关配置。

【技术收获】1)EOS的节点,钱包,密钥,账号的概念和理解2)EOS钱包/账号的建立和遇到的问题分析及解决方法【说明】EOS版本还没有稳定下来,即使完成了V1.0.2版本环境搭建的人,到V1.0.5时还是摔在了坑里。

辉哥通过踩坑分析给大家提供尽可能多的知识和解决思路,大家在V1.0.5以后的版本部署可参考文章和以错误关键字搜索官网的issue网址(https://github.com/EOSIO/eos/issues)获取更多知识。

2EOSIO总体框架EOSIO有多个程序模块组成,经常会用到的有以下三个模块:nodeos - EOSIO核心模块,用于启动eosio服务,在后台运行,启动时可以添加多种插件plugin。

cleos - 命令行界面钱包工具,见《EOS命令行界面钱包》(https://github.com/eoshackathon/eos_dapp_development_cn/blob/master/docs/eos_command_line_wallet.md),位于eos/build/programs/cleos/cleoskeosd - 管理钱包的各种组件,默认情况下,keosd将随cleos一起启动。

位于eos/build/programs/keosd下图是上面三个工具的关系:另外,还有智能合约的编译工具eosiocpp。

3EOS系统中钱包,密钥对,账号,智能合约的关系相对其他区块链公链,EOS系统的组合关系比较自由,也带来了理解上的困难。

辉哥结合自己的理解,以中国大地上人们最关系的房子为例,做比喻介绍。

1) 钱包是土豪房东土豪可以有很多的房子和各种开门的钥匙。

上海这个城市有很多个土豪房东,所以一个节点可以创建多个钱包。

cleos wallet create ${参数}2)钥匙用来打开房东门的。

钥匙分为私钥和公钥。

公钥是别人可以看到的,例如下面图片是土豪家的橙色钥匙包,是专门用来存放仁恒滨江的大平层房子钥匙的,私钥是钥匙包里面实际开门的钥匙。

你拿到钥匙包没有用的,你得拿到钥匙盒里面的私钥才可以打开土豪家房子大门。

土豪房东可以把很多的房子配成一样的锁,用一对公钥/私钥来开门,也可以不同的房子不同的钥匙。

cleos wallet import ${参数} 私钥3) 账户是房子房东可以给多个房子配一对钥匙(钥匙包和钥匙),也可以不同房子配不同钥匙。

另外,一个房子可以用2把钥匙打开,一把是owner钥匙对,一把是active钥匙对。

房子的owner钥匙地址表示为房东的公钥,表示主人产权归属,用它对应的私钥可以打开房子,这个钥匙包是房东连小姨子也不会给的:房子的active钥匙对表示为房客的公钥,表示该用户的私钥可以打开房子,房子出租后,房东就把这个钥匙包给租客了:cleos create account 节点 账户名 Owner的公钥 Active的公钥。

4搭建实操搭建实操的流程图如下。

4. 1 启动私链1) 启动keosdkeosd --http-server-address=127.0.0.1:8900命令行界面钱包程序为 keosd,位于 eos/build/programs/keosd 路径下,用于存储交易签名的私钥。

keosd在本地节点上运行,并将私钥保存在本地节点上。

默认情况下,keosd会在目录 ~/eosio-wallet 中生成一个基础的配置文件 config.ini。

该配置文件中的wallet-dir指定了钱包文件存放目录。

另外,在运行命令行钱包时,可通过配置命令行参数 --config-dir指定config.ini配置文件的目录。

该配置文件中保存用于接入http链接的服务器配置http-server-address参数,以及其他用于资源共享的配置参数。

默认情况下,keosd将钱包文件保存在 ~/eosio-wallet 目录下,钱包文件名为:.wallet。

例如,默认钱包文件名为 default.wallet。

当建立了其他钱包后,在该目录下会分别建立每个钱包文件,例如当建立了一个名称为"duncanwang"的钱包,会生成一个钱包文件duncanwang.wallet。

钱包文件可以通过命令行参数--data-dir存放在指定的目录中。

【预警】从V1.0.5开始,发现要先运行keosd后在运行nodeos才可以创建钱包。

成功输出结果如下:(复制代码点击“阅读原文”)2) 启动私链在新的命令行窗口输入以下命令。

cd ~/eos/build/programs/nodeos./nodeos -e -p eosio --plugin eosio::wallet_plugin --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin --replay-blockchain在启动nodeos时,需要添加参数eosio::wallet_plugin,否则的话,每次节点重启,之前创建的钱包,账号都不会加载进来。

--replay-blockchain表示清除数据库内链的状态,重新运行,它会导致重新启动时先读取之前的区块进行加载。

【注意】 节点关闭后,钱包将会被加锁。

重新启动nodeos后,需要使用unlock命令解锁钱包。

例如:duncanwang@duncanwang:~/eos$ cleos wallet unlock -n duncanwangpassword: Unlocked: duncanwang输入nodes -help可以看到所有参数的帮助说明。

4.2 创建钱包cleos wallet create -n duncanwang创建duncanwang钱包成功,输出结果如下:duncanwang@duncanwang:~/eos$ cleos wallet create -n duncanwangCreating wallet: duncanwangSave password to use in the future to unlock this wallet.Without password imported keys will not be retrievable."PW5JMZdES2Cds5LsPRUBRo2THEXpbFSM17Xmcd2XWG7XBd49wveTo"【结果确认】duncanwang@duncanwang:~$ cleos wallet listWallets:["duncanwang *"]duanwang钱包已存在了,*表示该账号已解锁。

【问题1】 创建钱包重名,但是cleos wallet list看不到duncanwang@duncanwang:~$ cleos wallet create -n duncanwangError 3120001: Wallet already existsTry to use different wallet name.【解决方法】这个主要是运行的命令中没有导入钱包--plugin eosio::wallet_plugin这个参数,导致已创建钱包未加载,但是目录下存在已创建的钱包文件。

./nodeos -e -p eosio --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin --replay-blockchain~/eosio-wallet 目录下删除文件duncanwang.wallet即可重新创建。

【问题2】重启节点后,cleos wallet list发现已创建的钱包等不存在。

duncanwang@duncanwang:~$ cleos wallet listWallets:[]【解决方法1】运行./nodeos命令时要带参数--plugin eosio::wallet_plugin【解决方法2】后来发现这种方法有时也是不可行,cleos wallet list没有看到钱包。

采用命令'cleos wallet open -n duncanwang'打开钱包后,就正常加载进来了。

当前大家对于区块链100讲:EOS环境搭建入门(私链节点-钱包-密钥-账号)都是颇为感兴趣的,那么小编也是在网络上收集了一些相关信息以便大家阅读。

图集详情底部广告位