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
|
BIN_IMAGE = blockbook-build
|
||||||
DEB_IMAGE = blockbook-build-deb
|
DEB_IMAGE = blockbook-build-deb
|
||||||
PACKAGER = $(shell id -u):$(shell id -g)
|
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 '"')
|
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
|
NO_CACHE = false
|
||||||
TCMALLOC =
|
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)"
|
docker run -t --rm -e PACKAGER=$(PACKAGER) -v "$(CURDIR):/src" --network="host" $(BIN_IMAGE) make test-all ARGS="$(ARGS)"
|
||||||
|
|
||||||
deb-backend-%: .deb-image
|
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
|
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)
|
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
|
.deb-image: .bin-image
|
||||||
@if [ $$(build/tools/image_status.sh $(DEB_IMAGE):latest build/docker) != "ok" ]; then \
|
@if [ $$(build/tools/image_status.sh $(DEB_IMAGE):latest build/docker) != "ok" ]; then \
|
||||||
echo "Building image $(DEB_IMAGE)..."; \
|
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 \
|
else \
|
||||||
echo "Image $(DEB_IMAGE) is up to date"; \
|
echo "Image $(DEB_IMAGE) is up to date"; \
|
||||||
fi
|
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/juju/errors"
|
||||||
"github.com/trezor/blockbook/bchain"
|
"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/avalanche"
|
||||||
"github.com/trezor/blockbook/bchain/coins/bch"
|
"github.com/trezor/blockbook/bchain/coins/bch"
|
||||||
"github.com/trezor/blockbook/bchain/coins/bellcoin"
|
"github.com/trezor/blockbook/bchain/coins/bellcoin"
|
||||||
@ -142,6 +143,10 @@ func init() {
|
|||||||
BlockChainFactories["Polygon Archive"] = polygon.NewPolygonRPC
|
BlockChainFactories["Polygon Archive"] = polygon.NewPolygonRPC
|
||||||
BlockChainFactories["Optimism"] = optimism.NewOptimismRPC
|
BlockChainFactories["Optimism"] = optimism.NewOptimismRPC
|
||||||
BlockChainFactories["Optimism Archive"] = 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
|
// 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 install -y devscripts debhelper make dh-exec zstd && \
|
||||||
apt-get clean
|
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
|
ADD gpg-keys /tmp/gpg-keys
|
||||||
RUN gpg --batch --import /tmp/gpg-keys/*
|
RUN gpg --batch --import /tmp/gpg-keys/*
|
||||||
|
|
||||||
|
|||||||
@ -2,6 +2,16 @@
|
|||||||
ARCHIVE := $(shell basename {{.Backend.BinaryURL}})
|
ARCHIVE := $(shell basename {{.Backend.BinaryURL}})
|
||||||
|
|
||||||
all:
|
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}}
|
wget {{.Backend.BinaryURL}}
|
||||||
{{- if eq .Backend.VerificationType "gpg"}}
|
{{- if eq .Backend.VerificationType "gpg"}}
|
||||||
wget {{.Backend.VerificationSource}} -O checksum
|
wget {{.Backend.VerificationSource}} -O checksum
|
||||||
@ -13,8 +23,8 @@ all:
|
|||||||
{{- else if eq .Backend.VerificationType "sha256"}}
|
{{- else if eq .Backend.VerificationType "sha256"}}
|
||||||
[ "$$(sha256sum ${ARCHIVE} | cut -d ' ' -f 1)" = "{{.Backend.VerificationSource}}" ]
|
[ "$$(sha256sum ${ARCHIVE} | cut -d ' ' -f 1)" = "{{.Backend.VerificationSource}}" ]
|
||||||
{{- end}}
|
{{- end}}
|
||||||
mkdir backend
|
|
||||||
{{.Backend.ExtractCommand}} ${ARCHIVE}
|
{{.Backend.ExtractCommand}} ${ARCHIVE}
|
||||||
|
{{- end}}
|
||||||
{{- if .Backend.ExcludeFiles}}
|
{{- if .Backend.ExcludeFiles}}
|
||||||
# generated from exclude_files
|
# generated from exclude_files
|
||||||
{{- range $index, $name := .Backend.ExcludeFiles}}
|
{{- 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"`
|
SystemUser string `json:"system_user"`
|
||||||
Version string `json:"version"`
|
Version string `json:"version"`
|
||||||
BinaryURL string `json:"binary_url"`
|
BinaryURL string `json:"binary_url"`
|
||||||
|
DockerImage string `json:"docker_image"`
|
||||||
VerificationType string `json:"verification_type"`
|
VerificationType string `json:"verification_type"`
|
||||||
VerificationSource string `json:"verification_source"`
|
VerificationSource string `json:"verification_source"`
|
||||||
ExtractCommand string `json:"extract_command"`
|
ExtractCommand string `json:"extract_command"`
|
||||||
@ -204,6 +205,7 @@ func LoadConfig(configsDir, coin string) (*Config, error) {
|
|||||||
case "gpg":
|
case "gpg":
|
||||||
case "sha256":
|
case "sha256":
|
||||||
case "gpg-sha256":
|
case "gpg-sha256":
|
||||||
|
case "docker":
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("Invalid verification type: %s", config.Backend.VerificationType)
|
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 |
|
| Avalanche Archive | 9199 | 9099 | 8099 | 38399 p2p |
|
||||||
| Optimism | 9300 | 9200 | 8200 | 38400 p2p, 8300 http, 8400 authrpc |
|
| Optimism | 9300 | 9200 | 8200 | 38400 p2p, 8300 http, 8400 authrpc |
|
||||||
| Optimism Archive | 9302 | 9202 | 8202 | 38402 p2p, 8302 http, 8402 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 |
|
| Ethereum Testnet Holesky | 19116 | 19016 | 18016 | 18116 http, 18516 authrpc, 48316 p2p |
|
||||||
| Bitcoin Signet | 19120 | 19020 | 18020 | 48320 |
|
| Bitcoin Signet | 19120 | 19020 | 18020 | 48320 |
|
||||||
| Bitcoin Regtest | 19121 | 19021 | 18021 | 48321 |
|
| Bitcoin Regtest | 19121 | 19021 | 18021 | 48321 |
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user