如何运行一个比特币节点

 现在区块链技术越来越火,作为区块链技术鼻祖的比特币无疑是学习区块链技术最好的实例,如果没有运行过一个比特币节点,实在难以体会到比特币的神奇和精妙。

比特币网络每天承载着几十万笔交易,在区块链的不断延长中,交易被万世不移地记录了下来。而完成这一伟大过程的居然只有不到8000个节点,他们分布在全球各地,由部分比特币使用者、矿工、交易平台以及志愿者们运行和维护。

 

为什么我需要运行一个自己的节点?

  • 大多数人只是在交易平台购买比特币,在最终把比特币提取到自己的钱包之前,这些比特币仅仅是交易平台数据库中的一个数值,交易平台完全有可能凭空在数据库中增加数量。当年门头沟(Mt Gox)交易平台被黑客攻击丢失比特币后,就是用这种无中生有的方式欺骗用户,直到用户挤兑,交易平台没有足够的比特币来兑付,最终跑路。长期持有比特币时,出于安全考虑,应该将比特币提取到自己的钱包中,这就需要在本地运行一个自己的比特币节点来确认资金是否到账。
  • 比特币网络是一个P2P的结构,只有拥有足够多的节点,才能更好的抵抗各种干扰和攻击,如果没有足够多的节点,比特币安全性将出现严重隐患。
  • 区块链中隐藏了很多有意思的信息,挖掘这些隐藏的信息是非常有趣的,运行一个节点将能够获得全部区块链的数据。

安装(以Ubuntu14.04为例):

比特币开发组已经提供了预编译好的二进制文件,开箱即用,很方便是不是。

sudo apt-get update sudo apt-get install software-properties-common sudo add-apt-repository ppa:bitcoin/bitcoin sudo apt-get update sudo apt-get install

安装完成后,使用如下命令启动节点:

bitcoind -daemon -txindex

如果一切顺利,你将看到如下输出:

Bitcoin server starting

节点启动后,将开始自动联网同步区块链信息,现在比特币区块链已经有140G左右,这需要比较长的时间,去睡个觉吧。

使用:

  • 查看本地节点状态
bitcoin-cli getinfo   {   "version": 140200,   "protocolversion": 70015,   "walletversion": 130000,   "balance": 0.00000000,   "blocks": 1744,    #已经同步了1744个区块,网络上现在总计已经有了近50w个区块   "timeoffset": 2,   "connections": 8,   "proxy": "",   "difficulty": 1,   "testnet": false,   "keypoololdest": 1500532351,   "keypoolsize": 100,   "paytxfee": 0.00000000,   "relayfee": 0.00001000,   "errors": "" }
  • 查看指定高度区块的Hash值
bitcoin-cli getblockhash 0  000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
  • 查看区块内容
bitcoin-cli getblock 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f  {   "hash": "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f",   "confirmations": 41224,   "strippedsize": 285,   "size": 285,   "weight": 1140,   "height": 0,   "version": 1,   "versionHex": "00000001",   "merkleroot": "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b",   "tx": [     "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b"   ],   "time": 1231006505,   "mediantime": 1231006505,   "nonce": 2083236893,   "bits": "1d00ffff",   "difficulty": 1,   "chainwork": "0000000000000000000000000000000000000000000000000000000100010001",   "nextblockhash": "00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048" } 

PS:

还记得中本聪在创世区块中留下的那句话吗?

The Times 03/Jan/2009 Chancellor on brink of second bailout for banks

这句话就在第一个区块文件的第一个区块中,默认位置在~/.bitcoin/blocks/blk00000.dat

如何运行一个比特币节点

扫一扫手机访问

如何运行一个比特币节点

发表评论