树莓派 编译live555_树莓派raspberry4B入坑指南 part-6 docker编译古灵币钱包
在上一节我们已经部署好了grin服务,今天讲讲如何编译grin-wallet。
grin区块链包含自底向上分三个部分,层层依赖密不可分:
grin:grin区块链server,提供chaindata数据同步、P2P节点发现、为上层提供调用
grin-wallet:grin钱包、密钥、账号的管理等,需要连接底层grin才能操作
grin-miner:貌似是从2.0版本以后,挖矿功能从grin代码库中单独分离出来了,挖矿功能需要依赖grin-wallet
题外话
Grin委员会兼团队核心成员Gary在论坛中宣布分叉Grin代码库,成立新项目Gotts的消息(https://github.com/gottstech/gotts)。
Gotts是一个无需质押的稳定币项目,同样使用MimbleWimble协议,Gotts的特性还未定义,但以下特性将是首选:
- 去中心化无需抵押的稳定币,Gotts作为链上资产,具有完美的稳定性
- 在不同稳定币资产之间进行及时的转换交易
- 遵循MimbleWimble协议,但交易显示具体数额
- 支持交互和非交互交易
- 地址和交易证明
- 具有Grin 10倍的交易吞吐量
- PoW机制
- 随着时间的推移固定区块奖励
目前,Gotts还是一个待开发的新生项目,Gary称在未来很长一段时间内都将投入到Gotts的开发之中,他决定向Grin委员会请辞,但将作为兼职开发人员,继续为Grin做出贡献。
编译目的
- grin-wallet源代码库没有提供docker编译方法,我需要参考grin的Dockfile改造,后期我将提交给官方。
- 编译出来的grin-wallet的docker镜像可以在树莓派的arm体系结构使用,方便小白们免去编译运行之苦(已上传:Docker Hub)
软件版本
docker-ce 19.03
docker使用到的镜像:debian:9.4(strech) 和 rust:1.35(rust镜像也是debian系统)
grin-wallet源码地址:https://github.com/mimblewimble/grin-wallet
编译过程
有了上次的编译经验,这次就比较快了:
# 下载grin-wallet源码,github源码难以下载,我已经同步到我的gitee里面,详见 https://gitee.com/whgreate/grin-wallet.git
$ git clone https://github.com/mimblewimble/grin-wallet$ cd grin-wallet/# 切换到2.1.0分支, 与grin版本保持一致
$ git checkout v2.1.0# 与上一节相同,保存sources.list文件放到当前目录备用
$ cp YOUR_PATH/sources.list .# 存放Dockfile文件
$ mkdir etc/# Dockfile源代码中没有的,为了方便,我做了个代码片段,大家下载下来
$ wget https://gitee.com/whgreate/codes/2yot6cqj8ianwulf053kd77/raw?blob_name=gistfile1.txt Dockerfile
$ mv Dockerfile etc/# 制作镜像,漫长的下载apt-get update和cargo build过程,请耐心等待
$ sudo docker build -t grin-wallet -f etc/Dockerfile .# 一切顺利,会产生grin-wallet:latest镜像
$ sudo docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
grin-wallet latest 8092cfa2869d 6 days ago 138MB
docker网络选项
为了运行grin-wallet,需要保证grin服务已经启动。还记得上节课我们编译好的grin镜像么(如果编译不顺畅,可以直接使用我的镜像Docker Hub)。这里需要注意一点的是,grin暴露的端口需要供grin-wallet使用(端口3413,3414,3415),而grin和grin-wallet是两个镜像服务,默认的网络空间隔离的。为了达到此目的,我们在启动两个镜像时候,让它们的网络空间共享本地网络,这样grin可以暴露端口映射到本地,而grin-wallet容器中的网络端口也像使用本地一样。
# 如果grin服务没有启动的话,启动它,注意此处启动有别于上一节:--network host是共享主机本地网络
$ sudo docker run -it --rm --network host -d -v $HOME/.grin:/root/.grin grin# 启动grin-wallet,注意--network host
# 我的镜像没有添加entrypoint自动启动命令,因此需要进入容器来调用
$ sudo docker run --rm --network host -v $HOME/.grin:/root/.grin -i -t grin-wallet /bin/bash# 在容器中执行grin-wallet命令
root@raspberrypi:~/.grin# grin-wallet help# 更多grin-wallet操作,参考官网 https://github.com/mimblewimble/docs/wiki/Wallet-User-Guide#init
# 主要是初始化,创建用户信息等
总结
docker镜像已经push,请君享用: Docker Hub
$ sudo docker push whgreate/grin-wallet:2.1.0
The push refers to repository [docker.io/whgreate/grin-wallet]
bbc3db18e0a0: Pushed
80c06f68a279: Pushed
c1d6f7475073: Pushed
78bf8b412517: Pushed
b43cc55c6313: Mounted from whgreate/grin
2.1.0: digest: sha256:153058a2c12474b2bb98824b3378a4e56752043f0e0b792c32fce1f329418811 size: 1369
树莓派 编译live555_树莓派raspberry4B入坑指南 part-6 docker编译古灵币钱包相关推荐
- 树莓派 docker homeassistant_树莓派raspberry4B入坑指南 part-4 安装docker-ce 19.03
前言 安装教程参考的官网debian章节,有针对raspbian的讲解. 在文中有这么一句话: Raspbian users cannot use this method! For Raspbian, ...
- 树莓派使用PCA9685扩展(二)之驱动无刷电机(调)入坑指南
摘要 在上一篇<树莓派使用PCA9685扩展PWM驱动舵机入坑指南>中简单介绍了树莓派使用PCA9685驱动sg90的180°舵机的应用.本身因为想做无人机,所以就研究了下如何驱动无刷电机 ...
- python这个软件学会能做什么工作-学会Python真的有高收入?盯,请查收这份入坑指南...
学会Python真的有高收入?盯,请查收这份入坑指南 2018-10-10 20:51:00 567点赞 6312收藏 186评论 小编注:想获得更多专属福利吗?金币加成.尊享众测.专属勋章.达人福利 ...
- api 微信内置浏览器js_多端开发框架uni-app入坑指南,一套代码适用微信、头条等小程序...
前言 hello 小伙伴们,现在我已经正式入坑 uni-app 了.uni-app 已经发布好几个月了,期间也是踩坑无数,但是官方秉承着不抛弃不放弃的精神,积极解决开发者的各种简单的.复杂的问题,在此 ...
- Rust 入坑指南:鳞次栉比 | CSDN 博文精选
作者 | Jackyzhe 责编 | 屠敏 出品 | CSDN(ID:CSDNnews) 很久没有挖Rust的坑啦,今天来挖一些排列整齐的坑.没错,就是要介绍一些集合类型的数据类型."鳞次栉 ...
- uniapp调用c语言方法,uni-app 入坑指南-web开发
编辑推荐: 本文重点介绍了 uni-app 入坑指南,方便大家更好的了解 uni-app 本篇只讲述 uni-app,不与其他类似框架进行对比 本文来自于博客园,由火龙果软件Alice编辑推荐. 什么 ...
- 信息安全之路入坑指南
作者:腾讯安全平台部研发安全团队 riusksk 疫情下的高考已结束,又快到填志愿的时候了,又有不少知青要加入信息安全这个圈子.为了响应组织号召,撰写此文作为信安行业的入坑指南,希望能对刚入圈的同学有 ...
- 开发工具篇第九讲:菜鸟入坑指南
摘要:本文是开发工具篇第九讲:菜鸟入坑指南.针对新人上手慢的问题,写了这篇入坑指南,方便自己回顾,总结.本文分为四个部分,分别为jenkins使用技巧:常用软件操作命令:开发手册:调试手册.主要材料来 ...
- Rust入坑指南:朝生暮死
今天想和大家一起把我们之前挖的坑再刨深一些.在Java中,一个对象能存活多久全靠JVM来决定,程序员并不需要去关心对象的生命周期,但是在Rust中就大不相同,一个对象从生到死我们都需要掌握的很清楚. ...
最新文章
- php 判断来源 微信客户端_PHP判断手机端、PC端 、微信代码实例
- C# 获取FormData数据
- oracle学习笔记一:用户管理(2)创建删除用户
- 边做边学小型封装--利用主流框架进行Dao层通用化,Spring3.0+Hibernate3.3.2通用Dao层整合(四)...
- 使用vue写扫雷游戏
- Android 多模块项目入门
- java反编译工具_移动app安全测试 - 客户端 - 反编译保护
- 魅族6支持html吗,魅族手机浏览器兼容性调优最佳实践_html/css_WEB-ITnose
- 读zac老哥《网络营销实战密码》一章有感
- OpenCV Show Image cvShowImage() 使用方法
- Haxdoors of the Kaspersky Antivirus 6/7
- SpringMvc date数据传递处理
- Windows 相关镜像及补丁下载地址
- k3梅林刷官改变砖_K3 op强刷回官改变砖,TTL救砖也不行,请大神分析下是不是要换内存了...
- C语言程序设计第五版谭浩强课后答案 第三章习题答案
- [每天一个知识点]25-职业生涯-核桃皮是当水果吃好还是当蔬菜吃好?
- tomcat jquery mysql_Docker 搭建 Tomcat + Mysql
- 上面两点下面一个三角形_解三角形的新视野——定角对定边~
- C语言函数递归调用实验报告,C语言函数的递归和调用实例分析
- cesium的鼠标事件