Upgraded BlockChain configuration

This commit is contained in:
Jakub Matys 2018-07-26 16:50:06 +02:00
parent 80911f8949
commit 7f52de3b65
21 changed files with 94 additions and 71 deletions

View File

@ -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

View File

@ -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.

View File

@ -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}}",

View File

@ -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)))

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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",