I want to learn more about IOTA and how it works on a practical level.

In the Ethereum world I can do that by setting up a private network and making all the mistakes I need to make in safety.

Is it possible to set up a private IOTA network, and if so, how do I do it?

  • @AustinPowers This sounds more like a new question, you should open a new question for this Aug 12, 2018 at 10:40
  • @AustinPowers if you read mihi's answer you will see that is what you are looking for (i.e. coo code for private network)
    – ben75
    Aug 15, 2018 at 9:29
  • Yes like any usual tx it use gtta to select trunk and branch. The check is done by the IRI. The consistency check is part of the random walk (method updateDiff is checking balances).
    – ben75
    Aug 15, 2018 at 14:56

1 Answer 1


While not officially supported by the IOTA foundation, I put together a few scripts that can be used to start up your private testnet (possibly consisting of only a single node).

If you want to go this route, you should have some experience in patching, compiling and running Java applications, so this is no simple point-and-click solution for newbies.

When you have only a single node, you can reduce the PoW arbitrarily low; when you plan to use multiple nodes, you cannot, as the UDP packets used for node-to-node communication are not big enough to hold the full transaction hash if the hash does not end with a sufficient amount of zeroes.

  • This works really well so far in my setup. Thanks! There is definitely some manual patching involved but it's really useful to not have to deal with neighbors. Are there any other negatives besides the UDP issue that I haven't run into yet? Nov 28, 2017 at 22:09
  • When testing attack scenarios, some attacks might succeed although they are blocked by the Coordinator on real testnet or mainnet. Other than that, I did not encounter any.
    – mihi
    Nov 28, 2017 at 22:11
  • @AustinPowers sorry I don't understand your question. :( The testnet coordinator relies on the fact that the node's GetTransactionToApprove will always return one tip that approves the latest milestone. A coordinator running on mainnet probably needs some more checks :)
    – mihi
    Aug 15, 2018 at 19:11
  • At the time when it was written, one of the two tips returned by getTransactionsToApprove was guaranteed to approve the previous milestone (and the other a milestone not older than the given depth). I have now learned that this changed during recent tip selection algorithm changes, so indeed the coordinator may now create inconsistent milestones and should be updated. Pull requests are welcome :) I believe that still both tips have to be solid to be returned (since otherwise how does iri guarantee they are consistent with each other)?
    – mihi
    Aug 16, 2018 at 21:57
  • @AustinPowers In case you care enough about the name, feel free to issue a pull request that changes the name (but don't forget to update the README as well).
    – mihi
    Aug 16, 2018 at 21:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.