Alpen full node operator guide
Prerequisites
Before you begin, ensure you have met the following requirements:
Docker: Make sure Docker is installed on your machine. You can download it from here.
Docker Compose: Ensure Docker Compose is installed. It typically comes bundled with Docker Desktop.
Git: To clone the repository. Download from here.
Installation
Follow these steps to set up and run the project.
1. Clone the alpen repository
alpen repositorygit clone https://github.com/alpenlabs/alpen.git
cd alpen
git checkout releases/0.2.0
cd docker2. Configure environment variables
Create a .env file in the docker/ directory of the repository with the following contents:
Testnet .env Content:
# signet
SIGNETCHALLENGE=001471cb548371eb2e30773b843046e2c18665fd98b5
ADDNODE=bitcoin.pectra-testnet.alpenlabs.io
# reth
JWTSECRET=/app/configs/jwt.hexFullnode must use the provided .env to connect to and sync from alpen testnet chain.
3. Configure parameters
Create a params.json file in the configs directory with the following contents.
{
"rollup_name": "alpn",
"block_time": 5000,
"da_tag": "strata-da",
"checkpoint_tag": "strata-ckpt",
"cred_rule": {
"schnorr_key": "b390b7eff2f5de1a3d6a32dd8cc613ee00da16e860a47fd18d4c48e5a4b7a5d7"
},
"horizon_l1_height": 90,
"genesis_l1_height": 100,
"operator_config": {
"static": [
{
"signing_pk": "73d5bb0995cd5f3e799f56646dd54195d4f9d6c56a70a37a4a5d79390eae1c8a",
"wallet_pk": "0xa4d54276304e60f2b22b77c37b0c1a8f59168f83a07bf75e8fa6cf9b7bf85da5"
},
{
"signing_pk": "d644794228df8782bd7ecc238887dba9d062b9f429537291d310c5dc6ffc592d",
"wallet_pk": "0x0d85503c7e8522025ec87523de9ba2a5f66ca75c428807bcc9fe1e49cb7866b7"
},
{
"signing_pk": "d644794228df8782bd7ecc238887dba9d062b9f429537291d310c5dc6ffc592a",
"wallet_pk": "0x879d70c1c4864731c370d3dbbbfb2a1c29670499d2437e38aadb6a6cb8d36f0b"
},
{
"signing_pk": "d644794228df8782bd7ecc238887dba9d062b9f429537291d310c5dc6ffc592e",
"wallet_pk": "0x55dd05dc6e7a4684eb550140af6da03a9c87359668912836f27511f2959b5aa7"
}
]
},
"evm_genesis_block_hash": "0102272379ba01273f82eb5ad1b00d2616458ad308efdfe4a6cc3012c9d3447a",
"evm_genesis_block_state_root": "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
"l1_reorg_safe_depth": 4,
"target_l2_batch_size": 64,
"address_length": 20,
"deposit_amount": 1000000000,
"rollup_vk": {
"sp1": "00271dfa665204ccb604a8601dd6cb7ae6b4ae4c27e4fc861aa12cdf952272e5"
},
"dispatch_assignment_dur": 64,
"proof_publish_mode": {"timeout":10800},
"max_deposits_in_block": 16,
"network": "signet"
}Full node must use the provided params.json to be in consensus with the strata testnet chain.
4. Generate keys
Generate jwt.hex inside configs directory file with jwt keys. This is used for authentication between alpen-reth and alpen-client for engine-api auth-rpc.
od -An -tx1 -N32 /dev/urandom | tr -d ' \n' > configs/jwt.hexRunning the services
Once you have configured the environment and generated the necessary keys, you can start the services using Docker Compose.
docker compose -f docker-compose-fullnode.yml up -dMake sure you have correctly installed docker and docker is up and running.
Initial sync can take several hours based on network latency and machine load. The sync status can be checked using an rpc call to strata_syncStatus method:
curl --location 'localhost:8432' \
--header 'Content-Type: application/json' \
--data '{
"jsonrpc":"2.0",
"method":"strata_syncStatus",
"params":[],
"id": 1
}'Pairing with a local wallet
If your wallet supports connecting to custom EVM networks, then you can connect your wallet to your Alpen full node to view your account balance and send transactions.
Click the button in your wallet that enables you to add a custom network
Enter the following values:
Network name: Alpen Testnet
Default RPC URL: http://localhost:8545
Chain ID: x
Currency symbol: sBTC
Block explorer URL: https://explorer.pectra-testnet.alpenlabs.io
Troubleshooting
Service fails to start:
Ensure all environment variables in
.envare correctly set.Verify that
params.jsonis correctly placed in theconfigsdirectory.Check Docker logs for more details:
docker compose -f docker-compose-fullnode.yml logs -fPorts already in use:
If any of the specified ports are already in use, either stop the conflicting service or modify the port mappings in the
docker-compose.ymlfile.
Client cannot connect to bitcoin node and exits:
Make sure the environment variables in
.envare correctly set as in step 2.Bitcoin node probably started later than the client. Make sure bitcoin node has started and then restart
client.
Initial Sync does not make progress or fails
Check that the urls provided in
.envare accessible from the machine.If
FATAL ERROR: block not found:is seen in theclientlogs after restart, deletedata/rethanddata/stratadirectories and restart.
If nothing else seems to work
Stop all the containers:
docker compose -f docker-compose-fullnode.yml downDelete the
datadirectory and restart the containers:docker compose -f docker compose-fullnode.yml up
Last updated