iota.lib.cpp icon indicating copy to clipboard operation
iota.lib.cpp copied to clipboard

isPromotable & checkConsistency

Open Cylix opened this issue 7 years ago • 2 comments

From #304 (iota.lib.js changes):

isPromotable(tail) of develop branch is now renamed to checkConsistency(tail)
isPromotable(tail, depth) is now expressed as function of checkConsistency(tail) & depth, because promotion becomes ineffective after a few milestones. Internally uses a time heuristic: https://github.com/iotaledger/iota.lib.js/blob/next/packages/core/src/createIsPromotable.ts

Seems we have both isPromotable and checkConsistency, should we dismiss isPromotable?

Cylix avatar Jul 11 '18 05:07 Cylix

For this one, was a bit confused by the wording, but after investigation, seems that what we actually need to do is to support a new parameter depth for isPromotable.

The implementation can be found here.

Cylix avatar Jul 24 '18 06:07 Cylix

Hey @Cylix & @thibault-martinez ,

most likely we are removing isPromotable() and keep checkConsistency() without depth argument & isAboveMaxDepth() predicate.

I think IRI checks depth now: https://github.com/iotaledger/iri/blob/bed15673709a033bd32029d6e567b032ec7d5bd8/src/main/java/com/iota/iri/service/API.java#L461 https://github.com/iotaledger/iri/blob/1829df5dde8dadbc78f482d4b7db43ca0a934015/src/main/java/com/iota/iri/service/tipselection/impl/WalkValidatorImpl.java#L85

If I understand it correctly, pure checkConsistency as seen here is sufficient. I'll create an issue in iota.js & link you to it, as soon as I've confirmed that's the case.

Also if you use isPromotable as the name of the call, it would be better to rename it to checkConsistency, to match with IRI api.

chrisdukakis avatar Jul 30 '18 23:07 chrisdukakis