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.

Please check out the following branch:

****‣

You can check with the following to verify prysm beacon node and validator can build:

git clone -b kintsugi <https://github.com/prysmaticlabs/prysm.git> && cd prysm
go build ./cmd/beacon-chain
go build ./cmd/validator

Build from source with the Bazel tool

If you want to build the entire Prysm project from source, including all dependencies and cryptography, you can use the Bazel 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. You can also use 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.

You can check with the following to verify prysm beacon node and validator can build:

git clone -b kintsugi <https://github.com/prysmaticlabs/prysm.git> && cd prysm
bazel build //beacon-chain:beacon-chain
bazel build //validator:validatorhttps://notes.ethereum.org/_UH57VUPRrC-re3ubtmo2w

Run Geth

Please checkout the following branch: https://github.com/MariusVanDerWijden/go-ethereum/pull/29

The genesis.json and sk.json for the below can be found here: https://notes.ethereum.org/_UH57VUPRrC-re3ubtmo2w

Run the following commands below:

make

./build/bin/geth --catalyst --http --ws -http.api "engine" --datadir "~/ethereum/taunus" init genesis.json

./build/bin/geth --catalyst --http --ws -http.api "engine" --datadir "~/ethereum/taunus" account import sk.json

./build/bin/geth --catalyst --http --ws -http.api "engine,eth,net"  --datadir "~/ethereum/taunus" --allow-insecure-unlock --unlock "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" --password "" --nodiscover console

In the geth console start the miner

> miner.start()