All GDP objects should have keypairs and metadata
All GDP objects (including routers, servers, and services) should have a keypair and metadata associated with them; currently only logs do. Some such metadata will be ephemeral (e.g., applications that do not hold persistent state), but others need to have said metadata stored on persistent host storage. This will require several things:
- There needs to be a tool similar to
gdp-createto create a keypair and metadata for a new object; however, it needs to store that metadata outside the GDP itself (and not use the
CREATEcommand for instantiation, since instantiation happens separately).
- Some mechanism needs to be created for binding an object to the metadata. Objects such as
gdplogdalready find a name for themselves in a parameter file, but this needs to be extended to other object classes in some reasonable way.
- The method for storing secret keys needs to be re-evaluated — it's not clear it scales adequately. It's also unclear if the secret key should be stored with the (public) metadata or separately.
GETMETADATAcommand needs to be implemented in
gdplibso that applications talking to services can get the metadata for that service.
- Names of services need to be stored in HONGD, since the GDPname will no longer be the hash of a human name. Alternatively, the persistent name (described in the second bullet) could be stored as an internal name instead of a human name.