13.80940
i’ve been prototyping versioned nodes implementations. one thing that is proving difficult is managing the sheer number of types of capabilities.
this is something like a public diary.
in the past i’ve attempted to do a wiki sort of home page, but inevitably there are more dead links than time to fill them in, and some of the content gets rapidly out of sync with my current thoughts on things.
this section is explicitly light on organization, minimal on proof-reading, no effort-posts, just an append-only repository of thought.
i most likely didn’t fully endorse any of them at the time they were written, much less as time passes.
i’ve been prototyping versioned nodes implementations. one thing that is proving difficult is managing the sheer number of types of capabilities.
so i’m playing with a virtual machine idea based on closures. basic idea is that each procedure takes a fixed number of inputs, and a call either adds insufficient inputs and so returns a new closure or adds enough inputs and so invokes the procedure (which returns whatever it returns).
every so often i need to render some data in human-typeable form. sometimes that leads me to my one-word-per-byte encoding. other times it leads me to the various n characters per m bytes encodings.
one very popular fully encrypted transport protocol over udp would make traffic analysis of fully encrypted protocols much harder.
got some thinking to do on luggage sizes
had a strange idea for a magic system…
there’s apparently technical guidelines1 that talk about turning random bits into random numbers between 0 and something other than powers of two. unfortunately it’s lacking a bit of nuance.
i’ve been using a pair of (relatively) cheap ar glasses as my primary display for a few weeks. overall i like it a lot, still need to get lens inserts to correct my elliptical (and a little interpupiary distance difference). but it’s only 1080p per eye, so of course i’m looking at how to build something better. which end me up looking at datasheets for ti’s mems display chips…
i’ve been wanting a good way to migrate signature keys in converge. ideally a migrating key pair that:
in cryptography, we often require domain separation for different uses of the same primitives. roughly, this means ensuring that the inputs to a primitive for different purposes cannot overlap. so there are no instances where you can lift a value from one part of the protocol and use it in another.
i’ve been thinking about data confusion - interpreting the same pile of bytes as different types.
i quite like the anti-spam property of converge that i described yesterday. but it also seems a bit too harsh to prevent all automated initiation of contact. how can we enable some unilateral initiation, as an extra that you specifically need to enable?
the internet has a fundamental assumption that anyone can send anything to anyone. this assumption has of course been broken at the IP layer by firewalls and NAT, causing no end of headaches for application developers and users. that assumption permeates the whole stack - not only can i send a packet to any computer on the public internet, i can email anybody, i can message anybody on any of the messaging platforms. i can tag anybody on social media. on the internet everybody is next door and can come round whenever they want.
but what if they couldn’t?