# Proto-Danksharding (EIP-4844) Devnet v1 User Guide
[toc]
## Peering
To join the network, you'll need to build and install the following geth and prysm forks:
* geth - https://github.com/mdehoog/go-ethereum/tree/eip4844-devnet-1
* prysm - https://github.com/Inphi/prysm/tree/inphi/clean-slate
Both geth and prysm contain preset configuration for the Proto-Danksharding network. Similar to the way geth/prysm can be configured for testnets using `--goerli` or `--ropsten`, you can configure both using `--eip4844`.
```
echo '[Node.P2P]
StaticNodes = ["enode://37737cd323817af681773df6784ea3ca90b1cef899a432032a48368a41100327637031be27a6a34034788215014a7237e0d35ec97b70dded4d2333b1e6a07c0d@34.171.161.213:30303","enode://5d9beaf6ead0d2a33dcb48c6204cf2588f1dad47615d6729a3774f2733ac28cf79d74d8e6862f0b021acf746619d5257e225f7397cc1c5d9f3fa16f2b4f764b3@34.123.216.69:30303","enode://8190e9afea4c5e53611c8372fc68e6ab4ece205f23538af14853d0155eb4e8ac4f2e1035b354aaaec20cf0c7aeb0d5ff44bde92dd0b9b44b3d679459f08ee3e9@34.170.213.201:30303","enode://d20da051537a909f6d55316d55b51b5cd23fdcec166cd68a48f54d93ca382adf19220546020f95e7ff6b3eafbf8f0506469184d34a7dbbf82f31b22e523c48ee@34.68.253.231:30303","enode://17d98d030c9d2d8b2966b0556bec0856d3f9962801c9571f9f44ddac46ab899b845066481f1a83769360788a7c212cc41c66b73c105c02eb30c7e8dfbbae94d0@34.133.211.115:30303",]' > /tmp/geth_static_nodes.toml
geth\
--eip4844\
--config /tmp/geth_static_nodes.toml
--http\
--http.port=8545\
--http.api "engine,eth"\
--authrpc.port 8551
curl 'https://raw.githubusercontent.com/Inphi/eip4844-testnet/master/genesis.ssz' > ./genesis.ssz
beacon-chain\
--eip4844\
--genesis-state ./genesis.ssz\
--subscribe-all-subnets\
--min-sync-peers=1\
--verbosity=debug\
--http-web3provider=$GETH_RPC_URL
```
TOOD: Preset beacon genesis
The genesis files are available [here](https://github.com/Inphi/eip4844-testnet).
## Getting Devnet ETH
You can request devnet ETH on the deployed Multifaucet: https://eip4844-faucet.vercel.app/
## Uploading Blobs
Blobs can be uploaded by sending blob transactions to geth. [blob-utils](https://github.com/Inphi/blob-utils) is a handy script that makes it easy to send blob transactions:
```
blob-utils tx\
-rpc-url <your_geth_rpc_url>\
-blob-file <blob_file>\
-to <to_address>\
-value <value>\
-private-key <account_private_key>
```
## Downloading Blobs
Blobs can be retrieved from the beacon chain network. [blob-utils](https://github.com/Inphi/blob-utils) lets you do this easily:
```
blob-utils download\
--beacon-p2p-addr <beacon_node_p2p_address>\
--slot <beacon block slot>
```
## Endpoints
If you don't have a node handy, feel free to use the following addresses to access the devnet.
Execution RPC:
- https://eip-4844.optimism.io
Beacon nodes:
- `/ip4/34.123.216.69/tcp/13000/p2p/16Uiu2HAm1u3vdfHLVnHRJtHDxSMYhHgrRVhKxBXLbQ99b4deM8Yq`
- `/ip4/34.171.161.213/tcp/13000/p2p/16Uiu2HAm3fx3hL8EEzu4rvW2y74FFcgq3nFoU5Dau1JdpS2JHF9W`
- `/ip4/34.123.184.76/tcp/13000/p2p/16Uiu2HAm2XQfneEyWEuAnFWsJKTEi4V1KV1P5mHPCbUS9mYAApK2`
## Troubleshooting/assistance
If you have issues running the devnet, please reach out in the `#sharded-data` channel of the [Eth R&D discord](https://discord.gg/wNT8ghMbkw).
### When I try to run Prysm on MacOS, I get this error "Caught SIGILL in blst_cgo_init...
This error occurs on Prysm start up (on MacOS 12), and causes the program to exit:
```
Caught SIGILL in blst_cgo_init, consult <blst>/bindinds/go/README.md.
exit status 132
```
Workaround is to run Prysm with environment variables `CGO_CFLAGS="-O -D__BLST_PORTABLE__"` and `CGO_CFLAGS_ALLOW="-O -D__BLST_PORTABLE__"`:
```
CGO_CFLAGS="-O -D__BLST_PORTABLE__" CGO_CFLAGS_ALLOW="-O -D__BLST_PORTABLE__"\
go run ./cmd/beacon-chain\
--eip4844\
--genesis-state ./genesis.ssz\
--subscribe-all-subnets\
--min-sync-peers=1\
--verbosity=debug\
--http-web3provider=http://localhost:8551
```