RFC 0001 - Resource Name Metadata
Status: **INCOMPLETE DRAFT**
While TheGreatNamingProblem is currenly discussing the distribution mechanism(s) for propogating this information, this wiki is for expanding and solidifying the concept and definiton of Resource Metadata.
The goal of this RFC is to create a comprehensive format for Resource Name metadata, flexible enough to work with any encoding method and distribution model required, (XML, dictionary, serialized, trust-net, p2p, hybrid, etc.), while retaining the ability to be verified cryptographically. This can be accomplished by providing a canonical form, which each of the encodings must be able to translate into.
. resource . a resource is an i2p tunnel endpoint. (an eepsite, irc server, www outproxy, etc.) resourceKey . public key identifying a branded endpoint, a public key used for resource identity, not the destination key used for resource retrieval. resourceName . the string label assigned by the resourceRecord creator to the resourceKey. resourceRecord . the resourceKey and all associated metadata (the whole enchalada) metadata . all attributes attached to the resourceKey in a resourceRecord.
* recordClass . an arbitrary string label used externally for grouping resourceRecords and determining other behaviors (label examples: public, private, protected, group_a, etc. ) other behaviors are arbitrary and may include propogation rules, etc. * resourceKey . a public key generated by the resourceRecord creator, used to uniquely identify a particular resource, even if the destination key migrates. * resourceDestinationKeys . a delimited list of valid I2P keys to use to connect to the resource * serviceType . RFC 1700 code for service (http, irc, ssh, etc.) * createdDate . an untrusted GMT creation date of this resourceRecord - in format YYYYMMDDHHMMSS . perhaps allow for a delimited epoch i.e. YYYYMMDDHHMMSS|epochtimestring or ISO 8601 timestamp YYYYMMDDTHHMMSS * expireDate . GMT expiration date for this resourceRecord - in format YYYYMMDDHHMMSS . same format as above * resourceName . the "preferred" name as defined by the resourceRecord creator. Not guaranteed ownership, but a preference. * comment . comment block, up to 8kb of binary data * recordID . sequence number of resourceRecord, incremented on updates to record as identified by resourceKey . used for differentiating between records with the same resourceKey - higher record IDs are newer. * signature . the DSA signature of the above information. Defined as: . resourceKey.privatekey.sign(concatenation of binary values of ( . recordClass, resourceKey, resourceDestinationKeys , serviceType, createdDate, expireDate, resourceName, comment, recordID))
below here, edits in progress
* (add your ideas here)
* (more to come)
jrandom - firstname.lastname@example.org - email@example.com
orion - firstname.lastname@example.org - email@example.com