Future of the support of BNB Smart Chain and Bor (Polygon) in Erigon
Around a year ago, in January and February 2022, Erigon has accepted the inclusion of the support of BNB Smart Chain and Bor (from Polygon) into the codebase. There was a large interest in this from the outside. From our point of view, our interest was to “stress test” our architecture and data models to see how such large chains could be supported.
Our initial hope was that most of the code maintenance would be done by external contributors, which was partially the case.
However, the demand to our time from the support of these chains, has increased considerably. There seem to have been regular regressions that were difficult to diagnose because we do not ourselves maintain fully-synced Erigon nodes for BNB Smart Chain and Bor. Still, when time allowed it, I tried personally to debug the issues (mostly about sync being stuck in headers and bodies stage), with some success, but at as cost of somewhat “frantic” release schedule. At the same time, continuing developments in the go-ethereum-derived versions (which are so far dominant and “officially” supported) seem to diverge from our roadmap. We expect this divergence to further increase our burden, unless properly integrated into our roadmap. Despite issues, so far we had an impression that there is still a strong external interest in Erigon to continue to support these large chains.
We do definitely expect Erigon 3 (as specified in our roadmap) to bring significant benefits to our Ethereum and Gnosis Chain implementations (both in terms of reduction of sync time and disk footprint), but benefits would be even greater for BNB Smart Chain and Bor.
We feel it is unfair for us to spend ever increasing resources on continuing support of these platforms while only being funded by Ethereum Foundation and Gnosis DAO. Over the past few months, we had conversations with some representatives of BNB Smart Chain and Polygon about the need for continuing funding of our efforts, if the support is to continue. However, as it stands, our feeling also is that the expectation is (as it was traditionally the case) that our team needs to “apply” for funding, providing some extra commitments beyond what we already do (or trying to do), and then navigate the internal processes of the respective organisations to get the funding. As a result, we would also over-commit in the process of negotiating the level of funding. As unusual as it may sound, we would like to reverse this “process”.
We would like BNB Smart Chain and Polygon representatives to “apply” to Erigon for continuing the support of the respective chain, which we will agree to, if sufficient ongoing funding is provided - as simple as that. If this does not happen, we aim at removing the respective code from Erigon shortly after 1st of April 2023, and therefore discontinue support. It is, of course, possible, for anyone to create a fork of Erigon at that point and continue support “on the side”, but without our team being held responsible for the results.
Important note: representatives mentioned above have been given advance view of this post, and also our terms of funding. So far, BNB Smart Chain replied that unfortunately, they are not able to provide funding on these terms.
We feel that current situation is untenable for us, so we need a proper resolution, and we are ready for either outcome. We either drop support and concentrate our efforts on the platforms where our funding comes from, or, having received appropriate funding, incorporate support into our roadmap, without over-committing in the attempt to gain funding using the currently expected process.
Finally, we would like to clarify, that this proposal to “apply” only extends to BNB Smart Chain and Polygon, because Erigon already has support for these platforms and there are apparently a lot of users who would not want this to be discontinued. In other words, we are not planning to add support for any more platforms. Instead, our plan is to consolidate development and ensure we have sustainable runway for accomplishing our complete roadmap. Short version of the roadmap for quick reference: