We can test +ob exhaustively over a smaller input space; if it behaves
correctly, that gives us much greater assurance that the implementation
is correct for the full planet space.
'ob', a core that implemented a permutation cipher for planet-sized
atoms, contained a critical bug that allowed multiple inputs to encipher
to the same output. This created collisions between some planet-sized
@p values.
The rewritten version corrects this bug, and also rewrites +ob to more
clearly match both 1) the paper that the algorithm comes from, and 2)
the parallel implementation in urbit-ob that has gone through an
exhaustive test.
This also adjusts two calls to 'ob' elsewhere in hoon.hoon such that
they match the updated core.
* App for sending Apple Push Notifications
* First pass at Hall subscription logic
* Tiebout app works end to end, can receive actions via Eyre, and can resubscribe to circles
* style changes for tiebout
Added support to `lens-command` for outputting a pill. We want this so that we can create (solid and brass) pills from `urb.py`.
This also adds an optimized base64 encoding routine. The previous version of base64 stack overflowed on large inputs, and a tail-recursive version took hours to encode 5mb of data. This one uses the `ripn` jet and only takes a second or two.
Poke with [%watch %sometag config:eth-watcher] to initialize,
then subscribe at /sometag to receive updates in the shape of
[%snap snapshot:eth-watcher] for initial and on-reorg logs,
[%logs loglist] for logs as they happen.
Rather than a flat list of topics to watch for, it is an indexed list
of topics to watch for in those specific positions. As such, items in
that list may also be zero (null, matches any topic), or a list of
topics (matches any one of those topics).
Additionally, topics are always specified using 32 bytes, so there is
no need to specify length explicitly.