Zebra Node Sync

Today I’ve started to sync a Zcash full node using the Zebra backend client

My specs: Mac Studio M4 Max, 64 GB of RAM, 2 TB of storage, 1 Gbps internet via ethernet cable

Started around 10:45 CET (about 4:45 PM EST) and tweeted about it here: https://x.com/vladcostea/status/2062999675779891575?s=46&t=gsfNwtDtLBe-E5UXg0sh5A

According to Claude Opus, this sync should take about 3 days. However, I think my little beast will do it faster.

As of now (almost 2 hours later), I hit block height 1204827.

I hope my little experiment will inspire others to stop using third party nodes and embrace true sovereignty. Once I complete this experiment, I will point all mobile wallets to this node.

10 Likes

Update after 3 hours: I hit block height 1759791

I’m halfway there, though I guess the blocks become fuller as the sync approaches more recent years

2 Likes

See here for possible hotfix (works for me), should increase your sync speed if that becomes an issue

On that branch with your specs, you should fully complete syncing in less than 12-15 hours I would say, maybe less

About 60 hours later, I’ve synced about 81%.

It’s much slower than I expected, but it doesn’t use too much RAM or CPU. Perhaps I could configure it to use more than 8 GB of RAM – which seems to be the limit right now. I have 64 GB, I feel like I could probably do better.

After this experience, I am tempted to vibe code a dashboard that automatically downloads Zebra + lightwalletd, then gives mobile wallet users a QR code to scan in order to connect.

As much as I enjoy the nerdiness of doing this from command line and Docker, mass adoption requires commodification.

1 Like

At this point, I don’t think your node will reach 100% synchronization even after 3 days.

The reason is that there is currently an issue affecting zebrad nodes that causes sync stalls. I recommend trying the fix/5709-sync-stall branch mentioned above by Autotunafish. If you do, the synchronization will probably finish within about 4–5 hours.

However, you’ll need to download the source code and compile it yourself, so there may be some tedious steps along the way.

  1. The Rust ecosystem evolves very quickly, and certain projects—especially those that rely heavily on cryptographic libraries, such as Zcash-related software—often require either a specific version of the Rust compiler (rustc) or the latest stable release. Failing to use the correct version can lead to build issues.

  2. To run Zebra smoothly in a Docker environment, you’ll need more than just the Docker Engine. Modern build tools such as BuildKit should also be properly installed and configured.

If you skip steps 1 and 2, you may end up spending several frustrating hours just trying to build, install, and run the fix/5709-sync-stall version of zebrad.

1 Like

Yess more data as more people use and transact on Zcash

God speed mate

About 3 1/2 days later, I completed the sync.

Wish there was a way to allocate more RAM, I could probably do it much faster.

Anyway, I will carry on with making the node useful for myself (lightwalletd + connecting mobile wallets to it).

4 Likes

Great!

Hey, @VladC, I’m part of the Zk Av Club core team, can I write to you privately to talk about the possibility of a collaboration?

1 Like

If it’s of use, I could create a version of the Nix Zebra flake pointing to the patched version of Zebra to assist with the installation.

1 Like

I don’t know much about Linux yet. However, I feel like I need to struggle and learn the hard way through trial and error to truly get closer to this system. Thank you so much for your kind offer to help, though!

1 Like

Think we should get more data! I love everyone who runs a node. Here is mine, mileage may vary.

[
  {
    "block": 0,
    "date": "06/03/2026",
    "time": "06:27",
    "unix_timestamp": 1780468020
  },
  {
    "block": 1308862,
    "date": "06/03/2026",
    "time": "06:27",
    "unix_timestamp": 1780468020
  },
  {
    "block": 1742126,
    "date": "06/03/2026",
    "time": "10:12",
    "unix_timestamp": 1780481520
  },
  {
    "block": 1786870,
    "date": "06/03/2026",
    "time": "11:27",
    "unix_timestamp": 1780486020
  },
  {
    "block": 1819373,
    "date": "06/03/2026",
    "time": "13:06",
    "unix_timestamp": 1780491960
  },
  {
    "block": 1850737,
    "date": "06/03/2026",
    "time": "14:33",
    "unix_timestamp": 1780497180
  },
  {
    "block": 1864943,
    "date": "06/03/2026",
    "time": "15:48",
    "unix_timestamp": 1780501680
  },
  {
    "block": 1876818,
    "date": "06/03/2026",
    "time": "17:02",
    "unix_timestamp": 1780506120
  },
  {
    "block": 1913182,
    "date": "06/03/2026",
    "time": "19:31",
    "unix_timestamp": 1780515060
  },
  {
    "block": 1940096,
    "date": "06/03/2026",
    "time": "22:00",
    "unix_timestamp": 1780524000
  },
  {
    "block": 2037054,
    "date": "06/04/2026",
    "time": "06:43",
    "unix_timestamp": 1780555380
  },
  {
    "block": 2047193,
    "date": "06/04/2026",
    "time": "07:48",
    "unix_timestamp": 1780559280
  },
  {
    "block": 2064710,
    "date": "06/04/2026",
    "time": "10:01",
    "unix_timestamp": 1780567260
  },
  {
    "block": 2077550,
    "date": "06/04/2026",
    "time": "11:33",
    "unix_timestamp": 1780572780
  },
  {
    "block": 2090619,
    "date": "06/04/2026",
    "time": "13:06",
    "unix_timestamp": 1780578360
  },
  {
    "block": 2123196,
    "date": "06/04/2026",
    "time": "14:56",
    "unix_timestamp": 1780584960
  },
  {
    "block": 2140206,
    "date": "06/04/2026",
    "time": "15:51",
    "unix_timestamp": 1780588260
  },
  {
    "block": 2201898,
    "date": "06/04/2026",
    "time": "22:39",
    "unix_timestamp": 1780612740
  },
  {
    "block": 2266698,
    "date": "06/05/2026",
    "time": "06:20",
    "unix_timestamp": 1780640400
  },
  {
    "block": 2319098,
    "date": "06/05/2026",
    "time": "12:06",
    "unix_timestamp": 1780661160
  },
  {
    "block": 2404698,
    "date": "06/05/2026",
    "time": "21:53",
    "unix_timestamp": 1780696380
  },
  {
    "block": 2542806,
    "date": "06/06/2026",
    "time": "07:00",
    "unix_timestamp": 1780729200
  },
  {
    "block": 2576806,
    "date": "06/06/2026",
    "time": "10:24",
    "unix_timestamp": 1780741440
  },
  {
    "block": 2644406,
    "date": "06/06/2026",
    "time": "17:45",
    "unix_timestamp": 1780767900
  },
  {
    "block": 2824006,
    "date": "06/07/2026",
    "time": "07:40",
    "unix_timestamp": 1780818000
  },
  {
    "block": 3011206,
    "date": "06/07/2026",
    "time": "19:46",
    "unix_timestamp": 1780861560
  },
  {
    "block": 3111396,
    "date": "06/08/2026",
    "time": "06:19",
    "unix_timestamp": 1780899540
  },
  {
    "block": 3212406,
    "date": "06/08/2026",
    "time": "17:37",
    "unix_timestamp": 1780940220
  },
  {
    "block": 3321606,
    "date": "06/09/2026",
    "time": "07:40",
    "unix_timestamp": 1780990800
  },
  {
    "block": 3372340,
    "date": "06/10/2026",
    "time": "07:40",
    "unix_timestamp": 1781077200
  }
]

Install method and version:

git clone https://github.com/ZcashFoundation/zebra.git
git checkout fix/5709-sync-stall
cd zebra
git checkout fix/5709-sync-stall
export CXXFLAGS="$CXXFLAGS -include cstdint"
cargo build -r --bin zebrad

System:

OS: Xubuntu 26.04 LTS x86_64 
Kernel: 7.0.0-22-generic 
DE: Xfce 4.20 
CPU: Intel Ultra 9 185H (22) @ 4.800GHz 
Memory: 22870MiB / 31692MiB 

Network:

1000 Mbit / 40 Mbit ( home router w/ wifi )

Common seen errors:

2026-06-05T13:19:27.203105Z  INFO zebra_network::peer: rejecting self-connection attempt connected_addr=In("v4redacted:41466")
2026-06-05T13:19:27.203221Z  INFO zebra_network::peer: rejecting self-connection attempt connected_addr=Out("v4redacted:8233")

7-10 minute pauses, very strange behavior

2026-06-08T12:50:52.328482Z  INFO zebrad::components::sync::progress: estimated progress to chain tip sync_percent=92.194% current_height=Height(3108806) network_upgrade=Nu6 remaining_sync_blocks=263216 time_since_last_state_block=5s
2026-06-08T12:51:52.343373Z  INFO zebrad::components::sync::progress: estimated progress to chain tip sync_percent=92.194% current_height=Height(3108806) network_upgrade=Nu6 remaining_sync_blocks=263217 time_since_last_state_block=1m 5s
2026-06-08T12:52:52.359218Z  INFO zebrad::components::sync::progress: estimated progress to chain tip sync_percent=92.194% current_height=Height(3108806) network_upgrade=Nu6 remaining_sync_blocks=263217 time_since_last_state_block=2m 5s
2026-06-08T12:53:52.375590Z  INFO zebrad::components::sync::progress: estimated progress to chain tip sync_percent=92.194% current_height=Height(3108806) network_upgrade=Nu6 remaining_sync_blocks=263218 time_since_last_state_block=3m 5s
2026-06-08T12:54:52.389878Z  INFO zebrad::components::sync::progress: estimated progress to chain tip sync_percent=92.194% current_height=Height(3108806) network_upgrade=Nu6 remaining_sync_blocks=263219 time_since_last_state_block=4m 5s
2026-06-08T12:55:52.405426Z  INFO zebrad::components::sync::progress: estimated progress to chain tip sync_percent=92.194% current_height=Height(3108806) network_upgrade=Nu6 remaining_sync_blocks=263220 time_since_last_state_block=5m 5s
2026-06-08T12:56:52.420794Z  INFO zebrad::components::sync::progress: estimated progress to chain tip sync_percent=92.194% current_height=Height(3108806) network_upgrade=Nu6 remaining_sync_blocks=263221 time_since_last_state_block=6m 5s
2026-06-08T12:57:52.437957Z  INFO zebrad::components::sync::progress: estimated progress to chain tip sync_percent=92.194% current_height=Height(3108806) network_upgrade=Nu6 remaining_sync_blocks=263221 time_since_last_state_block=7m 5s
2026-06-08T12:58:44.197189Z  WARN sync:try_to_sync:try_to_sync_once: zebrad::components::sync: error downloading and verifying block e=ValidationRequestError { error: Elapsed(()), height: Height(3108832), hash: block::Hash("000000000033de86ad774df4c73983b554440098c896f4098ba3b45e6a1fef12") }

Another interesting one:

2026-06-09T04:48:28.348005Z  INFO zebra_network::peer:🤝 peer with inconsistent version services and version address services remote.services=PeerServices(0x0) remote_address_services=PeerServices(NODE_NETWORK) remote.user_agent="/zcash-seeder:0.01/"
2026-06-09T04:52:34.873029Z  INFO zebra_network::peer:🤝 peer with inconsistent version services and version address services remote.services=PeerServices(NODE_NETWORK) remote_address_services=PeerServices(0x0) remote.user_agent="/zcashcore:1.1.5/"
2026-06-09T04:54:34.752511Z  INFO zebra_network::peer:🤝 peer with inconsistent version services and version address services remote.services=PeerServices(NODE_NETWORK) remote_address_services=PeerServices(0x0) remote.user_agent="/zcashcore:1.1.5/"
2026-06-09T04:56:34.869971Z  INFO zebra_network::peer:🤝 peer with inconsistent version services and version address services remote.services=PeerServices(NODE_NETWORK) remote_address_services=PeerServices(0x0) remote.user_agent="/zcashcore:1.1.5/"
2026-06-09T04:58:34.873085Z  INFO zebra_network::peer:🤝 peer with inconsistent version services and version address services remote.services=PeerServices(NODE_NETWORK) remote_address_services=PeerServices(0x0) remote.user_agent="/zcashcore:1.1.5/"
2026-06-09T05:06:01.487904Z  INFO zebra_network::peer:🤝 peer with inconsistent version services and version address services remote.services=PeerServices(0x0) remote_address_services=PeerServices(NODE_NETWORK) remote.user_agent="/zcash-seeder:0.01/"
3 Likes

Of course!

1 Like

release published - Release Zebra 5.1.0 · ZcashFoundation/zebra · GitHub - waiting on docker binaries. Engs will publish the crates at crates.io tomorrow

4 Likes