How to run a local testnet for app development (Linux)?

ok thanks I’ll take the node down and wait :slight_smile:


This sounds wise and the promess of a nice sunday off the screens and out in the wild


But for impatient people (like me): I am successful at running a local network of 12 nodes on a Cygwin/Windows machine with current master branches, but I had to change 2 referenced versions in Cargo.toml of safe_core crate:

  • lru_time_cache changed from “~0.3.0” to “~0.2.7” (I think 0.3.0 is bugged: Duration::new(std::u64::MAX, std::u32::MAX) seems to generate an arithmetic operation overflow)
  • routing changed from “~0.16.2” to “~0.17.0” (so that safe_core and safe_vault share a common routing code).

Please also note that you don’t have to create any config file and you have to wait several seconds between 2 consecutive vaults.

With this network I am able to create acounts and manage immutable data. But I am still not able to manage structured data (same error “failed to fill whole buffer” mentioned by @bluebird and me one week ago).


Glad to hear about it, and nice going @tfa; seems like will wait up till gates are open again

For your information:

I found the bug, corrected it and made a PR which was accepted by Maidsafe.

My error was that I was using methods of routing crate to create SDs but I was reading them with get_data method of safe_core crate. This means we can manage SDs:

  • either at the raw level by using primitives of routing crate

  • or at a higher level by using methods of safe_core crate

but we have to be careful if we mix the two levels.


@tfa so you are able to manage structured data on this test net you set up locally on your desktop?

1 Like

Yes, i am.

I have been able to do it since a long ago. My problem was that at one time Maidsafe changed safe_core interface by modifying the pub use list. So my code didn’t compile anymore and I had to adapt it. But doing so I used some primitives of routing instead of safe_core and didn’t realize it. It took me several weeks before I analyzed the code more seriously and found the problem.