Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add arbitrum orbit nodes configurable by users #554

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions src/common/NodeSpecs/arbitrum-orbit/arbitrum-orbit-v1.0.0.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
{
"specId": "arbitrum-orbit",
"version": "1.0.0",
"displayName": "Arbitrum Orbit",
"displayTagline": "Non-Validating Node",
"execution": {
"executionTypes": ["nodePackage"],
"defaultExecutionType": "nodePackage",
"services": [
{
"serviceId": "executionClient",
"name": "Execution Client",
"nodeOptions": ["nitro-orbit"],
"required": true
}
]
},
"category": "Ethereum/L2",
"rpcTranslation": "eth-l1",
"systemRequirements": {
"documentationUrl": "https://docs.arbitrum.io/node-running/how-tos/running-an-orbit-node#prerequisites",
"cpu": {
"cores": 4
},
"memory": {
"minSizeGBs": 8
},
"storage": {
"minSizeGBs": 200,
"ssdRequired": true
},
"internet": {
"minDownloadSpeedMbps": 25,
"minUploadSpeedMbps": 10
}
},
"configTranslation": {},
"addNodeDescription": "Designed with you in mind, Arbitrum is the leading Layer 2 technology that empowers you to explore and build in the largest Layer 1 ecosystem, Ethereum.",
"description": "Designed with you in mind, Arbitrum is the leading Layer 2 technology that empowers you to explore and build in the largest Layer 1 ecosystem, Ethereum. Take it to the next layer with Nitro. Making Ethereum more inclusive and sustainable, Nitro is the most advanced blockchain scaling technology in the industry."
}
245 changes: 245 additions & 0 deletions src/common/NodeSpecs/nitro-orbit/nitro-orbit-v1.0.0.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,245 @@
{
"specId": "nitro-orbit",
"version": "1.0.0",
"displayName": "Arbitrum Nitro Orbit",
"execution": {
"executionTypes": ["docker"],
"defaultExecutionType": "docker",
"imageName": "docker.io/offchainlabs/nitro-node",
"defaultImageTag": "v2.3.3-6a1c1a7",
"input": {
"defaultConfig": {
"parentChainRpcUrl": "",
"httpAddress": "0.0.0.0",
"httpPort": "8547",
"httpCorsDomains": "http://localhost",
"httpVirtualHosts": "localhost,host.containers.internal",
"logLevel": "Info"
},
"docker": {
"containerVolumePath": "/home/user/.arbitrum",
"raw": "",
"forcedRawNodeInput": ""
}
},
"dependencies": ["L1/ExecutionClient"]
},
"category": "Ethereum/L2",
"rpcTranslation": "eth-l2",
"systemRequirements": {
"documentationUrl": "https://docs.arbitrum.io/node-running/how-tos/running-a-full-node#minimum-hardware-configuration",
"cpu": {
"cores": 4
},
"memory": {
"minSizeGBs": 8
},
"storage": {
"minSizeGBs": 1600,
"ssdRequired": true
},
"internet": {
"minDownloadSpeedMbps": 25,
"minUploadSpeedMbps": 10
},
"docker": {
"required": true
}
},
"configTranslation": {
"parentChainRpcUrl": {
"displayName": "Ethereum Mainnet RPC Endpoint",
"cliConfigPrefix": "--parent-chain.connection.url=",
"defaultValue": "",
"uiControl": {
"type": "text"
},
"addNodeFlow": "required",
"infoDescription": "Parent chain endpoint. Eth L1, Arb L2, or other! Local node like http://host.containers.internal:8545 or provider."
},
"orbitChainInfoJson": {
"displayName": "Orbit Chain Info",
"cliConfigPrefix": "--chain.info-json=",
"defaultValue": "",
"uiControl": {
"type": "text"
},
"addNodeFlow": "required",
"infoDescription": "A JSON string that contains required information about the Orbit chain."
},
"chainName": {
"displayName": "Orbit Chain Name",
"cliConfigPrefix": "--chain.name=",
"defaultValue": "",
"uiControl": {
"type": "text"
},
"addNodeFlow": "required",
"infoDescription": "It needs to exactly match the chain name used in the chain info JSON string."
},
"anyTrustChain": {
"displayName": "Is the Orbit chain an AnyTrust chain?",
"uiControl": {
"type": "select/single",
"controlTranslations": [
{
"value": "Yes",
"config": "--node.data-availability.enable"
},
{
"value": "No"
}
]
},
"addNodeFlow": "required",
"defaultValue": "No"
},
"anyTrustRestAggregatorUrls": {
"displayName": "AnyTrust Rest Aggregator Urls",
"cliConfigPrefix": "--node.data-availability.rest-aggregator.urls=",
"defaultValue": "",
"uiControl": {
"type": "text"
},
"addNodeFlow": "advanced",
"infoDescription": "A list of DAS REST endpoints (comma separated urls)"
},
"anyTrustRestAggregatorOnlineUrlList": {
"displayName": "AnyTrust Rest Aggregator Online Url List",
"cliConfigPrefix": "--node.data-availability.rest-aggregator.online-url-list=",
"defaultValue": "",
"uiControl": {
"type": "text"
},
"addNodeFlow": "advanced",
"infoDescription": "A url that returns a list of the DAS REST endpoints."
},
"httpAddress": {
"displayName": "HTTP-RPC server listening interface",
"cliConfigPrefix": "--http.addr=",
"defaultValue": "0.0.0.0",
"uiControl": {
"type": "text"
},
"documentation": "https://geth.ethereum.org/docs/rpc/server#http-server"
},
"httpPort": {
"displayName": "HTTP-RPC server listening port",
"cliConfigPrefix": "--http.port=",
"defaultValue": "8547",
"uiControl": {
"type": "text"
},
"documentation": "https://geth.ethereum.org/docs/rpc/server#http-server"
},
"httpVirtualHosts": {
"displayName": "HTTP RPC virtual hostnames list",
"cliConfigPrefix": "--http.vhosts=",
"defaultValue": "localhost,host.containers.internal",
"uiControl": {
"type": "text"
},
"infoDescription": "Comma separated list of virtual hostnames from which to accept authentication requests for engine api's (server enforced). Accepts '*' wildcard. Default value (localhost)"
},
"websockets": {
"displayName": "rpc websocket connections (*BeaconNodes may require websocket connections)",
"uiControl": {
"type": "select/single",
"controlTranslations": [
{
"value": "Enabled",
"config": "--ws"
},
{
"value": "Disabled"
}
]
},
"defaultValue": "Disabled"
},
"logLevel": {
"displayName": "Log level",
"cliConfigPrefix": "--log-level=",
"uiControl": {
"type": "select/single",
"controlTranslations": [
{
"value": "Info",
"config": "3"
},
{
"value": "Warn",
"config": "2"
},
{
"value": "Error",
"config": "1"
},
{
"value": "Trace",
"config": "5"
},
{
"value": "Debug",
"config": "4"
},
{
"value": "Fatal",
"config": "0"
}
]
},
"addNodeFlow": "advanced",
"defaultValue": "Info"
},
"httpApis": {
"displayName": "Enabled HTTP APIs",
"cliConfigPrefix": "--http.api=",
"defaultValue": "eth,net,web3,debug",
"valuesJoinStr": ",",
"uiControl": {
"type": "select/multiple",
"controlTranslations": [
{
"value": "eth",
"config": "Eth"
},
{
"value": "net",
"config": "Net"
},
{
"value": "web3",
"config": "Web3"
},
{
"value": "debug",
"config": "Debug"
},

{
"value": "personal",
"config": "Personal"
},
{
"value": "admin",
"config": "Admin"
}
]
}
},
"httpCorsDomains": {
"displayName": "HTTP-RPC CORS domains",
"cliConfigPrefix": "--http.corsdomain=",
"defaultValue": "*",
"uiControl": {
"type": "text"
},
"infoDescription": "Change where the node accepts http connections (use comma separated urls)"
}
},
"documentation": {
"default": "https://docs.arbitrum.io/node-running/how-tos/running-an-orbit-node"
},
"iconUrl": "https://arbitrum.io/wp-content/uploads/2021/08/Arbitrum_Symbol-Full-color-White-background-937x1024.png"
}
Loading