# Sync Pithos Testnet w/ Prysm :panda_face: ## Requirements ### Build from Source With the Go Tool You can build Prysm using the standard `go build` tool with version 1.16 of Golang. The main caveat of only using `go build` is this will use **precompiled cryptography** for certain parts of our codebase compared to using the build system preferred by the team. **Check out the following merge interop branch** [merge-oct](https://github.com/prysmaticlabs/prysm/pull/9754). You can check with the following to verify prysm beacon node and validator can build: ``` git clone -b merge-oct https://github.com/prysmaticlabs/prysm.git && cd prysm go build ./cmd/beacon-chain go build ./cmd/validator ``` ### True Build from Source If you want to build the entire Prysm project from source, including all dependencies and cryptography, you can use the [Bazel](https://bazel.build) build system. You will need Bazel version 4.2.0 above to build Prysm from source. You can find full information on how to build Prysm from source [here](https://docs.prylabs.network/docs/install/install-with-bazel/). You can also use [Bazelisk](https://github.com/bazelbuild/bazelisk) which is a Bazel launcher that installs required versions easily for you. Once you have Bazel 4.2.0 installed, **please check out the following merge interop branch** [merge-oct](https://github.com/prysmaticlabs/prysm/pull/9754). You can check with the following to verify prysm beacon node and validator can build: ``` git clone -b merge-oct https://github.com/prysmaticlabs/prysm.git && cd prysm bazel build //beacon-chain:beacon-chain bazel build //validator:validator ``` ## Run Geth Please check out the following geth merge interop [branch](https://github.com/ethereum/go-ethereum/pull/23607) The `genesis.json` file can be found [here](https://github.com/parithosh/consensus-deployment-ansible/blob/master/pithos-testnet/custom_config_data/genesis.json) Then run the following commands: ```bash= make ./build/bin/geth --datadir "/tmp/pithos-eth1" init genesis.json ./build/bin/geth --catalyst --datadir "/tmp/pithos-eth1" --networkid=1337202 --http --http.api "engine,net,eth" --ws --ws.api "net,eth,engine" --allow-insecure-unlock --bootnodes enode://e56b164de03d22eb85b79b03cdd9edd428c2e3b5f2ff435cf284e3dfb81699058fa602a39cbcd0315c72be904ff0c6ec66750ffa1912fe33e615e45d73c9a980@137.184.195.98:30303 ``` ## Run Prysm After checked out out merge interop branch [merge-oct](https://github.com/prysmaticlabs/prysm/pull/9754) and verified you can build beacon node. All you there is left is to run the following command: The `genesis.ssz` file can be found here [here](https://github.com/parithosh/consensus-deployment-ansible/blob/master/pithos-testnet/custom_config_data/genesis.ssz) ### With Go ```bash= go build -o /tmp/beacon ./cmd/beacon-chain /tmp/beacon --genesis-state genesis.ssz --datadir /tmp/pithos-eth2 --http-web3provider=http://localhost:8545 --min-sync-peers=1 --merge-testnet ``` ### With Bazel ```bash= bazel run //beacon-chain -- --genesis-state genesis.ssz --datadir /tmp/pithos-eth2 --http-web3provider=http://localhost:8545 --min-sync-peers=1 --merge-testnet ``` ## Result ![](https://i.imgur.com/vepKmD8.gif) ## Contribution Want to contribute? Check out: https://github.com/prysmaticlabs/prysm/pull/9754 Have questions? Join our Discord: https://discord.gg/gwWGStWR