欢迎访问比特币_区块链-币链视界!

币链视界

打造团队区块链学习平台联盟链开发十九

发布时间:2021-02-23区块链开发评论
区块链技术进阶文章由微芒分布式内容计划支持,欢迎大家积极参与!我们先来回顾一下过去的文章:首先我们先学习了如何搭建节点:FISCOBCOS开发环境节点搭建全攻略然后我们学习了

区块链技术进阶文章由微芒分布式内容计划支持,欢迎大家积极参与!我们先来回顾一下过去的文章:

首先我们先学习了如何搭建节点:

FISCOBCOS开发环境节点搭建全攻略

然后我们学习了控制台的安装与使用:?

控制台的安装与使用

再然后我们实现了控制台的Web化:

控制台的Web化1.0但是仅仅将控制台Web化还是不够的,因为我们还需要进行导入导出账户、上传下载合约等多种操作。那么,我们有没有办法让用户不用登陆服务器,只在浏览器中就能实现这些操作,然后又保证用户的操作和服务器是安全隔离的呢?我们可以通过这样的方式实现:基于Docker技术在我们的服务器上搭建一个容器(Container),这个容器中是一个轻量的Ubuntu操作系统,然后这个容器挂载了控制台放置合约的Contracts文件夹与放置账户的Accounts文件夹。最后我们将我们的容器Web化,这样我们的区块链云学习环境1.0就算真正搭建好了,可以和团队的小伙伴一起愉快地玩耍了~

1准备工作1.1安装Docker安装screen?:aptinstallscreen进入screen:screen?-S?install_docker获取get-docker脚本:curl?-fsSL?test.docker.com?-o?get-docker.sh安装docker:sudo?sh?get-docker.sh?--mirror?Aliyundocker换源:sudo?vim?/etc/docker/daemon.json写入:{"registry-mirrors":["","","",""],"insecure-registries":["registry.docker-cn.com","docker.mirrors.ustc.edu.cn"],"debug":true,"experimental":true}重启docker服务:sudo?service?docker?restart1.2获取需要挂载到容器中的文件夹的绝对路径到console的目录下:$pwd/Users/liaohua/fisco/consolecontracts文件夹绝对路径:[console绝对路径]/contractsaccounts文件夹绝对路径:[console绝对路径]/account1.3创建sshkeys与ssh_key文件夹我们之后会通过ssh的方式在宿主机和容器间建立连接。创建sshkeys:$ssh-keygen-trsa-b4096-C"你的邮箱地址"在~/.ssh文件夹下会生成id_rsa.pub文件,这个就是我们的公钥。创建ssh_keys文件夹:mkdirssh_keys复制公钥到ssh_keys文件夹:cp~/.ssh/id_rsa.pub~/ssh_keys/authorized_keys获取ssh_keys文件夹的绝对路径。

2拉取镜像通过dockerpull命令拉取镜像:docker?pull?registry.cn-hangzhou.aliyuncs.com/leeduckgo/blockchain-study:2.13生成容器3.1生成容器

其中,「ssh_keys文件夹绝对路径」在1.3中得到,「accounts文件夹绝对路径」与「contracts文件夹绝对路径」在1.2中得到。dockerrun-d-p26122:22-p8003:80-v=[ssh_keys文件夹绝对路径]:/root/.ssh-v=[accounts文件夹绝对路径]:/root/study_area/accounts-v=[contracts文件夹绝对路径]:/root/study_area/contracts--nameblockchain-studyregistry.cn-hangzhou.aliyuncs.com/leeduckgo/blockchain-study:2.1/usr/sbin/sshd-D命令解析:我们可以通过dockerrun--help命令查看dockerrun命令都有哪些参数。-d:用后台的方式运行容器并打印容器id。-p:端口映射,:前面是宿主机的端口,后面是容器的端口,如-p26122:22指的是把容器的22端口(ssh端口)映射到宿主机的26122端口上。-v:文件夹挂载,:前面是宿主机的文件夹路径,后面是容器的文件夹路径,如-v=/home/ubuntu/ssh_key:/root/.ssh就是把宿主机的/home/ubuntu/ssh_key路径挂载到容器的/root/.ssh路径下。

-name:容器名称。registry.cn-hangzhou.aliyuncs.com/leeduckgo/blockchain-study:2.1:镜像名称。/usr/sbin/sshd-D:启动镜像时候执行的命令,这里是开启ssh服务。执行成功后会返回容器编号:

3.2通过ssh连接通过ssh命令连接:ssh?-p?26122?root@localhost3.3查看文件夹是否挂载进入contract目录:cd?~/study_area/contracts如果这个文件夹下的内容和console文件夹下的contracts文件夹内容一样,就说明挂载成功了。accounts文件夹同理。?4容器Web化和控制台的Web化1.0同理,只是这次我们执行的是ssh命令:ttyd?-p?8081?ssh?-p?26122?root@localhost?-t?"cd?/root/study_area;bash?--login"然后我们再按照控制台的Web化1.0中提到的方式加上鉴权即可。5与控制台配合进行区块链学习5.1下载Github上的合约仓库用浏览器访问http://ip:8081进入合约目录cd?~/study_area/contracts/solidity??3.下载合约仓库git?clone??4.用浏览器访问http://ip:8080部署刚才下载好的合约:deployByCNS?contracts/solidity/Contract-Study/HelloWorld.sol?HelloWorld:1.05.2查看用户私钥??1.用浏览器访问http://ip:8081??2.进入账户目录:cd?~/study_area/accounts/ecdsa??3.查看账户对应私钥:cat?0xff1b462499a7759adeb5ff0d37b2f6815ba2d27a.pem??4.用浏览器访问http://ip:8081??5.加载刚才录入的账户loadAccount?account/ecdsa/0x2784d6ca6fdb8a96aa924b06978ea5af2d810240.pem5.3导入已知私钥与公钥的用户用vim在ecdsa目录下新建私钥文件:vim?[地址].pemi命令输入:-----BEGINPRIVATEKEY-----MEcCAQAwEAYHKoZIzj0CAQYFK4EEAAoEMDAuAgEBBCAjKpm08oDC+4UzihRd7oJ5BNw1v3s4Po1O3ZrbDy1EDKAHBgUrgQQACg==-----ENDPRIVATEKEY-----wq保存退出。6Docker常用命令下载镜像:docker?pull?[镜像名称]创建容器:docker?run?[镜像名称]查看当前运行的容器:docker?ps查看所有容器:docker?ps?-a查看所有镜像:docker?image?ls删除镜像:docker?image?rm?[镜像id]删除容器:docker?rm?[容器id]

↓猛击「阅读原文」查看本系列在learnblockchain上的专栏!后台输入关键字有自动回复:输入「比特币」,推送比特币技术入门教程;输入「联盟链」,推送联盟链开发系列教程;输入「项目」,看看大狗最近在玩什么。

广告位

热心评论

评论列表