asciilifeform: this also would give mircea_popescu the thing he asked for, which was a litmus that'd let him reject a cycle-creating patch immediately from his light cone, before it can get into his vtron and cause headache. and that is, 'no patch may have a descendant that is also an antecedent of itself or of an earlier-blocktimed patch.'
asciilifeform: so my cyclic(T)==false, cyclic(T+1)==true, culprit is the signator(s) of the patch closing the loop, worx great, when this condition is adhered to
asciilifeform: but in re: 'timing issue', we had a thread where i brought up 'two(+) d00dz form a cycle, who do we negrate' and specifically stated that deedbot-for-vpatches is necessary, and that any two+ folx who insist on issuing patches into same blocktime, and end up being part of a loop, are ~both~ idiots/wreckers
asciilifeform: otherwise he sits in hell playing cards with the other devils, where he belongs, and daren't stick out his nose.
asciilifeform: i.e. a thing that can only exist if ~everyone~ has been catastrophically lazy/retarded for a very long time.
asciilifeform: mircea_popescu: your 'cycle arbitrageur' is precisely the same devil as my cornered-node-creator and panopticonic gossipd observer.
asciilifeform: i'll add that f, g, e ~may~ be pressable together in some combination, or may not, it depends on the actual 'patchons' inside
asciilifeform: (notation seen here is simply the order in which patches apply.)
asciilifeform: the valid presses in the given graph are: a; a->b; a->b->f; a->b->c; a->b->c->d; a->b->c->d->g; and a->b->c->d->e.
asciilifeform: mircea_popescu: i drew the graph, not seeing what is meant in your example: what means 'now both g->d->e->f->b->a and g->d->c->b->a are valid presses' ?
asciilifeform: i posted this as a litmus test of sorts, for vtrons.
asciilifeform: it will ring alarm if you run it on the munchausen.tar.gz set.
asciilifeform: and btw i ~solved this~ in my first vtron
asciilifeform: they can be applied in the legal order and strictly in the legal order, that's what v is ~for~
asciilifeform: vpatches are not applied 'onto a patch'
asciilifeform: mircea_popescu: there isn't a 'the patch'
asciilifeform: but -- and i'd rather that mircea_popescu do this in his head -- you can make a 'munchausen' where both steps (or however many, it can be as long as you like) reference the genesis.
asciilifeform: but of course i made them the simple way, by vdiffing from genesis, but then deleting one link of the chain.
asciilifeform: the hashes, first of all, check out (make the file consisting of the text line and one newline and see)
asciilifeform: and it is trivial to make, if mircea_popescu really wants, i can post an example set , with a toy key, and he can hang his vtron.
asciilifeform: http://btcbase.org/log/2016-12-23#1589083 << the shortest cycle possible in v (assuming that all of the patches are valid, that is, actually produce the hashes they indicate as descendants, as outputted by gnudiff, as opposed to a hand-sewn crapolade which does not) is a->b->a. this happens if you have a patch 'c' that has 'b' as antecedent but 'a' as descendant.☝︎
asciilifeform: think simply of the chess rule, that any player whk recreates a board position that existed at ANY previous point in the game -- forfeits.
asciilifeform: if they are ~all~ lolcats, you simply have a null flow.
asciilifeform: i will rephrase again for clarity: for so long as you have 1 pubkey, which was used to make 1 seal, and that seal is for one, single patch, your only one, a genesis, you can display a flow. and literally every other file in .seals, .wot, .patches can be a lolcat.
asciilifeform: it is less hairy if you use my algo, where every single patch, when deciding if it gets into the flow, has to trace descent to a genesis, unbrokenly
asciilifeform: mod6: if flow breaks, everything that hung below the breaking point, falls down
asciilifeform: this is not possible by definition, either it displays that exist, all of them, and is correct, or not all, then not.
asciilifeform: if he is orphaned, his children also gotta die
asciilifeform: a vtron that displays descendants for a patch that has an antecedent hash that corresponds to no patch, or does the same for any of its apparent children, is incorrect