feat: optimize tree bootstrapping
This commit updates the tree synchronization code
to resolve the shallowest leaf nodes first,
thereby ensuring that the as little duplicate
ancestry is requested as possible.
Further opportunities for optimization include
fetching fewer ancestry nodes at a time and walking
back through ancestry more incrementally.
Signed-off-by: Chris Waldon <christopher.waldon.dev@gmail.com>
ci: fix default branch name
deps: update forest-go to handle corrupt nodes better
fix: update old branch name references
deps: update to latest dependencies
feat(worker): drop expired nodes when they are announced
feat(relay): periodically delete expired nodes
deps: update to latest forest-go
feat(relay): add optional pprof http endpoint
doc: clarify sprout examples
doc: add local testing info to README
fix(worker): properly order response nodes to leaves_of
Previously the response to a leaves_of message was not properly sorted
by recency, so it was just a random sample of leaf nodes across time.
This is a violation of the sprout specification, and has now been
corrected.
ci/cd: switch to debian for older libc compatibility
ci/cd: temporarily disable openbsd and enable email notifications