| 123456789101112131415161718192021222324252627282930313233 |
- /= dk /apps/dumbnet/lib/types
- /= dumb-transact /common/tx-engine
- /= * /common/zoon
- ::
- |_ [d=derived-state:dk =blockchain-constants:dumb-transact]
- +* t ~(. dumb-transact blockchain-constants)
- :: +update: update metadata derived from consensus state
- ++ update
- |= [c=consensus-state:dk pag=page:t]
- ^- derived-state:dk
- =/ heaviest-page=page:t
- ?: =(~ heaviest-block.c)
- pag :: genesis block
- (to-page:local-page:t (~(got z-by blocks.c) (need heaviest-block.c)))
- =/ next-parent=block-id:t digest.heaviest-page
- =/ next-height=page-number:t height.heaviest-page
- |-
- ?: =((~(get z-by heaviest-chain.d) next-height) `next-parent)
- :: heaviest chain is accurate
- ::TODO check there aren't any blocks at page-numbers higher than
- ::the page-number of the heaviest block?
- d
- :: heaviest chain is wrong, start revising
- =. heaviest-chain.d
- (~(put z-by heaviest-chain.d) next-height next-parent)
- ?: =(*page-number:t next-height)
- :: genesis block was put into heaviest-chain, so we're done
- d
- %= $
- next-height (dec next-height)
- next-parent parent:(~(got z-by blocks.c) next-parent)
- ==
- --
|