Я запускаю биткойн-сервер в Ubuntu 16.04. Также используя метод подключения к RPC bitcoind с помощью bitcoin-ruby:
require 'bitcoin'
require 'net/http'
require 'json'
RPCUSER = "**"
RPCPASSWORD = "**"
HOST = "localhost"
PORT= 8332
def bitcoinRPC(method,param)
http = Net::HTTP.new(HOST,PORT)
request = Net::HTTP::Post.new('/')
request.basic_auth(RPCUSER,RPCPASSWORD)
request.content_type = 'application/json'
request.body = {method:method,params:param,id:'jsonrpc'}.to_json
JSON.parse(http.request(request).body)["result"]
конец
Следующие команды RPC показывают проанализированные данные блока номер 514641:
bhash= 514641
bid= bitcoinRPC('getblockhash',[bhash])
bid="0000000000000000003b34a5f6cb571435b71449c38e54bf2cbafb7ca3800501"
blk= bitcoinRPC("getblock",[bid])
А ключи внутри переменных blk следующие:
blk.keys
["hash", "confirmations", "strippedsize", "size", "weight", "height",
"version", "versionHex", "merkleroot", "tx", "time", "mediantime", "nonce",
"bits", "difficulty", "chainwork", "previousblockhash", "nextblockhash"]
Я хочу проанализировать ключевые значения "hash", "tx", "time", "difficulty" изнутри номера блока 514641, вычисляя обратно к блоку номер 1, используя рубиновое программирование, и проанализировать вывод в текстовый файл с разделителями табуляции следующий формат:
hash tx time difficulty
000... 12X.... 2344556 5455345
-- 13X... -- 5678899
-- 14X... -- 6454545
Здесь «хэш» и «время» будут одинаковыми значениями для одного и того же блока. Я новичок в программировании на рубине. Любое руководство будет высоко оценено.
Заранее спасибо.