Decision-Making Factors which led to POA
Introduction
This article describes how we arrived at the process to ship the first version of Ocean network as its own Proof-of-Authority (POA) network. In the end, we chose to ensure that our data science users had a network with decent performance; it was worth the extra effort to set up POA for this. We plan to go permissionless when technology has matured further.
Process
Here’s the process.
First, in early 2018 we chose to use & Solidity due to its technology maturity and community. We had also considered WASM, but the tooling was not sufficiently mature.
Then, we needed to determine which physical network deployment to deploy to. We delayed having to decide as long as possible, given that technology evolves so rapidly. We had three main options: our own POA, mainnet, or using a 3rd party POA network.
The latter choice only had a single option (to our knowledge) that had appropriate legals: . Alas, it required node operators to be US public notaries, which for us is a showstopper because it was too much dependence on a single jurisdiction.
This left us with two options: POA vs. mainnet. We used the following table to decide. Each row has one factor. For each factor, one of the options is better than others. Factors not on the table are more equal across all options; we list them further below.
Other Factors
Factors which turned out to matter less in decision-making include:
- De-risked network reward tokens in early days? Less a factor because we can reduce the amount of network rewards at the beginning, until the network is stable.
- If Ocean mainnet is not on Ethereum mainnet, how disruptive to Ocean community? Less a factor because Ocean community is mostly data science / AI people, not crypto people. These people don’t really care whether Ethereum mainnet is used. And they really care about performance!
- Optionality to migrate to other substrates in the future. Less a factor because we can fork from Eth mainnet or from our own POA.
Conclusion
mainnet will have more painful performance, and POA will take effort to set up. Ocean AI users is intolerant of poor performance, and we can’t fix that (in the near term) on mainnet. Whereas for taking effort to set up, we can simply just do it. Therefore we chose our own POA.
We plan to go permissionless when technology has matured further.
Published at Tue, 12 Feb 2019 15:18:38 +0000