OpenEuler RISC-V 上跑bitcoin(实战版)

news/2025/4/1 21:56:55/文章来源:https://www.cnblogs.com/ChebyshevTST/p/18801382

  不久前刚在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 应用测试看起来一切顺利,尽管我只测试了最基本的命令行,但这也是探索过程中好的开始。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/908415.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

javawebDay3-Maven框架

1.添加依赖 eg<dependencies><dependency><groupId></groupId><artifactId></artifactId></dependency></dependencies>从外部导入jar包等无需手动添加依赖 2.集成度高,eclipse和intellIDEA都能使用,在不同的操作系统也可以使…

Five Hundred Miles

一百英里 是自由,是初出茅庐的憧憬。 二百英里 是快乐,是逃离故里的喜悦。 三百英里 是忧伤,是萦绕心间的挂念。 四百英里 是思恋,是莺歌燕舞的家乡。 五百英里 是乡愁,是一去不返的凄凉。

day8华为机试题库继续

HJ3思路1:冒泡排序思路2:哈希表HJ4public String substring(int beginIndex) public String substring(int beginIndex, int endIndex)

Vue3管理系统开发个人信息,修改密码页面

把默认路由先重定向到/login,用户每次启动项目重新登录{path:/,redirect:/login},个人中心页面 子组件发送请求更新父组件内容const emit =defineEmits([updateUser])//更新缓存数据localStorage.setItem(pro1-user,JSON.stringify(data.form))emit(updateUser) 父级const upd…

php代码审计实战-开源项目Ascoos Framework 24 - Free Edition漏洞检测

一、下载 Ascoos Framework 24 - Free Edition 链接地址: https://sourceforge.net/projects/ascoos-fw/二、php静态分析代码审计 1.php静态分析代码审计工具使用我们之前介绍的静态分析php代码安全扫描工具系统分析 分析环境、过程、结果 分析环境:ubuntu 22.04.1分析过程:…

20242931 2024-2025-2 《网络攻防实践》第五周作业

20242931 2024-2025-2 《网络攻防实践》第五周作业 1. 实验内容 1.1 实验要求 (1) 防火墙配置:配置Linux操作系统平台上的iptables,要求过滤ICMP数据包,使得主机不接收Ping包;只允许特定IP地址(如局域网中的Linux攻击机192.168.200.13)访问主机的某一网络服务(如FTP、HTTP、…

【CTF笔记】HackINI 2021-sqli-0x1-bugku-SQL注入题wp

这个题的主题是sql注入,但是有一定安全措施阻挠,关键词:过滤、hash校验 首先进入页面,看到有登录框,输入一个admin测试密码,提示密码错误,输入其他账号root登,都是没有此用户,判断目标就是要get到admin的登录 查看到有提示,访问pls_help可以查看源代码 这个代码有几…

Pychaim集成本地部署的ollama+qwen-coder32b

服务器配置为:2个11264MiB NvidiaGPU + 16核 3.8GHz CPU + 72G 内存;部署Ollama平台,使用Qwen-coder2.5:32B模型。 1. 下载、安装并运行ollama; ollama的安装网上介绍的比较多,此处不再多讲,可以参考 Ollama全面指南:安装、使用与高级定制 若在服务器上部署ollama,确保…

[Vue] Vue 模板编译原理解析 part3

生成 JavaScript AST 我们要对整个模板的 AST 进行转换,转换为 JS AST。 我们目前的代码已经有了遍历模板 AST,并且针对不同的节点,做不同操作的能力。 我们首先需要知道 JS AST 长什么样子: function render(){return null; }上面的代码,所对应的 JS AST 如下图所示:这里…

[Vue] Vue模板编译原理解析 part3

生成 JavaScript AST 我们要对整个模板的 AST 进行转换,转换为 JS AST。 我们目前的代码已经有了遍历模板 AST,并且针对不同的节点,做不同操作的能力。 我们首先需要知道 JS AST 长什么样子: function render(){return null; }上面的代码,所对应的 JS AST 如下图所示:这里…

关于window版本nacos版本安装过程

环境 window10 16G 1TB下载地址window版本zip包 https://github.com/alibaba/nacos/releases/download/2.5.1/nacos-server-2.5.1.zip Linux版tar包 https://github.com/alibaba/nacos/releases/download/2.5.1/nacos-server-2.5.1.tar.gz安装前提安装jdk 1.8及以上,我安装了…