Polkadot is shipping updates at an insane pace. We assumed that this is the best way to add value. More features + optimizations = more value. But is this still true?
What makes Polkadot valuable?
The fact that parachain teams are willing to build their business here instead of elsewhere. And the outlook of attracting more of such teams in the future.
It is therefore paramount to retain them and attract new parachain teams. But how do we do this? I would say by offering value to them. This may sound simple enough, but implies that we let our decisions be guided by their business needs.
Ultimately, the value that we offer greatly depends on how we offer it.
What is our value proposition?
Polkadot sells access to a resource. This resource has been called âcore timeâ or âblock spaceâ. Polkadot proposes its value by offering this resource to parachains.
While doing so, it has levers to tweak this resource in various dimensions.
What we are currently offering looks a bit like this:
The feedback that Parity received from parachain builders indicates that this is not aligned with their needs. Our current offer introduces breaking changes to their production code quite often, either for optimizations or new features.
But breaking changes are not free (literally!). Every time there is a breaking change, parachain teams evaluate the following factors:
-
- Opportunity cost of missing out on the new feature.
-
- Developer cost of integrating the change.
-
- Risk of downtime due to bugs in the code.
As it turns out, the developer cost and risk of downtime almost always outweigh the opportunity cost of missing the new feature. This is a purely business-sided observation. Nonetheless, parachain teams are businesses that think economically.
New features are nice, but if the profit that they generate is not worth the risk, then what is their worth? This brings me to think that what we should offer, looks more like this:
Valuing stability over development velocity would make it much easier for teams to build on Polkadot. They could rely on Polkadot to not get rug-pulled by new development decisions regularly.
What to pick here is a difficult decision to take. But one that the Polkadot Community needs to take eventually. Other ecosystems that cater more to the needs of their builders are more than happy to welcome our outflow of talent.
Polkadot as Product
Polkadot development has been mostly about the Tech. But to stay relevant, we need to shift to think more like a business:
- What do parachain teams need?
- How can we help them to stay profitable?
- How can we ensure that they stay here?
We have to let the answers to these questions deeply affect our development decisions.
Moving forward
This is not just a task for Parity, but for all builders in the Ecosystem.
Nonetheless, Parity set out three goals to reduce the maintenance and integration cost for parachain teams; the parachain-omni-node, a release process, and runtime integration testing.
This is, possibly, not enough. If you are a parachain builder, please comment more ways to make building on Polkadot easier for you.
Parachain Omni Node
The Polkadot-SDK has a huge surface area. We publish about 380 crates that are considered to be a developer-facing interface. This makes it very difficult for parachain teams to ensure that they are using the right versions and integrating the changes correctly.
This is all done in the name of customizability. But only a fraction of parachain teams actually want this level of customizability. For most of them, having a node that âjust worksâ is fine.
The parachain-omni-node
is set out to be a universal node that can be used to collate for any parachain (as long as it does not rely on custom changes).
This massively reduces our developer-facing surface area and abstracts away much of the complexity.
What do you (parachain team) think about this?
New Release Process
We currently release three things: Polkadot-SDK crates, Relay+Para Nodes, and the Runtimes. All are relevant for parachain builders. To introduce more stability, Parity is proposing a 3-month LTS release cycle for the SDK and the Node software. It would mean that breaking changes only occur every three months (see RELEASE.md). There would still be minor version bumps for bug fixes in this period.
As the Runtimes are handled by The Fellowship, they may or may not follow suit with this.
To make this not just an internal project checklist but a success, we need to check with parachain teams if this aligns with what they need.
What do you (parachain team) think about this?
Runtime Integration Testing
Distributed systems are tricky. There is no way around integration testing. Parity is currently in the process of hiring for exactly this purpose.
The idea is to have an end-to-end parachain integration test (similar to this) that we can run before releasing a runtime change.
Hopefully, this will catch more XCM bugs before they hit production networks.