Development Nieuws
Van het ontwikkelingsteam:
Ontwikkelingsteam bereikt einde van Witness sync project
Na enige tijd in ontwikkeling te zijn geweest nadert witness sync nu zijn einde. In de komende dag of twee zal de code worden samengevoegd in Github, builds vrijgegeven en de eerste fase van witness sync activatie zal worden ingesteld om te activeren op testnet dit weekend.
Wat is Witness sync
Eenvoudige gezegd is witness sync een snellere manier voor nodes (vooral mobiele) om te synchroniseren met het netwerk.
De meer ingewikkelde uitleg is dat, zoals met de meeste ontwikkelingen die we doen, er veel meer bij komt kijken dan dat.
Witnesssynchronisatie kan in wezen worden opgesplitst in twee delen:
1. Een nieuwe, efficiëntere manier om de “set van getuigen” intern in de software bij te houden, alsook een ultracompacte methode om bij te houden welke veranderingen een bepaald blok in de set veroorzaakt. Getuigen\witnessers zullen deze compacte informatie coderen in de header van de blokken waarvan zij getuige zijn.
2. Een nieuwe, efficiëntere manier van synchroniseren. Als deze extra header informatie er eenmaal is, kunnen knooppunten\nodes die een initiële synchronisatie uitvoeren -of het netwerk inhalen na enige tijd offline te zijn geweest- dit veel sneller doen door alleen de handtekening van de getuige voor elke header te verifiëren in plaats van de zeer omslachtige SIGMA (PoW) controles uit te voeren die ze normaal zouden moeten uitvoeren.
Het grootste deel van het werk in dit geval was om 1 correct werkend te krijgen, terwijl 2 omvat waar de meest zichtbare delen voor de gebruiker zullen zijn.
Welk effect kan ik verwachten
Wanneer deel 1 geactiveerd wordt, zouden er permanent kleine prestatieverbeteringen moeten zijn over het hele netwerk voor alle nodes, vooral die op machines met een lager vermogen, maar de eigenlijke synchronisatie zal niet sneller zijn.
Wanneer deel 2 wordt geactiveerd, zou de synchronisatie aanzienlijk sneller moeten zijn, vooral voor langzamere machines. De exacte impact hangt af van de machine, maar op tragere machines zou synchronisatie tot 250x minder CPU-tijd moeten gebruiken, wat een aanzienlijke verbetering is voor apparaten zoals pi nodes of mobiele telefoons, maar zelfs veel krachtigere machines zullen er ook baat bij hebben.
Witness-synchronisatie speelt ook een zeer belangrijke rol in het garanderen van onze capaciteit voor voortdurende GPU/ASIC mining-weerstand in de toekomst, mocht het huidige algoritme (dat tot nu toe zeer goed stand heeft gehouden) ooit in gevaar komen. Voor degenen die geïnteresseerd zijn in deze en andere technische details zal ik, Malcolm, in de nabije toekomst een artikel in mediumvorm publiceren met meer details.
Wanneer wordt het geactiveerd?
Deel 1 verandert enkele zeer complexe interne onderdelen van de software, en beïnvloedt de consensus, dit betekent dat het een harde fork is en introduceert het risico dat het netwerk forkt enz. als er iets fout gaat. Als zodanig zullen we dit eerst uitrollen naar testnet voor een redelijke periode, waar we 100% zeker kunnen zijn dat alles in orde is.
Tegelijkertijd hebben we twee andere veranderingen die ook een harde fork vereisen: de aankomende NFT ontwikkelingen en de beloning veranderingen waarom de community heeft gevraagd. Forken vereisen nogal wat extra overhead en aandacht om ervoor te zorgen dat exchanges upgraden, om te controleren dat ze goed gaan enzovoort en exchanges zullen over het algemeen niet blij zijn als we hen benaderen met een verplichte fork upgrade om de paar weken.
Als zodanig is het onze bedoeling om te proberen sommige (zo niet alle) van deze veranderingen te combineren in een enkele fork, zodat slechts 1 (of misschien 2) forken nodig zijn. Om dit te bereiken zullen we in de gaten houden hoe goed dit werkt op testnet, evenals onze eigen voortgang in de ontwikkeling van NFT en we zullen pas een definitieve beslissing kunnen nemen over welke fork er zal komen als we meer informatie hebben. Het is echter de bedoeling dat dit alles in de komende maanden plaats zal vinden.
Deel 2 zal ergens na deel 1 worden geactiveerd en niet onmiddellijk, een aparte software release zal worden uitgebracht en alle gebruikers die upgraden naar die release zullen er gebruik van kunnen maken.
De vervolgstappen
Naarmate het testen vordert zal ik als ontwikkelaar natuurlijk het testen een beetje in de gaten moeten houden, en er kunnen nog wat kleine veranderingen naar voren komen, dus ik ben nog niet helemaal klaar met witness sync. Het zal echter niet langer het grootste deel van mijn tijd in beslag nemen. Ik zal daarom verder gaan met de volgende punten op onze ontwikkelingsagenda, die zoals het er nu voor staat de NFT ontwikkeling zijn. En de interne discussie over de beloning/halving veranderingen, niet dat dit een interne discussie is over het al dan niet maken van de veranderingen of een soort poging om de veranderingen te ondermijnen, dit is al besloten door de community en GAB, maar eerder een interne due diligence dat deze veranderingen geen onverwachte problemen opleveren of die nu groot of klein zijn. Als de maker van witnessing heb ik potentieel inzicht in hoe het werkt dat niemand anders heeft en hoe zeker we ook zijn het zou roekeloos zijn om veranderingen aan te brengen zonder eerst goed ons verstand en kennis toe te passen op de situatie.
Als er problemen opduiken, zal dit besproken worden met de GAB en uiteindelijk met de community, maar zelfs dan zal het de bedoeling zijn om het eindresultaat zo dicht mogelijk bij het oorspronkelijke verzoek te houden.
Hoe kan ik helpen?
We zullen een aantal gebruikers vragen om op testnet te testen, het testen hoeft niet veel tijd te kosten, uiteindelijk is het nodig om een testnet node te draaien, een aantal getuigenaccounts op testnet aan te maken, en dan periodiek een paar acties uit te voeren (zoals het verlengen of vernieuwen van getuigenaccounts etc.), evenals een aantal incidentele reguliere transacties. Met een behoorlijke groep gebruikers die hier een paar uur in steekt gedurende een paar weken, zouden we de testgegevens moeten krijgen die we nodig hebben. Je hebt geen super geavanceerde vaardigheden nodig om dit te doen, maar een beetje technische kennis (het runnen van nodes etc.) is ideaal, als het iets is waar je aan mee wilt doen sluit je dan aan bij #testnet op Slack en zet een basis node op voor nu, en meer details zullen dan volgen in dat kanaal naarmate de week vordert.