Add Arbitrum One and Arbitrum Nova Support (#1112)
* add arbitrum one and arbitrum nova support * fix archive parent chain ports * fix exec script config * update nitro-node version
This commit is contained in:
parent
afe4749f6d
commit
d6aaa09e06
5
Makefile
5
Makefile
@ -1,6 +1,7 @@
|
||||
BIN_IMAGE = blockbook-build
|
||||
DEB_IMAGE = blockbook-build-deb
|
||||
PACKAGER = $(shell id -u):$(shell id -g)
|
||||
DOCKER_VERSION = $(shell docker version --format '{{.Client.Version}}')
|
||||
BASE_IMAGE = $$(awk -F= '$$1=="ID" { print $$2 ;}' /etc/os-release):$$(awk -F= '$$1=="VERSION_ID" { print $$2 ;}' /etc/os-release | tr -d '"')
|
||||
NO_CACHE = false
|
||||
TCMALLOC =
|
||||
@ -27,7 +28,7 @@ test-all: .bin-image
|
||||
docker run -t --rm -e PACKAGER=$(PACKAGER) -v "$(CURDIR):/src" --network="host" $(BIN_IMAGE) make test-all ARGS="$(ARGS)"
|
||||
|
||||
deb-backend-%: .deb-image
|
||||
docker run -t --rm -e PACKAGER=$(PACKAGER) -v "$(CURDIR):/src" -v "$(CURDIR)/build:/out" $(DEB_IMAGE) /build/build-deb.sh backend $* $(ARGS)
|
||||
docker run -t --rm -e PACKAGER=$(PACKAGER) -v /var/run/docker.sock:/var/run/docker.sock -v "$(CURDIR):/src" -v "$(CURDIR)/build:/out" $(DEB_IMAGE) /build/build-deb.sh backend $* $(ARGS)
|
||||
|
||||
deb-blockbook-%: .deb-image
|
||||
docker run -t --rm -e PACKAGER=$(PACKAGER) -v "$(CURDIR):/src" -v "$(CURDIR)/build:/out" $(DEB_IMAGE) /build/build-deb.sh blockbook $* $(ARGS)
|
||||
@ -55,7 +56,7 @@ build-images: clean-images
|
||||
.deb-image: .bin-image
|
||||
@if [ $$(build/tools/image_status.sh $(DEB_IMAGE):latest build/docker) != "ok" ]; then \
|
||||
echo "Building image $(DEB_IMAGE)..."; \
|
||||
docker build --no-cache=$(NO_CACHE) -t $(DEB_IMAGE) build/docker/deb; \
|
||||
docker build --no-cache=$(NO_CACHE) --build-arg DOCKER_VERSION=$(DOCKER_VERSION) -t $(DEB_IMAGE) build/docker/deb; \
|
||||
else \
|
||||
echo "Image $(DEB_IMAGE) is up to date"; \
|
||||
fi
|
||||
|
||||
77
bchain/coins/arbitrum/arbitrumrpc.go
Normal file
77
bchain/coins/arbitrum/arbitrumrpc.go
Normal file
@ -0,0 +1,77 @@
|
||||
package arbitrum
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
|
||||
"github.com/golang/glog"
|
||||
"github.com/juju/errors"
|
||||
"github.com/trezor/blockbook/bchain"
|
||||
"github.com/trezor/blockbook/bchain/coins/eth"
|
||||
)
|
||||
|
||||
const (
|
||||
ArbitrumOneMainNet eth.Network = 42161
|
||||
ArbitrumNovaMainNet eth.Network = 42170
|
||||
)
|
||||
|
||||
// ArbitrumRPC is an interface to JSON-RPC arbitrum service.
|
||||
type ArbitrumRPC struct {
|
||||
*eth.EthereumRPC
|
||||
}
|
||||
|
||||
// NewArbitrumRPC returns new ArbitrumRPC instance.
|
||||
func NewArbitrumRPC(config json.RawMessage, pushHandler func(bchain.NotificationType)) (bchain.BlockChain, error) {
|
||||
c, err := eth.NewEthereumRPC(config, pushHandler)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
s := &ArbitrumRPC{
|
||||
EthereumRPC: c.(*eth.EthereumRPC),
|
||||
}
|
||||
|
||||
return s, nil
|
||||
}
|
||||
|
||||
// Initialize arbitrum rpc interface
|
||||
func (b *ArbitrumRPC) Initialize() error {
|
||||
b.OpenRPC = eth.OpenRPC
|
||||
|
||||
rc, ec, err := b.OpenRPC(b.ChainConfig.RPCURL)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// set chain specific
|
||||
b.Client = ec
|
||||
b.RPC = rc
|
||||
b.NewBlock = eth.NewEthereumNewBlock()
|
||||
b.NewTx = eth.NewEthereumNewTx()
|
||||
|
||||
ctx, cancel := context.WithTimeout(context.Background(), b.Timeout)
|
||||
defer cancel()
|
||||
|
||||
id, err := b.Client.NetworkID(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// parameters for getInfo request
|
||||
switch eth.Network(id.Uint64()) {
|
||||
case ArbitrumOneMainNet:
|
||||
b.MainNetChainID = ArbitrumOneMainNet
|
||||
b.Testnet = false
|
||||
b.Network = "livenet"
|
||||
case ArbitrumNovaMainNet:
|
||||
b.MainNetChainID = ArbitrumNovaMainNet
|
||||
b.Testnet = false
|
||||
b.Network = "livenet"
|
||||
default:
|
||||
return errors.Errorf("Unknown network id %v", id)
|
||||
}
|
||||
|
||||
glog.Info("rpc: block chain ", b.Network)
|
||||
|
||||
return nil
|
||||
}
|
||||
@ -11,6 +11,7 @@ import (
|
||||
|
||||
"github.com/juju/errors"
|
||||
"github.com/trezor/blockbook/bchain"
|
||||
"github.com/trezor/blockbook/bchain/coins/arbitrum"
|
||||
"github.com/trezor/blockbook/bchain/coins/avalanche"
|
||||
"github.com/trezor/blockbook/bchain/coins/bch"
|
||||
"github.com/trezor/blockbook/bchain/coins/bellcoin"
|
||||
@ -142,6 +143,10 @@ func init() {
|
||||
BlockChainFactories["Polygon Archive"] = polygon.NewPolygonRPC
|
||||
BlockChainFactories["Optimism"] = optimism.NewOptimismRPC
|
||||
BlockChainFactories["Optimism Archive"] = optimism.NewOptimismRPC
|
||||
BlockChainFactories["Arbitrum"] = arbitrum.NewArbitrumRPC
|
||||
BlockChainFactories["Arbitrum Archive"] = arbitrum.NewArbitrumRPC
|
||||
BlockChainFactories["Arbitrum Nova"] = arbitrum.NewArbitrumRPC
|
||||
BlockChainFactories["Arbitrum Nova Archive"] = arbitrum.NewArbitrumRPC
|
||||
}
|
||||
|
||||
// NewBlockChain creates bchain.BlockChain and bchain.Mempool for the coin passed by the parameter coin
|
||||
|
||||
@ -9,6 +9,16 @@ RUN apt-get update && \
|
||||
apt-get install -y devscripts debhelper make dh-exec zstd && \
|
||||
apt-get clean
|
||||
|
||||
# install docker cli
|
||||
ARG DOCKER_VERSION
|
||||
|
||||
RUN if [ -z "$DOCKER_VERSION" ]; then echo "DOCKER_VERSION is a required build arg" && exit 1; fi
|
||||
|
||||
RUN wget -O docker.tgz "https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKER_VERSION}.tgz" && \
|
||||
tar -xzf docker.tgz --strip 1 -C /usr/local/bin/ && \
|
||||
rm docker.tgz && \
|
||||
docker --version
|
||||
|
||||
ADD gpg-keys /tmp/gpg-keys
|
||||
RUN gpg --batch --import /tmp/gpg-keys/*
|
||||
|
||||
|
||||
@ -2,6 +2,16 @@
|
||||
ARCHIVE := $(shell basename {{.Backend.BinaryURL}})
|
||||
|
||||
all:
|
||||
mkdir backend
|
||||
{{- if ne .Backend.DockerImage "" }}
|
||||
docker container inspect extract > /dev/null 2>&1 && docker rm extract || true
|
||||
docker create --name extract {{.Backend.DockerImage}}
|
||||
{{- if eq .Backend.VerificationType "docker"}}
|
||||
[ "$$(docker inspect --format='{{`{{index .RepoDigests 0}}`}}' {{.Backend.DockerImage}} | sed 's/.*@sha256://')" = "{{.Backend.VerificationSource}}" ]
|
||||
{{- end}}
|
||||
{{.Backend.ExtractCommand}}
|
||||
docker rm extract
|
||||
{{- else }}
|
||||
wget {{.Backend.BinaryURL}}
|
||||
{{- if eq .Backend.VerificationType "gpg"}}
|
||||
wget {{.Backend.VerificationSource}} -O checksum
|
||||
@ -13,8 +23,8 @@ all:
|
||||
{{- else if eq .Backend.VerificationType "sha256"}}
|
||||
[ "$$(sha256sum ${ARCHIVE} | cut -d ' ' -f 1)" = "{{.Backend.VerificationSource}}" ]
|
||||
{{- end}}
|
||||
mkdir backend
|
||||
{{.Backend.ExtractCommand}} ${ARCHIVE}
|
||||
{{- end}}
|
||||
{{- if .Backend.ExcludeFiles}}
|
||||
# generated from exclude_files
|
||||
{{- range $index, $name := .Backend.ExcludeFiles}}
|
||||
|
||||
34
build/templates/backend/scripts/arbitrum.sh
Executable file
34
build/templates/backend/scripts/arbitrum.sh
Executable file
@ -0,0 +1,34 @@
|
||||
#!/bin/sh
|
||||
|
||||
{{define "main" -}}
|
||||
|
||||
set -e
|
||||
|
||||
INSTALL_DIR={{.Env.BackendInstallPath}}/{{.Coin.Alias}}
|
||||
DATA_DIR={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend
|
||||
|
||||
NITRO_BIN=$INSTALL_DIR/nitro
|
||||
|
||||
$NITRO_BIN \
|
||||
--chain.name arb1 \
|
||||
--init.latest pruned \
|
||||
--init.download-path $DATA_DIR/tmp \
|
||||
--auth.jwtsecret $DATA_DIR/jwtsecret \
|
||||
--persistent.chain $DATA_DIR \
|
||||
--parent-chain.connection.url http://127.0.0.1:8136 \
|
||||
--parent-chain.blob-client.beacon-url http://127.0.0.1:7536 \
|
||||
--http.addr 127.0.0.1 \
|
||||
--http.port {{.Ports.BackendHttp}} \
|
||||
--http.api eth,net,web3,debug,txpool,arb \
|
||||
--http.vhosts '*' \
|
||||
--http.corsdomain '*' \
|
||||
--ws.addr 127.0.0.1 \
|
||||
--ws.api eth,net,web3,debug,txpool,arb \
|
||||
--ws.port {{.Ports.BackendRPC}} \
|
||||
--ws.origins '*' \
|
||||
--file-logging.enable='false' \
|
||||
--node.staker.enable='false' \
|
||||
--execution.tx-lookup-limit 0 \
|
||||
--validation.wasm.allowed-wasm-module-roots "$INSTALL_DIR/nitro-legacy/machines,$INSTALL_DIR/target/machines"
|
||||
|
||||
{{end}}
|
||||
35
build/templates/backend/scripts/arbitrum_archive.sh
Executable file
35
build/templates/backend/scripts/arbitrum_archive.sh
Executable file
@ -0,0 +1,35 @@
|
||||
#!/bin/sh
|
||||
|
||||
{{define "main" -}}
|
||||
|
||||
set -e
|
||||
|
||||
INSTALL_DIR={{.Env.BackendInstallPath}}/{{.Coin.Alias}}
|
||||
DATA_DIR={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend
|
||||
|
||||
NITRO_BIN=$INSTALL_DIR/nitro
|
||||
|
||||
$NITRO_BIN \
|
||||
--chain.name arb1 \
|
||||
--init.latest archive \
|
||||
--init.download-path $DATA_DIR/tmp \
|
||||
--auth.jwtsecret $DATA_DIR/jwtsecret \
|
||||
--persistent.chain $DATA_DIR \
|
||||
--parent-chain.connection.url http://127.0.0.1:8116 \
|
||||
--parent-chain.blob-client.beacon-url http://127.0.0.1:7516 \
|
||||
--http.addr 127.0.0.1 \
|
||||
--http.port {{.Ports.BackendHttp}} \
|
||||
--http.api eth,net,web3,debug,txpool,arb \
|
||||
--http.vhosts '*' \
|
||||
--http.corsdomain '*' \
|
||||
--ws.addr 127.0.0.1 \
|
||||
--ws.api eth,net,web3,debug,txpool,arb \
|
||||
--ws.port {{.Ports.BackendRPC}} \
|
||||
--ws.origins '*' \
|
||||
--file-logging.enable='false' \
|
||||
--node.staker.enable='false' \
|
||||
--execution.caching.archive \
|
||||
--execution.tx-lookup-limit 0 \
|
||||
--validation.wasm.allowed-wasm-module-roots "$INSTALL_DIR/nitro-legacy/machines,$INSTALL_DIR/target/machines"
|
||||
|
||||
{{end}}
|
||||
34
build/templates/backend/scripts/arbitrum_nova.sh
Executable file
34
build/templates/backend/scripts/arbitrum_nova.sh
Executable file
@ -0,0 +1,34 @@
|
||||
#!/bin/sh
|
||||
|
||||
{{define "main" -}}
|
||||
|
||||
set -e
|
||||
|
||||
INSTALL_DIR={{.Env.BackendInstallPath}}/{{.Coin.Alias}}
|
||||
DATA_DIR={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend
|
||||
|
||||
NITRO_BIN=$INSTALL_DIR/nitro
|
||||
|
||||
$NITRO_BIN \
|
||||
--chain.name nova \
|
||||
--init.latest pruned \
|
||||
--init.download-path $DATA_DIR/tmp \
|
||||
--auth.jwtsecret $DATA_DIR/jwtsecret \
|
||||
--persistent.chain $DATA_DIR \
|
||||
--parent-chain.connection.url http://127.0.0.1:8136 \
|
||||
--parent-chain.blob-client.beacon-url http://127.0.0.1:7536 \
|
||||
--http.addr 127.0.0.1 \
|
||||
--http.port {{.Ports.BackendHttp}} \
|
||||
--http.api eth,net,web3,debug,txpool,arb \
|
||||
--http.vhosts '*' \
|
||||
--http.corsdomain '*' \
|
||||
--ws.addr 127.0.0.1 \
|
||||
--ws.api eth,net,web3,debug,txpool,arb \
|
||||
--ws.port {{.Ports.BackendRPC}} \
|
||||
--ws.origins '*' \
|
||||
--file-logging.enable='false' \
|
||||
--node.staker.enable='false' \
|
||||
--execution.tx-lookup-limit 0 \
|
||||
--validation.wasm.allowed-wasm-module-roots "$INSTALL_DIR/nitro-legacy/machines,$INSTALL_DIR/target/machines"
|
||||
|
||||
{{end}}
|
||||
35
build/templates/backend/scripts/arbitrum_nova_archive.sh
Executable file
35
build/templates/backend/scripts/arbitrum_nova_archive.sh
Executable file
@ -0,0 +1,35 @@
|
||||
#!/bin/sh
|
||||
|
||||
{{define "main" -}}
|
||||
|
||||
set -e
|
||||
|
||||
INSTALL_DIR={{.Env.BackendInstallPath}}/{{.Coin.Alias}}
|
||||
DATA_DIR={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend
|
||||
|
||||
NITRO_BIN=$INSTALL_DIR/nitro
|
||||
|
||||
$NITRO_BIN \
|
||||
--chain.name nova \
|
||||
--init.latest archive \
|
||||
--init.download-path $DATA_DIR/tmp \
|
||||
--auth.jwtsecret $DATA_DIR/jwtsecret \
|
||||
--persistent.chain $DATA_DIR \
|
||||
--parent-chain.connection.url http://127.0.0.1:8116 \
|
||||
--parent-chain.blob-client.beacon-url http://127.0.0.1:7516 \
|
||||
--http.addr 127.0.0.1 \
|
||||
--http.port {{.Ports.BackendHttp}} \
|
||||
--http.api eth,net,web3,debug,txpool,arb \
|
||||
--http.vhosts '*' \
|
||||
--http.corsdomain '*' \
|
||||
--ws.addr 127.0.0.1 \
|
||||
--ws.api eth,net,web3,debug,txpool,arb \
|
||||
--ws.port {{.Ports.BackendRPC}} \
|
||||
--ws.origins '*' \
|
||||
--file-logging.enable='false' \
|
||||
--node.staker.enable='false' \
|
||||
--execution.caching.archive \
|
||||
--execution.tx-lookup-limit 0 \
|
||||
--validation.wasm.allowed-wasm-module-roots "$INSTALL_DIR/nitro-legacy/machines,$INSTALL_DIR/target/machines"
|
||||
|
||||
{{end}}
|
||||
@ -21,6 +21,7 @@ type Backend struct {
|
||||
SystemUser string `json:"system_user"`
|
||||
Version string `json:"version"`
|
||||
BinaryURL string `json:"binary_url"`
|
||||
DockerImage string `json:"docker_image"`
|
||||
VerificationType string `json:"verification_type"`
|
||||
VerificationSource string `json:"verification_source"`
|
||||
ExtractCommand string `json:"extract_command"`
|
||||
@ -204,6 +205,7 @@ func LoadConfig(configsDir, coin string) (*Config, error) {
|
||||
case "gpg":
|
||||
case "sha256":
|
||||
case "gpg-sha256":
|
||||
case "docker":
|
||||
default:
|
||||
return nil, fmt.Errorf("Invalid verification type: %s", config.Backend.VerificationType)
|
||||
}
|
||||
|
||||
65
configs/coins/arbitrum.json
Normal file
65
configs/coins/arbitrum.json
Normal file
@ -0,0 +1,65 @@
|
||||
{
|
||||
"coin": {
|
||||
"name": "Arbitrum",
|
||||
"shortcut": "ETH",
|
||||
"label": "Arbitrum",
|
||||
"alias": "arbitrum"
|
||||
},
|
||||
"ports": {
|
||||
"backend_rpc": 8205,
|
||||
"backend_p2p": 38405,
|
||||
"backend_http": 8305,
|
||||
"blockbook_internal": 9205,
|
||||
"blockbook_public": 9305
|
||||
},
|
||||
"ipc": {
|
||||
"rpc_url_template": "ws://127.0.0.1:{{.Ports.BackendRPC}}",
|
||||
"rpc_timeout": 25
|
||||
},
|
||||
"backend": {
|
||||
"package_name": "backend-arbitrum",
|
||||
"package_revision": "satoshilabs-1",
|
||||
"system_user": "arbitrum",
|
||||
"version": "3.2.1",
|
||||
"docker_image": "offchainlabs/nitro-node:v3.2.1-d81324d",
|
||||
"verification_type": "docker",
|
||||
"verification_source": "724ebdcca39cd0c28ffd025ecea8d1622a376f41344201b729afb60352cbc306",
|
||||
"extract_command": "docker cp extract:/home/user/target backend/target; docker cp extract:/home/user/nitro-legacy backend/nitro-legacy; docker cp extract:/usr/local/bin/nitro backend/nitro",
|
||||
"exclude_files": [],
|
||||
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/arbitrum_exec.sh 2>> {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
||||
"exec_script": "arbitrum.sh",
|
||||
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
||||
"postinst_script_template": "openssl rand -hex 32 > {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/jwtsecret",
|
||||
"service_type": "simple",
|
||||
"service_additional_params_template": "",
|
||||
"protect_memory": true,
|
||||
"mainnet": true,
|
||||
"server_config_file": "",
|
||||
"client_config_file": ""
|
||||
},
|
||||
"blockbook": {
|
||||
"package_name": "blockbook-arbitrum",
|
||||
"system_user": "blockbook-arbitrum",
|
||||
"internal_binding_template": ":{{.Ports.BlockbookInternal}}",
|
||||
"public_binding_template": ":{{.Ports.BlockbookPublic}}",
|
||||
"explorer_url": "",
|
||||
"additional_params": "",
|
||||
"block_chain": {
|
||||
"parse": true,
|
||||
"mempool_workers": 8,
|
||||
"mempool_sub_workers": 2,
|
||||
"block_addresses_to_keep": 300,
|
||||
"additional_params": {
|
||||
"mempoolTxTimeoutHours": 48,
|
||||
"queryBackendOnMempoolResync": false,
|
||||
"fiat_rates": "coingecko",
|
||||
"fiat_rates_vs_currencies": "AED,ARS,AUD,BDT,BHD,BMD,BRL,CAD,CHF,CLP,CNY,CZK,DKK,EUR,GBP,HKD,HUF,IDR,ILS,INR,JPY,KRW,KWD,LKR,MMK,MXN,MYR,NGN,NOK,NZD,PHP,PKR,PLN,RUB,SAR,SEK,SGD,THB,TRY,TWD,UAH,USD,VEF,VND,ZAR,BTC,ETH",
|
||||
"fiat_rates_params": "{\"url\": \"https://api.coingecko.com/api/v3\", \"coin\": \"ethereum\",\"platformIdentifier\": \"ethereum\",\"platformVsCurrency\": \"eth\",\"periodSeconds\": 900}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"meta": {
|
||||
"package_maintainer": "IT",
|
||||
"package_maintainer_email": "it@satoshilabs.com"
|
||||
}
|
||||
}
|
||||
67
configs/coins/arbitrum_archive.json
Normal file
67
configs/coins/arbitrum_archive.json
Normal file
@ -0,0 +1,67 @@
|
||||
{
|
||||
"coin": {
|
||||
"name": "Arbitrum Archive",
|
||||
"shortcut": "ETH",
|
||||
"label": "Arbitrum",
|
||||
"alias": "arbitrum_archive"
|
||||
},
|
||||
"ports": {
|
||||
"backend_rpc": 8306,
|
||||
"backend_p2p": 38406,
|
||||
"blockbook_internal": 9206,
|
||||
"blockbook_public": 9306
|
||||
},
|
||||
"ipc": {
|
||||
"rpc_url_template": "ws://127.0.0.1:{{.Ports.BackendRPC}}",
|
||||
"rpc_timeout": 25
|
||||
},
|
||||
"backend": {
|
||||
"package_name": "backend-arbitrum-archive",
|
||||
"package_revision": "satoshilabs-1",
|
||||
"system_user": "arbitrum",
|
||||
"version": "3.2.1",
|
||||
"docker_image": "offchainlabs/nitro-node:v3.2.1-d81324d",
|
||||
"verification_type": "docker",
|
||||
"verification_source": "724ebdcca39cd0c28ffd025ecea8d1622a376f41344201b729afb60352cbc306",
|
||||
"extract_command": "docker cp extract:/home/user/target backend/target; docker cp extract:/home/user/nitro-legacy backend/nitro-legacy; docker cp extract:/usr/local/bin/nitro backend/nitro",
|
||||
"exclude_files": [],
|
||||
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/arbitrum_archive_exec.sh 2>> {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
||||
"exec_script": "arbitrum_archive.sh",
|
||||
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
||||
"postinst_script_template": "openssl rand -hex 32 > {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/jwtsecret",
|
||||
"service_type": "simple",
|
||||
"service_additional_params_template": "",
|
||||
"protect_memory": true,
|
||||
"mainnet": true,
|
||||
"server_config_file": "",
|
||||
"client_config_file": ""
|
||||
},
|
||||
"blockbook": {
|
||||
"package_name": "blockbook-arbitrum-archive",
|
||||
"system_user": "blockbook-arbitrum",
|
||||
"internal_binding_template": ":{{.Ports.BlockbookInternal}}",
|
||||
"public_binding_template": ":{{.Ports.BlockbookPublic}}",
|
||||
"explorer_url": "",
|
||||
"additional_params": "-workers=16",
|
||||
"block_chain": {
|
||||
"parse": true,
|
||||
"mempool_workers": 8,
|
||||
"mempool_sub_workers": 2,
|
||||
"block_addresses_to_keep": 600,
|
||||
"additional_params": {
|
||||
"address_aliases": true,
|
||||
"mempoolTxTimeoutHours": 48,
|
||||
"processInternalTransactions": true,
|
||||
"queryBackendOnMempoolResync": false,
|
||||
"fiat_rates": "coingecko",
|
||||
"fiat_rates_vs_currencies": "AED,ARS,AUD,BDT,BHD,BMD,BRL,CAD,CHF,CLP,CNY,CZK,DKK,EUR,GBP,HKD,HUF,IDR,ILS,INR,JPY,KRW,KWD,LKR,MMK,MXN,MYR,NGN,NOK,NZD,PHP,PKR,PLN,RUB,SAR,SEK,SGD,THB,TRY,TWD,UAH,USD,VEF,VND,ZAR,BTC,ETH",
|
||||
"fiat_rates_params": "{\"url\": \"https://api.coingecko.com/api/v3\", \"coin\": \"ethereum\",\"platformIdentifier\": \"ethereum\",\"platformVsCurrency\": \"eth\",\"periodSeconds\": 900}",
|
||||
"fourByteSignatures": "https://www.4byte.directory/api/v1/signatures/"
|
||||
}
|
||||
}
|
||||
},
|
||||
"meta": {
|
||||
"package_maintainer": "IT",
|
||||
"package_maintainer_email": "it@satoshilabs.com"
|
||||
}
|
||||
}
|
||||
65
configs/coins/arbitrum_nova.json
Normal file
65
configs/coins/arbitrum_nova.json
Normal file
@ -0,0 +1,65 @@
|
||||
{
|
||||
"coin": {
|
||||
"name": "Arbitrum Nova",
|
||||
"shortcut": "ETH",
|
||||
"label": "Arbitrum Nova",
|
||||
"alias": "arbitrum_nova"
|
||||
},
|
||||
"ports": {
|
||||
"backend_rpc": 8207,
|
||||
"backend_p2p": 38407,
|
||||
"backend_http": 8307,
|
||||
"blockbook_internal": 9207,
|
||||
"blockbook_public": 9307
|
||||
},
|
||||
"ipc": {
|
||||
"rpc_url_template": "ws://127.0.0.1:{{.Ports.BackendRPC}}",
|
||||
"rpc_timeout": 25
|
||||
},
|
||||
"backend": {
|
||||
"package_name": "backend-arbitrum-nova",
|
||||
"package_revision": "satoshilabs-1",
|
||||
"system_user": "arbitrum",
|
||||
"version": "3.2.1",
|
||||
"docker_image": "offchainlabs/nitro-node:v3.2.1-d81324d",
|
||||
"verification_type": "docker",
|
||||
"verification_source": "724ebdcca39cd0c28ffd025ecea8d1622a376f41344201b729afb60352cbc306",
|
||||
"extract_command": "docker cp extract:/home/user/target backend/target; docker cp extract:/home/user/nitro-legacy backend/nitro-legacy; docker cp extract:/usr/local/bin/nitro backend/nitro",
|
||||
"exclude_files": [],
|
||||
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/arbitrum_nova_exec.sh 2>> {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
||||
"exec_script": "arbitrum_nova.sh",
|
||||
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
||||
"postinst_script_template": "openssl rand -hex 32 > {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/jwtsecret",
|
||||
"service_type": "simple",
|
||||
"service_additional_params_template": "",
|
||||
"protect_memory": true,
|
||||
"mainnet": true,
|
||||
"server_config_file": "",
|
||||
"client_config_file": ""
|
||||
},
|
||||
"blockbook": {
|
||||
"package_name": "blockbook-arbitrum-nova",
|
||||
"system_user": "blockbook-arbitrum",
|
||||
"internal_binding_template": ":{{.Ports.BlockbookInternal}}",
|
||||
"public_binding_template": ":{{.Ports.BlockbookPublic}}",
|
||||
"explorer_url": "",
|
||||
"additional_params": "",
|
||||
"block_chain": {
|
||||
"parse": true,
|
||||
"mempool_workers": 8,
|
||||
"mempool_sub_workers": 2,
|
||||
"block_addresses_to_keep": 300,
|
||||
"additional_params": {
|
||||
"mempoolTxTimeoutHours": 48,
|
||||
"queryBackendOnMempoolResync": false,
|
||||
"fiat_rates": "coingecko",
|
||||
"fiat_rates_vs_currencies": "AED,ARS,AUD,BDT,BHD,BMD,BRL,CAD,CHF,CLP,CNY,CZK,DKK,EUR,GBP,HKD,HUF,IDR,ILS,INR,JPY,KRW,KWD,LKR,MMK,MXN,MYR,NGN,NOK,NZD,PHP,PKR,PLN,RUB,SAR,SEK,SGD,THB,TRY,TWD,UAH,USD,VEF,VND,ZAR,BTC,ETH",
|
||||
"fiat_rates_params": "{\"url\": \"https://api.coingecko.com/api/v3\", \"coin\": \"ethereum\",\"platformIdentifier\": \"ethereum\",\"platformVsCurrency\": \"eth\",\"periodSeconds\": 900}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"meta": {
|
||||
"package_maintainer": "IT",
|
||||
"package_maintainer_email": "it@satoshilabs.com"
|
||||
}
|
||||
}
|
||||
67
configs/coins/arbitrum_nova_archive.json
Normal file
67
configs/coins/arbitrum_nova_archive.json
Normal file
@ -0,0 +1,67 @@
|
||||
{
|
||||
"coin": {
|
||||
"name": "Arbitrum Nova Archive",
|
||||
"shortcut": "ETH",
|
||||
"label": "Arbitrum Nova",
|
||||
"alias": "arbitrum_nova_archive"
|
||||
},
|
||||
"ports": {
|
||||
"backend_rpc": 8308,
|
||||
"backend_p2p": 38408,
|
||||
"blockbook_internal": 9208,
|
||||
"blockbook_public": 9308
|
||||
},
|
||||
"ipc": {
|
||||
"rpc_url_template": "ws://127.0.0.1:{{.Ports.BackendRPC}}",
|
||||
"rpc_timeout": 25
|
||||
},
|
||||
"backend": {
|
||||
"package_name": "backend-arbitrum-nova-archive",
|
||||
"package_revision": "satoshilabs-1",
|
||||
"system_user": "arbitrum",
|
||||
"version": "3.2.1",
|
||||
"docker_image": "offchainlabs/nitro-node:v3.2.1-d81324d",
|
||||
"verification_type": "docker",
|
||||
"verification_source": "724ebdcca39cd0c28ffd025ecea8d1622a376f41344201b729afb60352cbc306",
|
||||
"extract_command": "docker cp extract:/home/user/target backend/target; docker cp extract:/home/user/nitro-legacy backend/nitro-legacy; docker cp extract:/usr/local/bin/nitro backend/nitro",
|
||||
"exclude_files": [],
|
||||
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/arbitrum_nova_archive_exec.sh 2>> {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
||||
"exec_script": "arbitrum_nova_archive.sh",
|
||||
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
||||
"postinst_script_template": "openssl rand -hex 32 > {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/jwtsecret",
|
||||
"service_type": "simple",
|
||||
"service_additional_params_template": "",
|
||||
"protect_memory": true,
|
||||
"mainnet": true,
|
||||
"server_config_file": "",
|
||||
"client_config_file": ""
|
||||
},
|
||||
"blockbook": {
|
||||
"package_name": "blockbook-arbitrum-nova-archive",
|
||||
"system_user": "blockbook-arbitrum",
|
||||
"internal_binding_template": ":{{.Ports.BlockbookInternal}}",
|
||||
"public_binding_template": ":{{.Ports.BlockbookPublic}}",
|
||||
"explorer_url": "",
|
||||
"additional_params": "-workers=16",
|
||||
"block_chain": {
|
||||
"parse": true,
|
||||
"mempool_workers": 8,
|
||||
"mempool_sub_workers": 2,
|
||||
"block_addresses_to_keep": 600,
|
||||
"additional_params": {
|
||||
"address_aliases": true,
|
||||
"mempoolTxTimeoutHours": 48,
|
||||
"processInternalTransactions": true,
|
||||
"queryBackendOnMempoolResync": false,
|
||||
"fiat_rates": "coingecko",
|
||||
"fiat_rates_vs_currencies": "AED,ARS,AUD,BDT,BHD,BMD,BRL,CAD,CHF,CLP,CNY,CZK,DKK,EUR,GBP,HKD,HUF,IDR,ILS,INR,JPY,KRW,KWD,LKR,MMK,MXN,MYR,NGN,NOK,NZD,PHP,PKR,PLN,RUB,SAR,SEK,SGD,THB,TRY,TWD,UAH,USD,VEF,VND,ZAR,BTC,ETH",
|
||||
"fiat_rates_params": "{\"url\": \"https://api.coingecko.com/api/v3\", \"coin\": \"ethereum\",\"platformIdentifier\": \"ethereum\",\"platformVsCurrency\": \"eth\",\"periodSeconds\": 900}",
|
||||
"fourByteSignatures": "https://www.4byte.directory/api/v1/signatures/"
|
||||
}
|
||||
}
|
||||
},
|
||||
"meta": {
|
||||
"package_maintainer": "IT",
|
||||
"package_maintainer_email": "it@satoshilabs.com"
|
||||
}
|
||||
}
|
||||
@ -55,6 +55,10 @@
|
||||
| Avalanche Archive | 9199 | 9099 | 8099 | 38399 p2p |
|
||||
| Optimism | 9300 | 9200 | 8200 | 38400 p2p, 8300 http, 8400 authrpc |
|
||||
| Optimism Archive | 9302 | 9202 | 8202 | 38402 p2p, 8302 http, 8402 authrpc |
|
||||
| Arbitrum | 9305 | 9205 | 8205 | 38405 p2p, 8305 http |
|
||||
| Arbitrum Archive | 9306 | 9206 | 8306 | 38406 p2p |
|
||||
| Arbitrum Nova | 9307 | 9207 | 8207 | 38407 p2p, 8307 http |
|
||||
| Arbitrum Nova Archive | 9308 | 9208 | 8308 | 38408 p2p |
|
||||
| Ethereum Testnet Holesky | 19116 | 19016 | 18016 | 18116 http, 18516 authrpc, 48316 p2p |
|
||||
| Bitcoin Signet | 19120 | 19020 | 18020 | 48320 |
|
||||
| Bitcoin Regtest | 19121 | 19021 | 18021 | 48321 |
|
||||
|
||||
Loading…
Reference in New Issue
Block a user