diff --git a/go.mod b/go.mod index caf2c90428845..7a3fc167555a0 100644 --- a/go.mod +++ b/go.mod @@ -221,7 +221,6 @@ require ( github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7 // indirect github.com/pierrec/lz4 v2.6.1+incompatible // indirect - github.com/pierrec/lz4/v4 v4.1.15 // indirect github.com/pion/datachannel v1.5.8 // indirect github.com/pion/dtls/v2 v2.2.12 // indirect github.com/pion/ice/v2 v2.3.34 // indirect @@ -253,7 +252,6 @@ require ( github.com/rs/cors v1.11.0 // indirect github.com/rs/xid v1.6.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect - github.com/segmentio/kafka-go v0.4.47 // indirect github.com/sethvargo/go-envconfig v1.1.0 // indirect github.com/shirou/gopsutil v3.21.11+incompatible // indirect github.com/shirou/gopsutil/v4 v4.24.6 // indirect diff --git a/go.sum b/go.sum index 18d5052e18c59..346cbf2b8863b 100644 --- a/go.sum +++ b/go.sum @@ -478,7 +478,6 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= github.com/klauspost/compress v1.4.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= -github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= @@ -697,8 +696,6 @@ github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7 h1:oYW+YCJ1pachXTQm github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0= github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9FV9ix19jjM= github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= -github.com/pierrec/lz4/v4 v4.1.15 h1:MO0/ucJhngq7299dKLwIMtgTfbkoSPF6AoMYDd8Q4q0= -github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= github.com/pion/datachannel v1.5.8 h1:ph1P1NsGkazkjrvyMfhRBUAWMxugJjq2HfQifaOoSNo= @@ -818,8 +815,6 @@ github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/schollz/progressbar/v3 v3.18.0 h1:uXdoHABRFmNIjUfte/Ex7WtuyVslrw2wVPQmCN62HpA= github.com/schollz/progressbar/v3 v3.18.0/go.mod h1:IsO3lpbaGuzh8zIMzgY3+J8l4C8GjO0Y9S69eFvNsec= -github.com/segmentio/kafka-go v0.4.47 h1:IqziR4pA3vrZq7YdRxaT3w1/5fvIH5qpCwstUanQQB0= -github.com/segmentio/kafka-go v0.4.47/go.mod h1:HjF6XbOKh0Pjlkr5GVZxt6CsjjwnmhVOfURM5KMd8qg= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sethvargo/go-envconfig v1.1.0 h1:cWZiJxeTm7AlCvzGXrEXaSTCNgip5oJepekh/BOQuog= github.com/sethvargo/go-envconfig v1.1.0/go.mod h1:JLd0KFWQYzyENqnEPWWZ49i4vzZo/6nRidxI8YvGiHw= @@ -914,12 +909,6 @@ github.com/viant/toolbox v0.24.0/go.mod h1:OxMCG57V0PXuIP2HNQrtJf2CjqdmbrOx5EkMI github.com/wlynxg/anet v0.0.3/go.mod h1:eay5PRQr7fIVAMbTbchTnO9gG65Hg/uYGdc7mguHxoA= github.com/wlynxg/anet v0.0.4 h1:0de1OFQxnNqAu+x2FAKKCVIrnfGKQbs7FQz++tB0+Uw= github.com/wlynxg/anet v0.0.4/go.mod h1:eay5PRQr7fIVAMbTbchTnO9gG65Hg/uYGdc7mguHxoA= -github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= -github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= -github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY= -github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3kKLN4= -github.com/xdg-go/stringprep v1.0.4 h1:XLI/Ng3O1Atzq0oBs3TWm+5ZVgkq2aqdlvP9JtoZ6c8= -github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM= github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 h1:nIPpBwaJSVYIxUFsDv3M8ofmx9yWTog9BfvIu0q41lo= github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8/go.mod h1:HUYIGzjTL3rfEspMxjDjgmT5uz5wzYJKVo23qUhYTos= github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4= @@ -1006,7 +995,6 @@ golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs= golang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ= @@ -1061,7 +1049,6 @@ golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/net v0.36.0 h1:vWF2fRbw4qslQsQzgFqZff+BItCvGFQqKzKIzx1rmoA= golang.org/x/net v0.36.0/go.mod h1:bFmbeoIPfrw4sMHNhb4J9f6+tPziuGjq7Jk/38fxi1I= @@ -1144,7 +1131,6 @@ golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= @@ -1156,7 +1142,6 @@ golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= -golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/term v0.29.0 h1:L6pJp37ocefwRRtYPKSWOWzOtWSxVajvz2ldH/xi3iU= golang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s= @@ -1171,7 +1156,6 @@ golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= diff --git a/op-geth b/op-geth index bba6de2a6e0fe..bd2d545f04afe 160000 --- a/op-geth +++ b/op-geth @@ -1 +1 @@ -Subproject commit bba6de2a6e0fe64c5aba5aa97f995be9f92c1b9d +Subproject commit bd2d545f04afe16589ce70fe3d51086e4e5b4203 diff --git a/test/3-op-init.sh b/test/3-op-init.sh index 0810cbd95f096..bd8659cf39a34 100755 --- a/test/3-op-init.sh +++ b/test/3-op-init.sh @@ -20,10 +20,10 @@ if [ -z "$FORK_BLOCK" ]; then fi FORK_BLOCK_HEX=$(printf "0x%x" "$FORK_BLOCK") -sed_inplace '/"config": {/,/}/ s/"optimism": {/"legacyXLayerBlock": '"$((FORK_BLOCK + 1))"',\n "optimism": {/' ./config-op/genesis.json +sed_inplace 's/"number": "0x0"/"number": "'"$FORK_BLOCK_HEX"'"/' ./config-op/genesis.json sed_inplace 's/"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000"/"parentHash": "'"$PARENT_HASH"'"/' ./config-op/genesis.json sed_inplace '/"70997970c51812dc3a010c7d01b50e0d17dc79c8": {/,/}/ s/"balance": "[^"]*"/"balance": "0x446c3b15f9926687d2c40534fdb564000000000000"/' config-op/genesis.json -sed_inplace 's/"number": 0/"number": '"$((FORK_BLOCK + 1))"'/' ./config-op/rollup.json +sed_inplace 's/"number": 0/"number": '"$FORK_BLOCK"'/' ./config-op/rollup.json # Extract contract addresses from state.json and update .env file echo "🔧 Extracting contract addresses from state.json..." @@ -120,33 +120,13 @@ docker compose run --no-deps --rm \ --state.scheme=hash \ /genesis.json 2>&1 | tee init.log -# Start op-geth-seq to get the block hash at FORK_BLOCK+1 -echo "🚀 Starting op-geth-seq to get block hash at FORK_BLOCK+1..." -docker compose up -d op-geth-seq - -# Wait for op-geth-seq to be ready -echo "⏳ Waiting for op-geth-seq to be ready..." -sleep 20 -set +x -# Get the block hash at FORK_BLOCK+1 -TARGET_BLOCK=$((FORK_BLOCK + 1)) -echo "🔍 Getting block hash at block number: $TARGET_BLOCK" -NEW_BLOCK_HASH=$(curl -s -X POST -H "Content-Type: application/json" --data "{\"jsonrpc\":\"2.0\",\"method\":\"eth_getBlockByNumber\",\"params\":[\"0x$(printf "%x" $TARGET_BLOCK)\",false],\"id\":1}" http://localhost:8123 | jq -r '.result.hash' 2>/dev/null) -echo "New block hash: $NEW_BLOCK_HASH" -if [ -z "$NEW_BLOCK_HASH" ] || [ "$NEW_BLOCK_HASH" = "null" ] || [ "$NEW_BLOCK_HASH" = "undefined" ]; then - echo " ❌ Failed to get block hash at block $TARGET_BLOCK" - echo "Please check if op-geth-seq is running and has produced enough blocks" - docker compose logs op-geth-seq --tail=20 +# update genesis block hash in rollup.json +NEW_BLOCK_HASH=$(grep "Successfully wrote genesis state" init.log | jq -r .hash) +if [ -z "$NEW_BLOCK_HASH" ] || [ "$NEW_BLOCK_HASH" = "null" ]; then + echo " ❌ Failed to extract genesis block hash from init.log" + echo "Please check if op-geth-seq initialization was successful" exit 1 fi -set -x - -echo " ✅ Got block hash at block $TARGET_BLOCK: $NEW_BLOCK_HASH" - -# Stop op-geth-seq after getting the hash -docker compose stop op-geth-seq - -# update genesis block hash in rollup.json jq ".genesis.l2.hash = \"$NEW_BLOCK_HASH\"" config-op/rollup.json > config-op/rollup.json.tmp mv config-op/rollup.json.tmp config-op/rollup.json @@ -157,9 +137,17 @@ echo " 🔄 Copying database from op-geth-seq to op-geth-rpc..." rm -rf "$OP_GETH_RPC_DATADIR" cp -r "$OP_GETH_DATADIR" "$OP_GETH_RPC_DATADIR" -# Remove nodekey to ensure op-geth-rpc generates a unique node ID -echo " 🔑 Removing nodekey to generate unique node ID for op-geth-rpc..." -rm -f "$OP_GETH_RPC_DATADIR/geth/nodekey" +if [ "$CONDUCTOR_ENABLED" = "true" ]; then + echo " 🔄 Copying database from op-geth-seq to op-geth-seq2..." + OP_GETH_SEQ2_DATADIR="$(pwd)/data/op-geth-seq2" + rm -rf "$OP_GETH_SEQ2_DATADIR" + cp -r "$OP_GETH_DATADIR" "$OP_GETH_SEQ2_DATADIR" + + echo " 🔄 Copying database from op-geth-seq to op-geth-seq3..." + OP_GETH_SEQ3_DATADIR="$(pwd)/data/op-geth-seq3" + rm -rf "$OP_GETH_SEQ3_DATADIR" + cp -r "$OP_GETH_DATADIR" "$OP_GETH_SEQ3_DATADIR" +fi if [ "$CONDUCTOR_ENABLED" = "true" ]; then diff --git a/test/4-op-start-service.sh b/test/4-op-start-service.sh index f071074e1bf6c..0def0d5470937 100755 --- a/test/4-op-start-service.sh +++ b/test/4-op-start-service.sh @@ -32,97 +32,6 @@ fi sleep 10 -# Setup P2P static connections between op-geth nodes -echo "🔗 Setting up P2P static connections between op-geth nodes..." - -# Function to get enode from a geth container -get_enode() { - local container_name=$1 - local rpc_port=$2 - local enode=$(docker exec $container_name geth attach --exec "admin.nodeInfo.enode" --datadir /datadir 2>/dev/null | tr -d '"') - echo "$enode" -} - -# Function to replace 127.0.0.1 with container name in enode -replace_enode_ip() { - local enode=$1 - local container_name=$2 - echo "$enode" | sed "s/@127.0.0.1:/@$container_name:/" -} - -# Get enodes for all op-geth containers -echo "📡 Getting enode addresses..." - -# Get enodes -OP_GETH_SEQ_ENODE=$(get_enode "op-geth-seq" "8545") -OP_GETH_RPC_ENODE=$(get_enode "op-geth-rpc" "8545") - -if [ "$CONDUCTOR_ENABLED" = "true" ]; then - OP_GETH_SEQ2_ENODE=$(get_enode "op-geth-seq2" "8545") - OP_GETH_SEQ3_ENODE=$(get_enode "op-geth-seq3" "8545") -fi - -# Replace 127.0.0.1 with container names -OP_GETH_SEQ_ENODE=$(replace_enode_ip "$OP_GETH_SEQ_ENODE" "op-geth-seq") -OP_GETH_RPC_ENODE=$(replace_enode_ip "$OP_GETH_RPC_ENODE" "op-geth-rpc") - -if [ "$CONDUCTOR_ENABLED" = "true" ]; then - OP_GETH_SEQ2_ENODE=$(replace_enode_ip "$OP_GETH_SEQ2_ENODE" "op-geth-seq2") - OP_GETH_SEQ3_ENODE=$(replace_enode_ip "$OP_GETH_SEQ3_ENODE" "op-geth-seq3") -fi - -echo "✅ Enode addresses:" -echo " op-geth-seq: $OP_GETH_SEQ_ENODE" -echo " op-geth-rpc: $OP_GETH_RPC_ENODE" -if [ "$CONDUCTOR_ENABLED" = "true" ]; then - echo " op-geth-seq2: $OP_GETH_SEQ2_ENODE" - echo " op-geth-seq3: $OP_GETH_SEQ3_ENODE" -fi - -# Function to add peer to a geth container -add_peer() { - local container_name=$1 - local peer_enode=$2 - echo "🔗 Adding peer to $container_name: $peer_enode" - docker exec $container_name geth attach --exec "admin.addPeer('$peer_enode')" --datadir /datadir 2>/dev/null -} - -# Setup static connections between sequencer nodes -echo "🔗 Setting up static connections between sequencer nodes..." - -# Add peers to op-geth-seq (connect to other sequencers) -echo "🔗 Setting up peers for op-geth-seq..." -if [ "$CONDUCTOR_ENABLED" = "true" ]; then - add_peer "op-geth-seq" "$OP_GETH_SEQ2_ENODE" - add_peer "op-geth-seq" "$OP_GETH_SEQ3_ENODE" -fi - -if [ "$CONDUCTOR_ENABLED" = "true" ]; then - # Add peers to op-geth-seq2 (connect to other sequencers) - echo "🔗 Setting up peers for op-geth-seq2..." - add_peer "op-geth-seq2" "$OP_GETH_SEQ_ENODE" - add_peer "op-geth-seq2" "$OP_GETH_SEQ3_ENODE" - - # Add peers to op-geth-seq3 (connect to other sequencers) - echo "🔗 Setting up peers for op-geth-seq3..." - add_peer "op-geth-seq3" "$OP_GETH_SEQ_ENODE" - add_peer "op-geth-seq3" "$OP_GETH_SEQ2_ENODE" -fi - -# Setup RPC node to connect to all sequencer nodes -echo "🔗 Setting up RPC node to connect to all sequencer nodes..." -add_peer "op-geth-rpc" "$OP_GETH_SEQ_ENODE" -if [ "$CONDUCTOR_ENABLED" = "true" ]; then - add_peer "op-geth-rpc" "$OP_GETH_SEQ2_ENODE" - add_peer "op-geth-rpc" "$OP_GETH_SEQ3_ENODE" -fi - -echo "✅ P2P static connections established:" -echo " - Sequencer nodes (op-geth-seq, op-geth-seq2, op-geth-seq3) are connected to each other" -echo " - RPC node (op-geth-rpc) is connected to all sequencer nodes" - - - PWD_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd $PWD_DIR EXPORT_DIR="$PWD_DIR/data/cannon-data" diff --git a/test/Dockerfile.beacon-chain b/test/Dockerfile.beacon-chain new file mode 100644 index 0000000000000..d0a1c40c6f56c --- /dev/null +++ b/test/Dockerfile.beacon-chain @@ -0,0 +1,42 @@ +# Multi-stage Docker build for beacon-chain binary +# Stage 1: Build the Go binary +FROM golang:1.22.0-alpine AS builder + +# Install git, ca-certificates and build dependencies for CGO +RUN apk add --no-cache git ca-certificates gcc musl-dev g++ + +# Set working directory +WORKDIR /app + +# Clone source code from GitHub +ARG GIT_COMMIT=v4.1.1 +RUN git clone https://github.com/prysmaticlabs/prysm.git . && \ + git checkout $GIT_COMMIT + +# Download dependencies +RUN go mod download + +# Build the beacon-chain binary with CGO enabled +RUN CGO_ENABLED=1 GOOS=linux go build \ + -a -installsuffix cgo \ + -ldflags="-w -s" \ + -o beacon-chain \ + ./cmd/beacon-chain + +# Stage 2: Create the final minimal image +FROM alpine:latest + +# Install ca-certificates and libstdc++ for HTTPS requests and C++ runtime +RUN apk --no-cache add ca-certificates libstdc++ + +# Set working directory +WORKDIR /root + +# Copy the binary from builder stage +COPY --from=builder /app/beacon-chain /usr/local/bin/ + +# Set the entrypoint +ENTRYPOINT ["beacon-chain"] + +# Default command shows help +CMD ["--help"] diff --git a/test/Dockerfile.prysmctl b/test/Dockerfile.prysmctl new file mode 100644 index 0000000000000..c3c1c7ab74081 --- /dev/null +++ b/test/Dockerfile.prysmctl @@ -0,0 +1,45 @@ +# Multi-stage Docker build for prysmctl binary +# Stage 1: Build the Go binary +FROM golang:1.22.0-alpine AS builder + +# Install git, ca-certificates and build dependencies for CGO +RUN apk add --no-cache git ca-certificates gcc musl-dev g++ + +# Set working directory +WORKDIR /app + +# Clone source code from GitHub +ARG GIT_COMMIT=aec349f75 +RUN git clone https://github.com/prysmaticlabs/prysm.git . && \ + git checkout $GIT_COMMIT + +# Download dependencies +RUN go mod download + +# Build the prysmctl binary with CGO enabled +RUN CGO_ENABLED=1 GOOS=linux go build \ + -a -installsuffix cgo \ + -ldflags="-w -s" \ + -o prysmctl \ + ./cmd/prysmctl + +# Stage 2: Create the final minimal image +FROM alpine:latest + +# Install ca-certificates and libstdc++ for HTTPS requests and C++ runtime +RUN apk --no-cache add ca-certificates libstdc++ + + +# Set working directory +WORKDIR /root + +# Copy the binary from builder stage +COPY --from=builder /app/prysmctl /usr/local/bin/prysmctl + + + +# Set the entrypoint +ENTRYPOINT ["prysmctl"] + +# Default command shows help +CMD ["--help"] diff --git a/test/Dockerfile.validator b/test/Dockerfile.validator new file mode 100644 index 0000000000000..aefe9e2f3ed0d --- /dev/null +++ b/test/Dockerfile.validator @@ -0,0 +1,42 @@ +# Multi-stage Docker build for validator binary +# Stage 1: Build the Go binary +FROM golang:1.22.0-alpine AS builder + +# Install git, ca-certificates and build dependencies for CGO +RUN apk add --no-cache git ca-certificates gcc musl-dev g++ + +# Set working directory +WORKDIR /app + +# Clone source code from GitHub +ARG GIT_COMMIT=v4.1.1 +RUN git clone https://github.com/prysmaticlabs/prysm.git . && \ + git checkout $GIT_COMMIT + +# Download dependencies +RUN go mod download + +# Build the validator binary with CGO enabled +RUN CGO_ENABLED=1 GOOS=linux go build \ + -a -installsuffix cgo \ + -ldflags="-w -s" \ + -o validator \ + ./cmd/validator + +# Stage 2: Create the final minimal image +FROM alpine:latest + +# Install ca-certificates and libstdc++ for HTTPS requests and C++ runtime +RUN apk --no-cache add ca-certificates libstdc++ + +# Set working directory +WORKDIR /root + +# Copy the binary from builder stage +COPY --from=builder /app/validator /usr/local/bin/ + +# Set the entrypoint +ENTRYPOINT ["validator"] + +# Default command shows help +CMD ["--help"] diff --git a/test/config-op/test.rpc.config.toml b/test/config-op/test.rpc.config.toml index 5e332715984b7..64d2afaee8296 100644 --- a/test/config-op/test.rpc.config.toml +++ b/test/config-op/test.rpc.config.toml @@ -3,7 +3,7 @@ HTTPHost = "0.0.0.0" HTTPPort = 8545 HTTPCors = ["*"] HTTPVirtualHosts = ["*"] -HTTPModules = ["web3", "debug", "eth", "txpool", "net", "engine", "miner", "admin"] +HTTPModules = ["web3", "debug", "eth", "txpool", "net", "engine", "miner"] WSHost = "0.0.0.0" WSPort = 7546 WSOrigins = ["*"] @@ -14,8 +14,8 @@ AuthVirtualHosts = ["*"] JWTSecret = "/jwt.txt" [Node.P2P] -MaxPeers = 30 -DiscoveryV5 = true +MaxPeers = 0 +NoDiscovery = true [Eth] NetworkId = 901 diff --git a/test/config-op/test.seq.config.toml b/test/config-op/test.seq.config.toml index 68840c9f87580..aa555e2686b50 100644 --- a/test/config-op/test.seq.config.toml +++ b/test/config-op/test.seq.config.toml @@ -3,7 +3,7 @@ HTTPHost = "0.0.0.0" HTTPPort = 8545 HTTPCors = ["*"] HTTPVirtualHosts = ["*"] -HTTPModules = ["web3", "debug", "eth", "txpool", "net", "engine", "miner", "admin"] +HTTPModules = ["web3", "debug", "eth", "txpool", "net", "engine", "miner"] WSHost = "0.0.0.0" WSPort = 7546 WSOrigins = ["*"] @@ -14,8 +14,8 @@ AuthVirtualHosts = ["*"] JWTSecret = "/jwt.txt" [Node.P2P] -MaxPeers = 30 -DiscoveryV5 = true +MaxPeers = 0 +NoDiscovery = true [Eth] NetworkId = 901 diff --git a/test/docker-compose.yml b/test/docker-compose.yml index 8b0d73801b452..ad0bdcfcbcdf0 100644 --- a/test/docker-compose.yml +++ b/test/docker-compose.yml @@ -18,7 +18,11 @@ services: - ./l1-geth/consensus:/consensus l1-create-beacon-chain-genesis: - image: "gcr.io/prysmaticlabs/prysm/cmd/prysmctl:v5.1.2" + build: + context: . + dockerfile: Dockerfile.prysmctl + args: + GIT_COMMIT: v5.1.2 container_name: l1-create-beacon-chain-genesis command: - testnet @@ -112,7 +116,11 @@ services: retries: 5 l1-beacon-chain: - image: "gcr.io/prysmaticlabs/prysm/beacon-chain:v5.1.2" + build: + context: . + dockerfile: Dockerfile.beacon-chain + args: + GIT_COMMIT: v5.1.2 container_name: l1-beacon-chain command: - --datadir=/consensus/beacondata @@ -149,7 +157,11 @@ services: - ./l1-geth/execution/jwtsecret:/execution/jwtsecret l1-validator: - image: "gcr.io/prysmaticlabs/prysm/validator:v5.1.2" + build: + context: . + dockerfile: Dockerfile.validator + args: + GIT_COMMIT: v5.1.2 container_name: l1-validator command: - --beacon-rpc-provider=l1-beacon-chain:4000 diff --git a/test/l1-geth/consensus/config.yml b/test/l1-geth/consensus/config.yml index cf6c353b902cd..00c28ae2651e2 100644 --- a/test/l1-geth/consensus/config.yml +++ b/test/l1-geth/consensus/config.yml @@ -22,13 +22,9 @@ MAX_WITHDRAWALS_PER_PAYLOAD: 16 DENEB_FORK_EPOCH: 0 DENEB_FORK_VERSION: 0x20000093 -# Electra -# ELECTRA_FORK_EPOCH: 0 -ELECTRA_FORK_VERSION: 0x15000000 - # Time parameters SECONDS_PER_SLOT: 2 SLOTS_PER_EPOCH: 6 # Deposit contract -DEPOSIT_CONTRACT_ADDRESS: 0x4242424242424242424242424242424242424242 +DEPOSIT_CONTRACT_ADDRESS: 0x4242424242424242424242424242424242424242 \ No newline at end of file