Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
new r(`rho:registry`), threeXret, print in {
	[r, "lookup"](`rho:pubkey:ed25519:<pubkey hash computed above>`, threeXret) |
	for (threeX <- threeXret) {
		threeX!(7, print)
	}
}

Registry design

Lookup Commutativity

I expect that registry lookups will be very common, and so it would be great for block commutativity if we special cased writes to the registry lookup, as two lookups commute with each other as long as the registry hasn't been modified.

Registry Scaling

It should be clear that we can't store the registry as a single giant rholang map. Instead we will store it as a trie using tagged maps as fanout nodes, With UUID's and pubkey hashes, we should get rather speedy divergence. I think map entries per byte is a good initial guess.

We could implement the registry in either scala or rholang. As long as the data is in the tuplespace, it should be fine either way.