Paralel Initial Block Download PIBD TESTING

Testing is required for the newly added PIBD capability for the Grin blockchain.

Community members who don’t have high programming skills may contribute to development by testing PIBD sync which will help developers finding and fixing issues/bugs.

Any help is welcome with instruction to download v5.2.0-beta.2 from terminal or how to run node on CLI for non Windows users or Windows.


On Linux:

tar -xzf grin-v5.2.0-beta.1-linux-amd64.tar.gz


tar -xzf grin-v5.2.0-beta.1-macos.tar.gz

Will test in some of my virtual machines/vps

1 Like

I’ve done quick tests on my pcs (one in north america/another in asian)

v5.2.0-beta.1 (default config 8 connected peers)
Windows NA : 08:17 -14:45 (6h30m)
Windows APAC: 20:50 → 03:00 (6h10m)

v5.2.0-beta.1 (custom config 80 connected peers)
Windows NA : 15:05 → 22:10 (~7h) ((PIBD) - 9754624 / 17866400 entries - 54%)
Windows APAC: 03:20 → 10:10 (~7h) (PIBD) - 3039232 / 17866400 entries - 17%)

v5.2.0-alpha.2 (default config 8 connected peers)
Windows NA : 22:25 → 00:30 (2h)
Windows APAC: 10:25 → 12:30 (2h)

Conclusion from me: the time to have full sync for prune node has been increased from 2 hours to more than 6 hours in new version (with default config and normal stable internet connection). I tried to increase all peer values by x10 but it is much worse.


For me slowdown happened when non-PIBD sync method started at parallel/somewhere in the middle of PIBD sync. This problem can happen when we have not enough peers supporting PIBD, some peers gone out of sync/reported bad height/disconnected.

I have not experienced such issues with last PR from @Yeastplume [TEST, Do not merge] PIBD debug - revert earlier pibd_aborted flag in sync logic by yeastplume · Pull Request #3757 · mimblewimble/grin · GitHub.

You can try to build node with this fix to test before release, for example on Linux:

# Clone repo
git clone grin_test
cd grin_test
git checkout pibd_debug

# Install Rust Toolchain if needed
curl --proto '=https' --tlsv1.2 -sSf | sh

# Build and run node
cargo build --release
1 Like

Just tried it in my latest ubuntu desktop, it’s not better.
After 7 hours, node is quite stuck “Step 2/7: Downloading Tx state (PIBD) 8245613 / 17872812 entries - 46%”

Have you used build from GitHub - yeastplume/grin: Minimal implementation of the MimbleWimble protocol. by instruction I posted above?

If so, share your logs, located at ~/.grin/main/grin-server.log

I did exactly the same as you commented, here is my log:

You lost peers exactly after 1 hour of getting headers:
sync: no peers available, disabling sync
Next time exactly after 2 hours

ok, let’s see the results after many nodes are patched to latest beta.
Come back to new version, I also have some comments/suggestions:

  1. We might have error below in Ubuntu server version below 23.04, for now, I haven’t found workaround yet
    ./grin: /lib/x86_64-linux-gnu/ version GLIBC_2.32' not found (required by ./grin) ./grin: /lib/x86_64-linux-gnu/ version GLIBC_2.33’ not found (required by ./grin)
    ./grin: /lib/x86_64-linux-gnu/ version `GLIBC_2.34’ not found (required by ./grin)

  2. New beta version should also appear in ./grin --version and in the title of the TUI, it would be useful for us to know the dominance of current version.

  3. Is it possible to let grin exe file more friendly to Windows defender? To newbie’s eyes, it’s quite scared.

    2023-06-15 22_10_19

  4. Is it possible to sign the exe with trusted certificate or register those details? Is it costly?
    Like other famous windows app example:


1 Like

Try to install all deps as suggested here grin/doc/ at master · mimblewimble/grin · GitHub

apt install build-essential cmake git libgit2-dev clang libncurses5-dev libncursesw5-dev zlib1g-dev pkg-config libssl-dev llvm
1 Like

Tested on VM: Ubuntu 22.04.1 LTS
Grin version: v5.2.0-alpha.2 (default config 8 connected peers) - #3757.
Sync time: 1 hour and 23 min.

No issues :+1:


I want to do some testing and have a couple of questions.

  1. Would tests on virtual machines be acceptable? If so, could some be made?

  2. What are the tests looking for? What can be varied? Different OSs? Download speed measures? Or just general stability?


1 Like
  1. You can test grin node on any machines as long as it’s connected to internet
  2. Test on various OS with various version to see if any unexpected issue like crash, stuk and report it here or by github.
1 Like

I currently have a single VM running and syncing blocks. 8 outbound peers and headers at 23% after 1:38 hours. I’ve set resources of the VM high but I’m not sure I trust its performance so I want to try a standalone PC. I opened port 3414 on my router but can’t see any inbound peers yet. Could be a setting on Virtual Box or something else. I can’t see any errors in grin-server.toml or console logs

  1. You can try: ./grin clean to clean the chain
  2. Then restart grin
  3. What is your VM spec? how much is RAM and CPU? And OS you’re using?
  4. The grin logs is stored in grin-server.log, you may upload it here if the issue persists.

I left it overnight and it looks like this now. Header Chain Height looks current but sync step is stuck at 2/7.

I’ve just tried the clean and restart and will see how it gets on.

The moment it is stuck is actually interesting. So at that time you can share your log so we can see what went wrong.

Stuck at the same place.

I’ll leave this as it is unless anyone thinks it’s code related and wants to dig further. It could be something with Virtual Box. I’ll run a test on a standalone PC next.