Hi everyone,
Here my feedback talking with Marvin (core) and Curd (dev-ops):
Setting up servers within China
From our experience setting up seed nodes in Hong Kong, there are two kinds of networks: an external (that can talk to the rest of the world with high speed) and an internal (that works far within China but is slow outwards). It’s easy to rent a server that runs in the external network. But to have a server in the internal one, a passport and extensive registration is required. Most likely related to the “Great Chinese Firewall.”
AWS Cloudfront
I’ll cite Curd here: “That’s actually sacrificing security for performance. In the current setup, I’d strongly not suggest it, since the users then basically hand off their keys to non-trusted web apps.”
But: Philipp (core lead) is currently experimenting with signing/verifying the shipped source code. If that turns out to be working, then we could actually use an untrusted CDN. Fingers crossed, that would open up an opportunity.
But: Citing Marvin again: “I am not sure if there are any issues with the CDN, as I understood issues are mostly around seed node connectivity” - so the performance issue would not be solved completely by this potential improvement.
Question: @Rob mentioned that after an improvement last year, it got much faster while he was in Shanghai. The improvement here was the release of the pico consensus. (FYI, citing Marvin: “The thing that probably really improved things in China is pico consensus. Chinese (network) have problems with keeping (web)sockets open, but for pico we only need a very short connection lifetime.”) I haven’t seen any reply to that, was he the only one noticing a significant performance improvement?
The solution
Marvin: “The solution to improve this is for people to run nodes in China. The connection gets better the more nodes are in China. Each of them has bad connectivity to the outside world, but as long as they can share new data/proofs with each other, the sum of them will have proper connectivity and if we put them on the community seed node list, all users will be able to profit from that.”
What’s most important about this is: while we as Team Nimiq want to help as much as possible, it is not really possible that (citing Marvin) “the community requests us (a centralized entity) to set up nodes in their country for better performance when nodes are the one part that it is important to be decentralized” - “It doesn’t need to be the Chinese community that sets up seed nodes in china, but it basically can’t be Nimiq or any of our companies, because of regulations.”
Marvin suggests, for example, Alibaba Cloud. And as soon as the those new seed nodes would be added to the community seed node list, they will become available for everyone thus making the experience better for everyone.
We’re happy to start a conversation around providing “NIM bonuses” for community members that provide seed nodes.