-- Leo's gemini proxy

-- Connecting to sunshinegardens.org:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini; lang=en

7fs


venti and vac-like utils provides key/value content-addressed WORM storage


types and schemas


custom objects are possible, but for the sake of interopability we should prefer a flexible set of basic objects. any "special concessions" that we make for cryptogen must also be useful to other network servers in the same class.


storage


for a basic version, we'll simply write the bencoded blocks to a <prefix>/<key> directory tree. this is exposed as a function interface so the storage driver can be replaced or configured at a later date. B+tree?


objects are stored in sequential `arena_size←1-˜2⋆32` byte arenas that can easily be backup'd separately. compacting is probably important. `⌊57344÷˜arena_size` blocks per arena.


filters


seven is fundamentally a key-value store for arbitrary keys, filters provide block translation for content-addressed storage and other storage types.


block index


an index is kept of all known blocks and what arena they are stored in.


garbage collection


blocks may be stored with a ttl field that indicates when a block is set to expire.


communication


we expose *modules* that provide native scheme interfaces to the provided resources. no protocol overhead, direct argument passing. external interfaces may be provided by `relay` or another networking module. the internal protocol is defined as follows:


-- Response ended

-- Page fetched on Fri May 17 08:24:22 2024