With the coordinator, the MCMC random walk tip selection algorithm starts with a milestone as its entry transaction. Without the coordinator, there are no milestones. How is the entry transaction for the random walk chosen in this case?

This question had a bounty worth +100 reputation from The Coordinator that ended 22 hours ago. Grace period ends in 1 hour

This question has not received enough attention.

  • I asked this a long time ago and added many bounties. No one even attempted to answer it. Eventually, I just deleted the question since it seemed cursed by the "no one wants to talk about it" software question virus! Obviously, there is no secure way to pick a starting transaction because the network isn't synchronized. No one would ever know if the transaction they select was current or old or part of even a rogue side-tangle. This is a pivotal critical question that I am afraid will never be answered. – The Coordinator Dec 2 at 11:26
  • @TheCoordinator IF started publicly a new github project called cliri for Coo-Less IRI : github.com/iotaledger/cliri. The answer to this question will probably be developped in this project... just be patient. – ben75 Dec 2 at 16:27
  • The foundation has received millions of dollars from investors and uses a COO and still hasn't provided an answer to this question. It looks to me that the COO is closed source source for exactly the reasons people have been concerned - it looks like it doesn't follow the whitepaper itself. – The Coordinator Dec 2 at 18:23
  • The source code of the coo is now available here github.com/iotaledger/compass . The coo is mentionned in the WP. – ben75 Dec 2 at 23:17
  • That doesn't answer the question though. And to the unware, that software repo was renamed from the old one "src/main/java/coo". It isn't new and I think people have already discussed what it is ... and what it isn't. I'm all ears if you would like to post an answer and show "How are random walk entry transactions chosen in a coo-free tangle?". – The Coordinator Dec 3 at 5:19

There is currently no way to do that without a supplied reference or COO Milestones.

In a COO-free or Milestone-free Tangle, the user must supply their own tip references to begin the MCMC random walk tip selection.

You are free to look at the Open-Source Coordinator for users to use here https://github.com/iotaledger/compass

Feel free to check the IRI tip selection here: https://github.com/iotaledger/iri/blob/dev/src/main/java/com/iota/iri/service/tipselection/impl/TipSelectorImpl.java

And the EntryPointSelectorImpl here: https://github.com/iotaledger/iri/blob/dev/src/main/java/com/iota/iri/service/tipselection/impl/EntryPointSelectorImpl.java

You will see that either the user has to provide the starting points for the MCMC or there needs to be Milestones.

public Hash getEntryPoint(int depth) throws Exception {
    int milestoneIndex = Math.max(milestoneTracker.latestSolidSubtangleMilestoneIndex - depth - 1,
    MilestoneViewModel milestoneViewModel = MilestoneViewModel.findClosestNextMilestone(tangle, milestoneIndex,
    if (milestoneViewModel != null && milestoneViewModel.getHash() != null) {
        return milestoneViewModel.getHash();

    return milestoneTracker.latestSolidSubtangleMilestone;

I think the EntryPointSelector won't even work without the Milestone class and its dependence on Milestones.

  • I don't think we can glean much from the current code on how entry transactions will be determined. This is more a question about IOTA's plans for the protocol in a coo-free network instead of IOTA's current software implementation. – wass Dec 7 at 2:29
  • right. But if they can't even provide a start for the MCMC, then how are they going to do the much more difficult thing in removing the COO? Theoretically, this is the easiest part. – The Coordinator Dec 7 at 6:07

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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