Proposal to upgrade BOB mother node (13/03/2025)

Hey ALICE & BOB community!

Thanks to the great initiative of @chepreghy, I have created a proposal to upgrade the BOB mother node.

What’s new?

This proposal adds support to fetch a range of past blocks produced on the BOB blockchain. This is necessary to verify and check the blocks that the BOB blockchain produced in the past, which is essential for every blockchain!

In particular, the function get_block_by_index takes an index and returns the block if it exists. Similarly, the get_blocks method returns a range of blocks. To see the details, check out this PR.

In addition, there is a second PR that fixes deterministic builds on Apple Silicon, verification instructions, integration tests (there were some erroneous paths after adding alice to the repo) and linting issues preventing the pipeline to run successfully.

Anything else?

These PRs got merged into a fork of the bob repo. The two PRs also exist on the original bob repo (here and here). Since they have been stale for quite some time, it is up to us, the ALICE & BOB community, to become active and get our hands dirty! When Robert (@bobdotfun) is back, he can merge the PRs and will end up in the same state as the fork.

Verifying the Wasms

Here’s a guide how to verify the new Wasms.
Make sure you have Docker installed and running and run the following commands to verify the build:

git clone https://github.com/fxgst/bob.git
cd bob
git checkout 27cb713d2ff8ccffc72ed94d65f926fe737f097e
docker build -t rust-dev .
docker run -v $(pwd):/app -it rust-dev bash /app/build.sh
sha256sum target/wasm32-unknown-unknown/release/bob_minter_v2.wasm.gz
sha256sum target/wasm32-unknown-unknown/release/bob_miner_v2.wasm

Here are the expected Wasm hashes:

1581f71d41d43e4cf64631c282cd84ff0717276fc15c01d0f828d4b0e703b81f  target/wasm32-unknown-unknown/release/bob_minter_v2.wasm.gz
6b39a61b5545b2906cfbb18b1d423d06637e94078a0e296a45d5b46b975be706  target/wasm32-unknown-unknown/release/bob_miner_v2.wasm

You can also check the hashes on the CI run, but make sure to verify it on your machine too.

What’s next?

Please consider voting on Proposal 24 if you want to make it easier for people to verify BOB’s blocks. I’m a voting member of the CodeGov team, and the other team members intend to, on successful verification, accept this proposal too. To many more community contributions!

8 Likes

reviewed PRs, LGTM!
wasm hash I got (1581f71d41d43e4cf64631c282cd84ff0717276fc15c01d0f828d4b0e703b81f),
voting to adopt Proposal 24.

4 Likes

forgot to add second hash, here is complete output

1581f71d41d43e4cf64631c282cd84ff0717276fc15c01d0f828d4b0e703b81f target/wasm32-unknown-unknown/release/bob_minter_v2.wasm.gz

6b39a61b5545b2906cfbb18b1d423d06637e94078a0e296a45d5b46b975be706 target/wasm32-unknown-unknown/release/bob_miner_v2.wasm

3 Likes

I’m so excited to see this community contribution @fxgst and @chepreghy. This is awesome!

You too @parryhotter. This is awesome to see you step up to review this proposal.

This is true decentralization at work. I love seeing the community getting involved in improving the code that the SNS is responsible for governing. This forum thread made my day.

3 Likes

I have verified the proposal and the two Wasm hashes — voted to adopt.

3 Likes

This seems like a good idea. Hope it works out well!

3 Likes