Sketchpad#
System Components#
Strictly schematic and keeping track of different pieces. Not indicative of code structure and definitely not final
Rough Roadmap#
Enough to get us to SfN for now…
Data#
Triple Data Model#
content_hash
- hash of contained triple graph, after resolutioncontainer_hash
- original hash ofcontent_hash
and metadata of container when first createdversion_hash
- the version of this particular instance of the container, excludingcontainer_hash
- should be equal to container_hash when first instantiating.
Example
Types of references and means of identifying
Absolute (hash of a container): Containers are the only uniquely identifiable thing in the network. Everything else has to be done relative to them.
Relative (resolve against the containing context)
Container:
. -> pred -> obj
- links that describe the container.External: How to refer to some external but otherwise identifiable thing? eg. How do I identify that I am making a translation layer for
numpy
when they aren’t involved with p2p-ld at all? I should be able to use a variety of tactics - eg. I should be able to saypypi:numpy
and then in turn identifypypi
by URI. If someone else declares it by sayingurl:numpy
and referring to their homepage, for example, then later we can declare those things as equal
Resolving Cycles
The identity is the root node of the graph, so do a breath-first
Resolving names
How do we go from an external hash to another object? Our peer should be able to hydrate every content hash into an author:hash
pair so that our downloading peer knows who to ask about shit. Or if we are the owner of that thing they know they can ask us for an additional container.
Scrap#
Just a stub to check if mermaid works
Graph Data Model#
Triplets
Containers
Codecs