Download URL: https://gridnet.org/GRIDNETCore.zip
Hey folks! What’s up! This was supposed to be Release Notes of version 1.0.6 so why 1.0.7 all of the sudden, huh? Testing, testing, hot-patching… things move around rather fast around here… anyway! Let us go, let us flow (…) the glory of Decentralization it awaits! So, let us take a look (…)
Lots and lots of changes and improvements (yet again…)
We’ve actually added a brand new (now acting as initial) stage which verifiers all the nodes which are being discovered through our variance of Kademlia decentralized ⋮⋮⋮ Peers’ Discovery Protocol.
The number of validated data-sources is updated on screen as these are verified:
Feel free to switch to the more detailed Developer’s Pane of Chromium (CTRL+SHIFT+I) to see these validations taking place in much more detail:
Why was that needed? Well, our network is now fully decentralized.
Now the question is - why the assets would not be reachable in the first place?
Simple. Nodes might be behind a variety of NATs / firewalls which, when not properly configured, might thwart access to resources. Also, resources might not be available from a particular node due to invalid TLS certificates and a variety of custom settings imposed by a particular web-browser and/or client’s Internet Service Provider.
So, the bottom line is - now ⋮⋮⋮ Bootloader, verifies and validates access to assets from each discovered peer before assuming it as an appropriate data-source. That immensely improved reliability of the ⋮⋮⋮ Decentralized User Interface Loading mechanics.
- improved protection against network eclipsing attacks
Now, each node will attempt to keep a connection with at least one of the ‘official’ nodes to improve resilience against malicious nodes and network eclipsing attacks. These connections and or data from these nodes are not prioritized in any way.
- yet again - improved performance of synchronization (lots of changes here)
As we’ve already mentioned on Twitter, we’ve been improving synchronization performance for when the history of events of the ⋮⋮⋮ Decentralized State-Machine grows.
What’s so special about the cases at large block heights?
The exchanged ‘chain-proofs’ (proving the history of events, without nodes needing to download the actual data-blocks) between ⋮⋮⋮ Nodes used to get bigger and bigger. Not only did it impose excessive network-overheads, but the processing power needed to analyze these by recipients grew linearly with a given block height of the current leading block.
That processing used to take place within a thread responsible for a given conversation, which could lead to connections being dropped, as not even keep-alive signals were to be exchanged as the recipient verified a provided chain-proof.
So we went ahead and optimized this a lot.
The exchanged chain-proofs are now very minimal. And both the processing power and network overheads are orders of magnitude smaller. Not only that. We’ve also introduced protection against evil nodes which would attempt to enforce processing of large chain-proofs onto others.
improved connections’ management. We test everything 24/7 when anything goes wrong we jump straight into the action and fix things. The overall stability of connections between nodes has been yet again improved.
improved reporting and logging
yet again minimized mutex-congestion, leading to better overall performance
other minor changes
improved support of internal DNS mechanics by the ⋮⋮⋮ Bootloader:
or it’s probably even better visible below:
Chromium requires content served by TLS certificates to be accessed from computers pointed to by the Centralized global DNS system (at least in its default configuration), thus we make our internal DNS system translate IPs to known domains. We’ll be making utilities and commands available which would allow for you to register decentralized domains of your own, for now - should you wish to have a node registered within our own domain at *.GRIDNET.ORG simply do let us know and we would issue a certificate and a sub-domain so that you could use it ex. ‘orion.gridnet.org’ or whatever you come up with.