From 7f52de3b65d3e88752dff1696d0494cfe31e098a Mon Sep 17 00:00:00 2001 From: Jakub Matys Date: Thu, 26 Jul 2018 16:50:06 +0200 Subject: [PATCH] Upgraded BlockChain configuration --- bchain/coins/btc/bitcoinrpc.go | 20 +++++----- bchain/coins/eth/ethrpc.go | 4 +- build/templates/blockbook/blockchaincfg.json | 7 ++++ build/templates/generate.go | 39 +++++++++++++------- configs/coins/bcash.json | 5 ++- configs/coins/bcash_testnet.json | 5 ++- configs/coins/bgold.json | 5 ++- configs/coins/bitcoin.json | 5 ++- configs/coins/bitcoin_testnet.json | 5 ++- configs/coins/dash.json | 5 ++- configs/coins/dash_testnet.json | 5 ++- configs/coins/dogecoin.json | 5 ++- configs/coins/ethereum.json | 10 +---- configs/coins/ethereum_testnet_ropsten.json | 10 +---- configs/coins/litecoin.json | 5 ++- configs/coins/litecoin_testnet.json | 5 ++- configs/coins/namecoin.json | 5 ++- configs/coins/vertcoin.json | 5 ++- configs/coins/vertcoin_testnet.json | 5 ++- configs/coins/zcash.json | 5 ++- configs/coins/zcash_testnet.json | 5 ++- 21 files changed, 94 insertions(+), 71 deletions(-) diff --git a/bchain/coins/btc/bitcoinrpc.go b/bchain/coins/btc/bitcoinrpc.go index ac482b8b..6b6142ed 100644 --- a/bchain/coins/btc/bitcoinrpc.go +++ b/bchain/coins/btc/bitcoinrpc.go @@ -37,17 +37,17 @@ type BitcoinRPC struct { type Configuration struct { CoinName string `json:"coin_name"` - RPCURL string `json:"rpcURL"` - RPCUser string `json:"rpcUser"` - RPCPass string `json:"rpcPass"` - RPCTimeout int `json:"rpcTimeout"` + RPCURL string `json:"rpc_url"` + RPCUser string `json:"rpc_user"` + RPCPass string `json:"rpc_pass"` + RPCTimeout int `json:"rpc_timeout"` Parse bool `json:"parse"` - ZeroMQBinding string `json:"zeroMQBinding"` + MessageQueueBinding string `json:"message_queue_binding"` Subversion string `json:"subversion"` - BlockAddressesToKeep int `json:"blockAddressesToKeep"` - MempoolWorkers int `json:"mempoolWorkers"` - MempoolSubWorkers int `json:"mempoolSubWorkers"` - AddressFormat string `json:"addressFormat"` + BlockAddressesToKeep int `json:"block_addresses_to_keep"` + MempoolWorkers int `json:"mempool_workers"` + MempoolSubWorkers int `json:"mempool_sub_workers"` + AddressFormat string `json:"address_format"` } // NewBitcoinRPC returns new BitcoinRPC instance. @@ -100,7 +100,7 @@ func (b *BitcoinRPC) GetChainInfoAndInitializeMempool(bc bchain.BlockChain) (str return "", err } - mq, err := bchain.NewMQ(b.ChainConfig.ZeroMQBinding, b.pushHandler) + mq, err := bchain.NewMQ(b.ChainConfig.MessageQueueBinding, b.pushHandler) if err != nil { glog.Error("mq: ", err) return "", err diff --git a/bchain/coins/eth/ethrpc.go b/bchain/coins/eth/ethrpc.go index d985e74c..d1fd5042 100644 --- a/bchain/coins/eth/ethrpc.go +++ b/bchain/coins/eth/ethrpc.go @@ -31,8 +31,8 @@ const ( type Configuration struct { CoinName string `json:"coin_name"` - RPCURL string `json:"rpcURL"` - RPCTimeout int `json:"rpcTimeout"` + RPCURL string `json:"rpc_url"` + RPCTimeout int `json:"rpc_timeout"` } // EthereumRPC is an interface to JSON-RPC eth service. diff --git a/build/templates/blockbook/blockchaincfg.json b/build/templates/blockbook/blockchaincfg.json index 6e7a21ce..a563f90b 100644 --- a/build/templates/blockbook/blockchaincfg.json +++ b/build/templates/blockbook/blockchaincfg.json @@ -1,5 +1,12 @@ {{define "main" -}} { +{{- if .BlockChain.AdditionalParams}} +{{- range $name, $value := .BlockChain.AdditionalParams}} + "{{$name}}": {{jsonToString $value}}, +{{- end}} +{{end}} + + "coin_name": {{.Coin.Name}}, "rpc_url": "{{template "BlockChain.RPCURLTemplate" .}}", "rpc_user": "{{.BlockChain.RPCUser}}", "rpc_pass": "{{.BlockChain.RPCPass}}", diff --git a/build/templates/generate.go b/build/templates/generate.go index bed0e4c7..fce19c00 100644 --- a/build/templates/generate.go +++ b/build/templates/generate.go @@ -41,18 +41,19 @@ type Config struct { BlockbookPublic int `json:"blockbook_public"` } `json:"ports"` BlockChain struct { - RPCURLTemplate string `json:"rpc_url_template"` - RPCUser string `json:"rpc_user"` - RPCPass string `json:"rpc_pass"` - RPCTimeout int `json:"rpc_timeout"` - Parse bool `json:"parse"` - MessageQueueBindingTemplate string `json:"message_queue_binding_template"` - Subversion string `json:"subversion"` - AddressFormat string `json:"address_format"` - MempoolWorkers int `json:"mempool_workers"` - MempoolSubWorkers int `json:"mempool_sub_workers"` - BlockAddressesToKeep int `json:"block_addresses_to_keep"` - } `json:"rpc"` + RPCURLTemplate string `json:"rpc_url_template"` + RPCUser string `json:"rpc_user"` + RPCPass string `json:"rpc_pass"` + RPCTimeout int `json:"rpc_timeout"` + Parse bool `json:"parse"` + MessageQueueBindingTemplate string `json:"message_queue_binding_template"` + Subversion string `json:"subversion"` + AddressFormat string `json:"address_format"` + MempoolWorkers int `json:"mempool_workers"` + MempoolSubWorkers int `json:"mempool_sub_workers"` + BlockAddressesToKeep int `json:"block_addresses_to_keep"` + AdditionalParams map[string]json.RawMessage `json:"additional_params"` + } `json:"block_chain"` Backend struct { PackageName string `json:"package_name"` PackageRevision string `json:"package_revision"` @@ -82,6 +83,14 @@ type Config struct { } `json:"blockbook"` } +func jsonToString(msg json.RawMessage) (string, error) { + d, err := msg.MarshalJSON() + if err != nil { + return "", err + } + return string(d), nil +} + func (c *Config) ParseTemplate() *template.Template { templates := map[string]string{ "BlockChain.RPCURLTemplate": c.BlockChain.RPCURLTemplate, @@ -93,7 +102,11 @@ func (c *Config) ParseTemplate() *template.Template { "Blockbook.PublicBindingTemplate": c.Blockbook.PublicBindingTemplate, } - t := template.New("") + funcMap := template.FuncMap{ + "jsonToString": jsonToString, + } + + t := template.New("").Funcs(funcMap) for name, def := range templates { t = template.Must(t.Parse(fmt.Sprintf(`{{define "%s"}}%s{{end}}`, name, def))) diff --git a/configs/coins/bcash.json b/configs/coins/bcash.json index 92e2c198..645ee31c 100644 --- a/configs/coins/bcash.json +++ b/configs/coins/bcash.json @@ -15,7 +15,7 @@ "blockbook_internal": 9031, "blockbook_public": 9131 }, - "rpc": { + "block_chain": { "rpc_url_template": "http://localhost:{{.Ports.BackendRPC}}", "rpc_user": "rpc", "rpc_pass": "rpc", @@ -26,7 +26,8 @@ "address_format": "legacy", "mempool_workers": 8, "mempool_sub_workers": 2, - "block_addresses_to_keep": 300 + "block_addresses_to_keep": 300, + "additional_params": {} }, "backend": { "package_name": "backend-bcash", diff --git a/configs/coins/bcash_testnet.json b/configs/coins/bcash_testnet.json index 0eb5b931..2e91d41c 100644 --- a/configs/coins/bcash_testnet.json +++ b/configs/coins/bcash_testnet.json @@ -15,7 +15,7 @@ "blockbook_internal": 19031, "blockbook_public": 19131 }, - "rpc": { + "block_chain": { "rpc_url_template": "http://localhost:{{.Ports.BackendRPC}}", "rpc_user": "rpc", "rpc_pass": "rpc", @@ -26,7 +26,8 @@ "address_format": "legacy", "mempool_workers": 8, "mempool_sub_workers": 2, - "block_addresses_to_keep": 300 + "block_addresses_to_keep": 300, + "additional_params": {} }, "backend": { "package_name": "backend-bcash-testnet", diff --git a/configs/coins/bgold.json b/configs/coins/bgold.json index 91317419..2ecbef3f 100644 --- a/configs/coins/bgold.json +++ b/configs/coins/bgold.json @@ -15,7 +15,7 @@ "blockbook_internal": 9035, "blockbook_public": 9135 }, - "rpc": { + "block_chain": { "rpc_url_template": "http://localhost:{{.Ports.BackendRPC}}", "rpc_user": "rpc", "rpc_pass": "rpc", @@ -25,7 +25,8 @@ "subversion": "/Bitcoin Gold:0.15.1/", "mempool_workers": 8, "mempool_sub_workers": 2, - "block_addresses_to_keep": 300 + "block_addresses_to_keep": 300, + "additional_params": {} }, "backend": { "package_name": "backend-bgold", diff --git a/configs/coins/bitcoin.json b/configs/coins/bitcoin.json index 0ae6cb2f..bcd8c654 100644 --- a/configs/coins/bitcoin.json +++ b/configs/coins/bitcoin.json @@ -15,7 +15,7 @@ "blockbook_internal": 9030, "blockbook_public": 9130 }, - "rpc": { + "block_chain": { "rpc_url_template": "http://localhost:{{.Ports.BackendRPC}}", "rpc_user": "rpc", "rpc_pass": "rpc", @@ -24,7 +24,8 @@ "message_queue_binding_template": "tcp://127.0.0.1:{{.Ports.BackendMessageQueue}}", "mempool_workers": 8, "mempool_sub_workers": 2, - "block_addresses_to_keep": 300 + "block_addresses_to_keep": 300, + "additional_params": {} }, "backend": { "package_name": "backend-bitcoin", diff --git a/configs/coins/bitcoin_testnet.json b/configs/coins/bitcoin_testnet.json index 89f32fa0..79be56e0 100644 --- a/configs/coins/bitcoin_testnet.json +++ b/configs/coins/bitcoin_testnet.json @@ -15,7 +15,7 @@ "blockbook_internal": 19030, "blockbook_public": 19130 }, - "rpc": { + "block_chain": { "rpc_url_template": "http://localhost:{{.Ports.BackendRPC}}", "rpc_user": "rpc", "rpc_pass": "rpc", @@ -24,7 +24,8 @@ "message_queue_binding_template": "tcp://127.0.0.1:{{.Ports.BackendMessageQueue}}", "mempool_workers": 8, "mempool_sub_workers": 2, - "block_addresses_to_keep": 300 + "block_addresses_to_keep": 300, + "additional_params": {} }, "backend": { "package_name": "backend-bitcoin-testnet", diff --git a/configs/coins/dash.json b/configs/coins/dash.json index a7ca39d7..b7fd681f 100644 --- a/configs/coins/dash.json +++ b/configs/coins/dash.json @@ -15,7 +15,7 @@ "blockbook_internal": 9033, "blockbook_public": 9133 }, - "rpc": { + "block_chain": { "rpc_url_template": "http://localhost:{{.Ports.BackendRPC}}", "rpc_user": "rpc", "rpc_pass": "rpc", @@ -25,7 +25,8 @@ "subversion": "/Dash Core:0.12.3.2/", "mempool_workers": 8, "mempool_sub_workers": 2, - "block_addresses_to_keep": 300 + "block_addresses_to_keep": 300, + "additional_params": {} }, "backend": { "package_name": "backend-dash", diff --git a/configs/coins/dash_testnet.json b/configs/coins/dash_testnet.json index 4426aae9..7c3233cb 100644 --- a/configs/coins/dash_testnet.json +++ b/configs/coins/dash_testnet.json @@ -15,7 +15,7 @@ "blockbook_internal": 19033, "blockbook_public": 19133 }, - "rpc": { + "block_chain": { "rpc_url_template": "http://localhost:{{.Ports.BackendRPC}}", "rpc_user": "rpc", "rpc_pass": "rpc", @@ -25,7 +25,8 @@ "subversion": "/Dash Core:0.12.3.2/", "mempool_workers": 8, "mempool_sub_workers": 2, - "block_addresses_to_keep": 300 + "block_addresses_to_keep": 300, + "additional_params": {} }, "backend": { "package_name": "backend-dash-testnet", diff --git a/configs/coins/dogecoin.json b/configs/coins/dogecoin.json index 7f8b376b..de3a42e9 100644 --- a/configs/coins/dogecoin.json +++ b/configs/coins/dogecoin.json @@ -15,7 +15,7 @@ "blockbook_internal": 9038, "blockbook_public": 9138 }, - "rpc": { + "block_chain": { "rpc_url_template": "http://localhost:{{.Ports.BackendRPC}}", "rpc_user": "rpc", "rpc_pass": "rpc", @@ -24,7 +24,8 @@ "message_queue_binding_template": "tcp://127.0.0.1:{{.Ports.BackendMessageQueue}}", "mempool_workers": 8, "mempool_sub_workers": 2, - "block_addresses_to_keep": 300 + "block_addresses_to_keep": 300, + "additional_params": {} }, "backend": { "package_name": "backend-dogecoin", diff --git a/configs/coins/ethereum.json b/configs/coins/ethereum.json index 67dca5ca..13a389a5 100644 --- a/configs/coins/ethereum.json +++ b/configs/coins/ethereum.json @@ -15,16 +15,10 @@ "blockbook_internal": 9036, "blockbook_public": 9136 }, - "rpc": { + "block_chain": { "rpc_url_template": "ws://localhost:{{.Ports.BackendRPC}}", - "rpc_user": "rpc", - "rpc_pass": "rpc", "rpc_timeout": 25, - "parse": true, - "message_queue_binding_template": "", - "mempool_workers": 8, - "mempool_sub_workers": 2, - "block_addresses_to_keep": 300 + "additional_params": {} }, "backend": { "package_name": "backend-ethereum", diff --git a/configs/coins/ethereum_testnet_ropsten.json b/configs/coins/ethereum_testnet_ropsten.json index 2c346c16..154c2dc8 100644 --- a/configs/coins/ethereum_testnet_ropsten.json +++ b/configs/coins/ethereum_testnet_ropsten.json @@ -15,16 +15,10 @@ "blockbook_internal": 19036, "blockbook_public": 19136 }, - "rpc": { + "block_chain": { "rpc_url_template": "ws://localhost:{{.Ports.BackendRPC}}", - "rpc_user": "rpc", - "rpc_pass": "rpc", "rpc_timeout": 25, - "parse": true, - "message_queue_binding_template": "", - "mempool_workers": 8, - "mempool_sub_workers": 2, - "block_addresses_to_keep": 300 + "additional_params": {} }, "backend": { "package_name": "backend-ethereum-testnet-ropsten", diff --git a/configs/coins/litecoin.json b/configs/coins/litecoin.json index b7e62410..2a28ff36 100644 --- a/configs/coins/litecoin.json +++ b/configs/coins/litecoin.json @@ -15,7 +15,7 @@ "blockbook_internal": 9034, "blockbook_public": 9134 }, - "rpc": { + "block_chain": { "rpc_url_template": "http://localhost:{{.Ports.BackendRPC}}", "rpc_user": "rpc", "rpc_pass": "rpc", @@ -24,7 +24,8 @@ "message_queue_binding_template": "tcp://127.0.0.1:{{.Ports.BackendMessageQueue}}", "mempool_workers": 8, "mempool_sub_workers": 2, - "block_addresses_to_keep": 300 + "block_addresses_to_keep": 300, + "additional_params": {} }, "backend": { "package_name": "backend-litecoin", diff --git a/configs/coins/litecoin_testnet.json b/configs/coins/litecoin_testnet.json index 3ca11ba0..5cfe242f 100644 --- a/configs/coins/litecoin_testnet.json +++ b/configs/coins/litecoin_testnet.json @@ -15,7 +15,7 @@ "blockbook_internal": 19034, "blockbook_public": 19134 }, - "rpc": { + "block_chain": { "rpc_url_template": "http://localhost:{{.Ports.BackendRPC}}", "rpc_user": "rpc", "rpc_pass": "rpc", @@ -24,7 +24,8 @@ "message_queue_binding_template": "tcp://127.0.0.1:{{.Ports.BackendMessageQueue}}", "mempool_workers": 8, "mempool_sub_workers": 2, - "block_addresses_to_keep": 300 + "block_addresses_to_keep": 300, + "additional_params": {} }, "backend": { "package_name": "backend-litecoin-testnet", diff --git a/configs/coins/namecoin.json b/configs/coins/namecoin.json index 1014cabc..fe2a2a01 100644 --- a/configs/coins/namecoin.json +++ b/configs/coins/namecoin.json @@ -15,7 +15,7 @@ "blockbook_internal": 9039, "blockbook_public": 9139 }, - "rpc": { + "block_chain": { "rpc_url_template": "http://localhost:{{.Ports.BackendRPC}}", "rpc_user": "rpc", "rpc_pass": "rpc", @@ -24,7 +24,8 @@ "message_queue_binding_template": "tcp://127.0.0.1:{{.Ports.BackendMessageQueue}}", "mempool_workers": 8, "mempool_sub_workers": 2, - "block_addresses_to_keep": 300 + "block_addresses_to_keep": 300, + "additional_params": {} }, "backend": { "package_name": "backend-namecoin", diff --git a/configs/coins/vertcoin.json b/configs/coins/vertcoin.json index 7c8d3197..85b92e80 100644 --- a/configs/coins/vertcoin.json +++ b/configs/coins/vertcoin.json @@ -15,7 +15,7 @@ "blockbook_internal": 9040, "blockbook_public": 9140 }, - "rpc": { + "block_chain": { "rpc_url_template": "http://localhost:{{.Ports.BackendRPC}}", "rpc_user": "rpc", "rpc_pass": "rpc", @@ -24,7 +24,8 @@ "message_queue_binding_template": "tcp://127.0.0.1:{{.Ports.BackendMessageQueue}}", "mempool_workers": 8, "mempool_sub_workers": 2, - "block_addresses_to_keep": 300 + "block_addresses_to_keep": 300, + "additional_params": {} }, "backend": { "package_name": "backend-vertcoin", diff --git a/configs/coins/vertcoin_testnet.json b/configs/coins/vertcoin_testnet.json index 38ec7fb1..e661f7c6 100644 --- a/configs/coins/vertcoin_testnet.json +++ b/configs/coins/vertcoin_testnet.json @@ -15,7 +15,7 @@ "blockbook_internal": 19040, "blockbook_public": 19140 }, - "rpc": { + "block_chain": { "rpc_url_template": "http://localhost:{{.Ports.BackendRPC}}", "rpc_user": "rpc", "rpc_pass": "rpc", @@ -24,7 +24,8 @@ "message_queue_binding_template": "tcp://127.0.0.1:{{.Ports.BackendMessageQueue}}", "mempool_workers": 8, "mempool_sub_workers": 2, - "block_addresses_to_keep": 300 + "block_addresses_to_keep": 300, + "additional_params": {} }, "backend": { "package_name": "backend-vertcoin-testnet", diff --git a/configs/coins/zcash.json b/configs/coins/zcash.json index 9f12405c..166b5843 100644 --- a/configs/coins/zcash.json +++ b/configs/coins/zcash.json @@ -15,7 +15,7 @@ "blockbook_internal": 9032, "blockbook_public": 9132 }, - "rpc": { + "block_chain": { "rpc_url_template": "http://localhost:{{.Ports.BackendRPC}}", "rpc_user": "rpc", "rpc_pass": "rpc", @@ -24,7 +24,8 @@ "message_queue_binding_template": "tcp://127.0.0.1:{{.Ports.BackendMessageQueue}}", "mempool_workers": 4, "mempool_sub_workers": 8, - "block_addresses_to_keep": 300 + "block_addresses_to_keep": 300, + "additional_params": {} }, "backend": { "package_name": "backend-zcash", diff --git a/configs/coins/zcash_testnet.json b/configs/coins/zcash_testnet.json index c7bd21d6..d33ad7f4 100644 --- a/configs/coins/zcash_testnet.json +++ b/configs/coins/zcash_testnet.json @@ -15,7 +15,7 @@ "blockbook_internal": 19032, "blockbook_public": 19132 }, - "rpc": { + "block_chain": { "rpc_url_template": "http://localhost:{{.Ports.BackendRPC}}", "rpc_user": "rpc", "rpc_pass": "rpc", @@ -24,7 +24,8 @@ "message_queue_binding_template": "tcp://127.0.0.1:{{.Ports.BackendMessageQueue}}", "mempool_workers": 4, "mempool_sub_workers": 8, - "block_addresses_to_keep": 300 + "block_addresses_to_keep": 300, + "additional_params": {} }, "backend": { "package_name": "backend-zcash-testnet",