
# improvements

## forks

emit fork proofs so that forks are rapidly detected
and not broadcast.

## replicating: ev.client ? null : {}

connect currently sets replicating to null
if peer is a client. the effect here is to wait for
the server to send the first clock.
(this gives means we don't send the vector clock
until we know for sure they support EBT)

would be much better to handle this as a boolean.

* connect sets replicating to null or {}
* peerClock returns early if replicating is null
* notes checks if replicating isn't set yet, and calls peerClock

## notes have weird representation - DONE

notes can be v2 and v3, but it changes not just
how it's sent, but how it's represented in the
datastructure. This makes understanding the code
much harder! refactor so that the data structure
_only_ uses v3 format, and cases that need v2
can just translate into v3.

DONE.

## implement pre/post conditions broadly

just get the obvious stuff, types etc

## implement deep pre/post conditions

see TODOs throughout conditions.js

## try to make notes event simpler

it's the most complicated one, a bit too complicated,
i think.
