721
General Discussion / Re: drltc's Trustee Technical Discussion Thread
« on: April 01, 2014, 02:37:45 pm »The key thing with notaries is that they must be prepared to have servers with very high uptime and redundancy.
If you have multiple notaries, this is unnecessary. In fact, having multiple notaries and fast recovery from a single notary going offline means that there's really no reason an ordinary node can't serve as notary.
So I propose using a random selection algorithm (Poisson process) to add notaries one at a time, and have the oldest notary's term expire if there are too many. Thus notary duty is not for some elite users with fast servers and connections to the right people to get into a hard-coded list somewhere, rather it is open to any node, with your chance to be selected proportional to your balance. (As I've explained previously, both here and elsewhere, not using your balance to determine the weight of your vote makes it easy to game the system by making a large number of addresses with tiny balances.) You get the benefits of fork protection and predictable block times, but the degree of centralization is actually quite limited.
To alleviate uptime concerns, I propose a five-stage scheme: Unknown, pending, eligible, secondary, primary. Unknown nodes are most of the network most of the time. Pending nodes have been selected by the random selection algorithm as potential notaries, but they have to pass an uptime test by signing every block for UPTIME_TEST_LENGTH = 1 hour. Eligible nodes have successfully passed the uptime test and are waiting for a "seat" to open up. Secondary / primary refer to active notaries; primary notary duty rotates every block.
That is a really good idea, no mining, no centralization.