# 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