OpenEuler RISC-V 上跑bitcoin(实战版)
不久前刚在OpenEuler 24.09 RISC-V上部署了 bitcoin,不过还没跑起来,这次我打算在这个环境下面运行一些应用服务,体验一下 OERV 的开发感觉。
编译出来的 bitcoin 主要有几个命令,bitcoin-cli、bitcoind、bitcoin-util、bitcoin-wallet、bitcoin-tx和test_bitcoin。
bitcoind 是比特币核心软件的守护进程程序,用于在计算机上运行比特币全节点。它是比特币网络的基础组件,负责下载、验证和存储整个比特币区块链,并与其他节点进行通信。
bitcoin-cli 是一个命令行工具,用于与运行中的 bitcoind 守护进程进行交互。通过它,用户可以方便地向 bitcoind 发送各种请求,执行各种操作,如查询区块链信息、管理钱包、发起交易等。
bitcoind-util 包含了一系列比特币相关的实用工具函数和命令,主要用于处理比特币的基础数据,如地址编码、密钥生成、哈希计算等。
bitcoin-wallet 主要用于管理比特币钱包,它提供了一系列与钱包操作相关的功能,帮助用户方便地存储、发送和接收比特币。
bitcoin-tx 是一个用于处理比特币交易的工具,主要用于创建、编辑、签名和广播比特币交易。
test_bitcoin 是比特币核心软件的测试工具,用于对 bitcoind 及相关组件进行单元测试和集成测试,确保代码的正确性和稳定性。
用法有很多,我主要挑了 bitcoind 和 bitcoin-cli 进行测试,看看运行的时候有没有什么 bug。
bitcoind,光执行这个命令,会输出一大堆服务器的信息

不过我们也可以选择挂到后台,bitcoind -daemon

这样就可以利用控制台继续做其它事情了。如果想停下来,可以用 bitcoin-cli stop对服务器进行终止。
bitcoin-cli 获取到的信息大部分都是以 json 的形式返回,以下是测试结果。
bitcoin-cli getnetworkinfo(获取区块链网络信息)
{
"version": 299900,
"subversion": "/Satoshi:29.99.0/",
"protocolversion": 70016,
"localservices": "0000000000000c09",
"localservicesnames": [
"NETWORK",
"WITNESS",
"NETWORK_LIMITED",
"P2P_V2"
],
"localrelay": true,
"timeoffset": 0,
"networkactive": true,
"connections": 8,
"connections_in": 0,
"connections_out": 8,
"networks": [
{
"name": "ipv4",
"limited": false,
"reachable": true,
"proxy": "",
"proxy_randomize_credentials": false
},
{
"name": "ipv6",
"limited": false,
"reachable": true,
"proxy": "",
"proxy_randomize_credentials": false
},
{
"name": "onion",
"limited": true,
"reachable": false,
"proxy": "",
"proxy_randomize_credentials": false
},
{
"name": "i2p",
"limited": true,
"reachable": false,
"proxy": "",
"proxy_randomize_credentials": false
},
{
"name": "cjdns",
"limited": true,
"reachable": false,
"proxy": "",
"proxy_randomize_credentials": false
}
],
"relayfee": 0.00001000,
"incrementalfee": 0.00001000,
"localaddresses": [
],
"warnings": [
"This is a pre-release test build - use at your own risk - do not use for mining or merchant applications"
]
}
bitcoin-cli getblockchaininfo(获取当前的区块链信息,每次输出可能不一样,因为区块链信息可能还没有同步完成到本地,另一方面,区块是不断生成的)
{
"chain": "main",
"blocks": 16848,
"headers": 890116,
"bestblockhash": "00000000e84734ddbfcae5a7a3438cbc69498fab0f3097c5f866f617d019ab60",
"bits": "1d00ffff",
"target": "00000000ffff0000000000000000000000000000000000000000000000000000",
"difficulty": 1,
"time": 1244664175,
"mediantime": 1244660177,
"verificationprogress": 1.44758331039791e-05,
"initialblockdownload": true,
"chainwork": "000000000000000000000000000000000000000000000000000041d141d141d1",
"size_on_disk": 4791214,
"pruned": false,
"warnings": [
"This is a pre-release test build - use at your own risk - do not use for mining or merchant applications"
]
}
bitcoin-cli getmininginfo(获取挖矿信息)
{
"blocks": 37920,
"bits": "1d00be71",
"difficulty": 1.344224970771029,
"target": "00000000be710000000000000000000000000000000000000000000000000000",
"networkhashps": 16012268.79171674,
"pooledtx": 0,
"chain": "main",
"next": {
"height": 37921,
"bits": "1d00be71",
"difficulty": 1.344224970771029,
"target": "00000000be710000000000000000000000000000000000000000000000000000"
},
"warnings": [
"This is a pre-release test build - use at your own risk - do not use for mining or merchant applications"
]
}
另一方面,如果输出一个错误的命令,比如 bitcoin-cli abc,会有错误码机制。
error code: -32601
error message:
Method not found
bitcoin-cli createwallet "my_wallet"(创建名字为"my_wallet"的钱包)
{
"name": "my_wallet"
}
bitcoin-cli -rpcwallet=my_wallet getnewaddress(会为刚刚创建的钱包创建一个地址)
综上来看,bitcoin 应用测试看起来一切顺利,尽管我只测试了最基本的命令行,但这也是探索过程中好的开始。
OpenEuler RISC-V 上跑bitcoin(实战版)的更多相关文章
- 【Todo】【读书笔记】大数据Spark企业级实战版 & Scala学习
下了这本<大数据Spark企业级实战版>, 另外还有一本<Spark大数据处理:技术.应用与性能优化(全)> 先看前一篇. 根据书里的前言里面,对于阅读顺序的建议.先看最后的S ...
- ubuntu上跑python连接pg,报错 ImportError: No module named psycopg2
ubuntu上跑python连接pg,报错 ImportError: No module named psycopg2 root@pgproxy1:~# python /home/zxw/PGWri ...
- 同“窗”的较量:部署在 Windows 上的 .NET Core 版博客站点发布上线
为了验证 docker swarm 在高并发下的性能问题,周一我们发布了使用 docker-compose 部署的 .net core 版博客站点(博文链接),但由于有1行代码请求后端 web api ...
- 利用Tengine在树莓派上跑深度学习网络
树莓派是国内比较流行的一款卡片式计算机,但是受限于其硬件配置,用树莓派玩深度学习似乎有些艰难.最近OPENAI为嵌入式设备推出了一款AI框架Tengine,其对于配置的要求相比传统框架降低了很多,我尝 ...
- 让“是男人就下到100层”在Android平台上跑起来
原工程:https://github.com/jeekun/DownFloors 移植后的代码:HelloCpp.zip 移植后的APK:HelloCpp.apk 说明:(cocos2d-x版本是“ ...
- 让python在hadoop上跑起来
duang~好久没有更新博客啦,原因很简单,实习啦-好吧,我过来这边上班表示觉得自己简直弱爆了.第一周,配置环境:第二周,将数据可视化,包括学习了excel2013的一些高大上的技能,例如数据透视表和 ...
- tomcat6~7~8用户设置及一个独立服务器上跑多个tomcat配置JVM设置优化亲测
tomcat6管理用户 在tomcat `安装根目录`/conf/tomcat-users.xml
- 在win7上跑基于任少卿作者代码修改的RPN+BF实验
1.前言 之前在win10上成功的跑起来faster-rcnn的实验,并且跑了一下CaltechPedestrian的数据集,但是效果一直不理想,折腾了好久也没弄清楚到底原因出在哪里,直到读了Is F ...
- 在 windows 上安装免安装版的mysql
在 windows 上安装免安装版的 1. 下载路径 https://downloads.mysql.com/archives/community/ 2. 解压 假设解压后的路径为:E:\Enviro ...
- 在free bsd上跑JMeter 的 plugin "PerfMon Server Agent"
在free bsd上跑JMeter 的 plugin "PerfMon Server Agent" 目的: 在free bsd上跑JMeter 的 plugin "Per ...
随机推荐
- CDS标准视图:分配到任务清单的维护包数据 I_PckgTaskListOpalLocData
视图名称:分配到任务清单的维护包数据 I_PckgTaskListOpalLocData 视图类型:基础 视图代码: 点击查看代码 @AbapCatalog.sqlViewName: 'IPCKTLO ...
- Elasticsearch(5) --- 基本命令(集群相关命令、索引CRUD命令、文档CRUD命令)
这篇博客的命令分为ES集群相关命令,索引CRUD命令,文档CRUD命令.这里不包括Query查询命令,它单独写一篇博客. 一.ES集群相关命令 ES集群相关命令主要是_cat命令,所以这里详细讲解下该 ...
- .net工作流elsa-书签
啥是书签 流程引擎的核心关注点是安排流程,如:第1步做什么 → 第2步做什么 → 第n步做什么...,至于各步骤具体是怎么做的,是由你来决定的,这不是流程引擎关注的重点. 流程安排可能会涉及到分叉.并 ...
- $router.options.routes取不到全部路由
最近在看老项目的路由逻辑 项目使用constantRoutes和asyncRoutes分别代表基本路由和动态路由.createRouter时,传入的routes参数只有基本路由 在路由导航守卫中,判断 ...
- 利用mybatis拦截器记录sql,辅助我们建立索引(二)
背景 上一篇中讲述了mybatis的mapper初始化过程和执行过程,这篇再讲讲具体的拦截器的使用,以实现记录sql到持久化存储,通过分析这些sql,我们就能更方便地建立索引. 利用mybatis拦截 ...
- Fluttter基础组件Image的使用
1.图片 Image 图片组件( Image)是显示图像的组件, Image 组件有多种构造函数 : new Image:从 ImageProvider 获取图像 . new Image.asset: ...
- Brainfly: 用 C# 类型系统构建 Brainfuck 编译器
Brainfuck 简介 Brainfuck 是由 Urban Müller 在 1993 年创造的一门非常精简的图灵完备的编程语言. 正所谓大道至简,这门编程语言简单到语法只有 8 个字符,每一个字 ...
- 手把手教你部署 DeepSeek 本地模型
本文目标:部署 DeepSeek 本地模型,并通过 Ollama 提供 API 支持,Chatbox 提供 UI 界面. 原则:不搞那些高深的玩法,让小白也能理解并真正的上手实践. 1.下载Ollam ...
- I2C死锁产生机理与解决方法
在I2C实际使用过程中,最容易出现的一个问题就是死锁 ,其主要表现为:SCL持续为高,SDA持续为低. 产生机理 I2C死锁产生的机理是:当Slave输出应答信号或者输出数据0时,Master发生异常 ...
- Xshell不可以删除,退格^H
文件→属性→终端→键盘,把delete和backspace序列改为 ASCII 127即可.