• Forum has been upgraded, all links, images, etc are as they were. Please see Official Announcements for more information

Sprawozdanie z prac nad rozwojem Dash

AnarchicCluster

Well-known member
2 Czerwiec 2015
Autor: Evan Duffield
Tłumaczenie: AnarchicCluster
Oryginał


Witam wszystkich

Powoli zaczynamy już kończyć prace nad rozwojem 12 wersji Dash. Wygląda na to, że będzie to jendo z największych jednorazowych aktualizacji jakie kiedykolowiek wypuściliśmy. Na chwilę obecną zawiera ono:

• Usunięcię węzła referencynego
• Nowy, oparty na kworum system wypłat dla masternodów. Oznacza to, że masternody będą wybierane co blok, aby głosować nad tym kto otrzyma wypłatę za wykopanie bloku.
• Nowy protokół budżetowy, oraz cała lista nowych komend potrzebnych do interakcji z systemem budżetowym.
• Jest tam też stałe rozwidlenie sieci (hardfork) oraz miękkie rozwidlenie (spork) których zadaniem będzie aktywowanie oraz zredukowanie łańcucha bloków o 10%. Sprawi to, iż dostępne staną się tzw. super bloki warte maksymalnie 10% miesięcznego miesięcznej wypłaty.
• Zaktualizowanie kodu do 10 wersji Bitcoina razem z funkcją wczytywania nagłówków jako pierwszych.
• Nowa ulepszona architektura nadawania/sondowania masternodów.
• Nowe przyciski naprawy w portfelu.
• Nowa strona internetowa do zarządzania propozycjami projektów.
• Udoskonalenia w DarkSend

W tej chwili, aktywny rozwój tej wersji zostanie spowolniony i pozwolimy głównym członkom zespołu na przperowadzenie serii testów przez kolejne dwa tygodnie. Po upłynięciu tego czasu, pozwolimy na testy publiczne. Testy te powinny trwać nie dłużej niż miesiąc. Po pomyślnym ukończeniu testów publicznych, oficjalnie wypuścimy pełną wersję.
Teraz chcielibyśmy aby kompetentne osoby przejrzały kod źródłowy pod kątem błędów lub innych problemów, które mogły się wkraść do kodu.
Jeśli jesteś uzdolnionym deweloperem, możesz przeglądnąć nasz nowy kod i prześlij nam swoje uwagi na emial [email protected] lub dołąćz do kanału #development na czacie na slack.

Pełny kod źródłowy wersji 12:
https://github.com/dashpay/dash/tree/v0.12.0.x

kod systemu budżetowania:
https://github.com/dashpay/dash/blob/v0 ... budget.cpp
https://github.com/dashpay/dash/blob/v0 ... e-budget.h

kod nowych wypłat nagród:
https://github.com/dashpay/dash/blob/v0 ... yments.cpp
https://github.com/dashpay/dash/blob/v0 ... payments.h

Opis procesu wypłat i budżetowania
Po usunięciu węzła referencyjnego, 10 masternodów zostanie losowo wybranych aby te głosowały nad tym kto ma dostać nagrody za wykopanie bloku. Jest to obliczane dla pierwszej wypłaty przez użycie haszy wejściowych masternodów a później jak już jest znana ostatnia wypłata, wybierany jest jeden działający masternode z najdłuższym czasem oczekiwania.

Algorytm wyboru masternodów:
https://github.com/dashpay/dash/blob/v0 ... n.cpp#L368
Wybór masternodów I nadawanie wiadomości:
https://github.com/dashpay/dash/blob/v0 ... s.cpp#L460
Sprawdzanie bloków:
https://github.com/dashpay/dash/blob/v0 ... s.cpp#L280

Kod sprawdzania bloków jest uruchamiany w przypadku nie osiągnięcia konsensusu przez masternody. Po pewnym czasie, sieć powinna stworzyć kompletny konsensus nad tym kto dostaje jakie wypłaty za wykopanie bloku. Jeśli zaistnieją jakieś sprzeczności, możliwe jest wypłacenie nagrody wielu osobom za jeden blok. Po tym jak cała sieć masernodów dostanie swoje wypłaty, pozostaje tylko jeden ważny odbiorca wypłaty za blok. Daje nam to całkiem dobrze funkcjunujący system, kóry oparty jest na kworum zamiast na łańcuchu bloków, więc cały system pozostaje bezpieczny bez potrzeby zapisywania całej histori w łańcuchu bloków.

Implementacja systemu budżetu
W 12 wersji mamy już całkowitą implementację systemu budżetu sieci. Został on opisany bardziej szczegółowo tutaj i tutaj.

Aby złożyć wniosek o finansowanie potrzeba jedynie wpisać te o to komendy:

Code:
mnbudget vote PROPOSAL-NAME URL PAYMENT_COUNT BLOCK_START DASH_ADDRESS DASH_AMOUNT YES|NO|ABSTAIN’

dash-cli mnbudget vote proposal-one http://www.dashpay.io/one.json 100 58381 y7B3r6SBi1E1RN39DS5WFJpdeS9EifDjMB 1000 yes

Code:
{
"proposal-one" : {
"URL" : "http://www.dashpay.io/one.json",
"Hash" : "22a7fab3765b0aca926f71117114b5019ab616dda3d6bae520a27d76912228dd",
"BlockStart" : 58381,
"BlockEnd" : 63375,
"TotalPaymentCount" : 100,
"RemainingPaymentCount" : 100,
"PaymentAddress" : "y7B3r6SBi1E1RN39DS5WFJpdeS9EifDjMB",
"Ratio" : 1.00000000,
"Yeas" : 1,
"Nays" : 0,
"Abstains" : 0,
"Alloted" : 348214275,
"TotalBudgetAlloted" : 348214275
}
}

Każdy masternode może złożyć podanie o finansowanie projektu bezpośrednio przez swoje API. Strona internetowa do zarządzania projektami potrzebuje jedynie dostępu do masernoda aby mieć możliwość tworzenia i wsyłania projektów do sieci. Cały system jest zbudowany w taki sposób aby był w stu procentach zdecentralizowany. Został on zaprojektowany wokół ideii trzymania wszystkich ważnych informacji budżetowych w sieci, aby strony internetowe z projektami mogły być niezlaeżne ale również dawały możliwość interakcji z nimi.

Po tym jak jakiś projek zostanie wysłany do sieci, inne masternody mogą obliczyć hasz projektu aby móc nad nim głosować. Jeśli cokolwiek zmieni się w propozycji projektu, sam hash również się zmieni. Dzięki temu mechanizmowi, jak tylko jakiś projekt zostanie wysłany do sieci, to nie może zostać on zmieniony bez tworzenia zupełnie nowej propozycji projektu i żądaniu ponownego głosowania.

Finalizowanie budżetu
Raz w miesiącu zasugerowany będzie całkowity budżet sieci. Będzie on oblicznay przez dodawanie propozycji budżetowych zaczynając od tych z największą liczbą głosów na tak. Projekty będą dodawane do momentu aż budżet sieci zostanie całkowicie wyczerpany.

Masternody będą automatycznie głosowały nad końcowym budżetem, który z kolei będzie odczytany przez sieć aby ta autoryzowała super bloki na koniec miesiąca.
https://github.com/dashpay/dash/blob/v0 ... ts.cpp#L22
https://github.com/dashpay/dash/blob/v0 ... ts.cpp#L50

Code:
dash-cli mnfinalbudget show
{
"main" : {
"SubmittedBy" : "0000000000000000000000000000000000000000000000000000000000000000-4294967295",
"Hash" : "34000e61801cb0df633839a3090c9241461b33e4d031c42632d64a3a109dc132",
"BlockStart" : 58400,
"BlockEnd" : 58400,
"Proposals" : ",22a7fab3765b0aca926f71117114b5019ab616dda3d6bae520a27d76912228dd",
"VoteCount" : 1
}
}
 
Krótkie objaśnienie sprawozdania z rozwoju 12 wersji Dash dla opornych

Data: 2 Czerwiec 2015
Autor: TaoOfSatoshi
Tłumaczenie: AnarchicCluster
Oryginał


Będziemy tutaj omawiać post napisany przez Evana Duffielda 2 Czerwca 2015. Link do oryginału jest poniżej.

https://dashtalk.org/threads/development-update-june-2-2015.5070/
Polskie tłumaczenie: https://dashtalk.org/threads/sprawozdanie-z-prac-nad-rozwojem-dash.5079/#post-55846

W tym poscie pozwole sobie na próbę szczegółowego wytłumaczenia o co chodzi w poście Evana, tak aby na chłopski rozum każdy zwykły zjadacz chleba mógł o zrozumieć. Mam nadzieję, że jesteście przygotowani do wchłonięcia nieco wiedzy na temat Dash. Cytaty wzięte z od Evana będą pisane kursywą a wszystko później to już są moje własne komentarze. Jeśli zauważycie, że coś wymaga poprawki lub dokładniejszego wyjaśnienia skontaktujcie się ze mną przez twitera.

Powoli zaczynamy już kończyć prace nad rozwojem 12 wersji Dash. Wygląda na to, że będzie to jendo z największych jednorazowych aktualizacji jakie kiedykolowiek wypuściliśmy. Na chwilę obecną zawiera ono:

· Usunięcię węzła referencyjnego – Węzeł referencyjny jest czymś co miało ustabilizować dystrybucję wypłat dla masternodów. Na początku istnienia masternodów, pojawił się problem wyboru masternoda do podpisania bloku. Od kiey Dash zaimplementował system dwóch sieci aby zwiększyć możliwości łańcucha bloków, węzeł referencyjny był tymczasowy aż do omentu implementacji systemu konsensusu masternodów. Czy było to rozwiązanie zcentralizowane? Tak. Czy wykonało ono swoje zadanie i unormowało wypłaty dla masternodów? Tak. Było to najlepsze rozwiązanie? Nie. Moim zdaniem, było to jedynie środek prowadzący do celu. W tej chwili jesteśmy już tuż tuż od osiągnięcia tego celu więc osądy na temat jak to zostało rozwiązane pozostawię wam.

· Nowy, oparty na kworum system wypłat dla masternodów. Oznacza to, że masternody będą wybierane co blok, aby głosować nad tym kto otrzyma wypłatę za wykopanie bloku. – To jest właśnie ten mechanizm, który pozwala na usunięcie węzła referencyjnego. Teraz sieć masterdnodów jest w stanie sama wybrać masternoda do podpisu bloku. Przytoczmy słowa Evana: „10 masternodów zostanie losowo wybranych aby te głosowały nad tym kto ma dostać nagrody za wykopanie bloku. Jest to obliczane dla pierwszej wypłaty przez użycie haszy wejściowych masternodów a później jak już jest znana ostatnia wypłata, wybierany jest jeden działający masternode z najdłuższym czasem oczekiwania.” Zatrzymajmy się tuta i zastanówmy się nad tym przez chwilę. Mamy tutaj doczynienia z całkowicie zdecentralizowanym sposobem na osiąganie konsesnsusu przez głosowanie. Jak długo toczy się debata na temat głosowania eletronicznego w USA? Ile pieniędzy zostało w to wtopionych? Wolę nawet o tym nie myśleć.

· Nowy protokół budżetowy, oraz cała lista nowych komend potrzebnych do interakcji z systemem budżetowym. – Niesamowite jak jedna innowacja daje początek następnej. W tym wypadku, potrzeba rozwiązania problemu węzła referencyjnego doprowadziła do stworzenia zdecentralizowanego systemu głosowania. Stworzenie tego systemu tworzy z kolei możliwość nadawania kieruneku rozwoju Dash przez osoby posiadające Masternody. Jest to coś całkowicie przełomowego. Dosłownie już teraz dostaję gęsiej skórki jak tylko o tym piszę. Na chwilę obecną istnieje około 2650 masternodów. Oznacza to, iż mamy zgromadzenie 2650 członków każdy z jednym głosem. Niektórzy z członków zgromadzenia już teraz zorganizowali się w partie. Jedna, która jest mi obecnie znana to partia Moocowmoo. Wiem, że istenieje również partia Otoh. Isteniej również wielu niezależnych głosujących. Zaraz zaraz, zaponiałem o którym systemie politycznym tutaj piszę. Dash czy państwowy? Przynajmniej w naszym systemie wszystko jest jawne oraz niezmienne. To jest to, co się dzieje po połączeniu dużych ideii z ograniczoną podażą pieniądza. Teraz z pewnością cały ten koncept budżetu sieci tak samo jak to miało miejsce z węzłem referencyjnym będzie miał swoje własne wyzwania do pokanania. Cały ten system przpomina trochę model Neucoin.org (który powinien oficjalnie wystartować najpóźniej we Wrześniu) ale zamiast dawania jeden głos każdej monecie, nasz system daje klasie ludzi możliwość kontroli swojej klasy. Nasuwa się więc pytanie; jak to wszystko zostanie zrealizowane? Odpowiedź; będzie to wymagało twardego rozwidlenia sieci oraz kilku miękkich. Nie będzie to jednak wielkm kłopote, ponieważ jeśli coś pójdzie nie tak to zawsze możemy polegać na spork. Twarde rozwidlenie sieci nastąpi wraz z wypuszczeniem wersji 0.12.x. Będzie istniał krótki okres czasu w którym obie wersje kody 0.11.x oraz 0.12.x będą mogły działać na tej samej sieci. Jednak jak tylko wystarczająca ilość masternodów zostanie zaktualizowana to zostanie aktywowana seria sporków które doprowadzą do redukcji wypłat dla masternodów o 10%. MYŚLICIE ŻE TO OSZUSTWO? Pozwólcie, że skończę. Aby nie nastąpiły żadne zmiany w podaży DASH oraz aby móc dalej finansować rozwój tego projektu, pod koniec każdego miesiąca, wykopany zostanie superblok. Ten superblok będzie zawierał więcej monet niż zwykłe bloki. Będzie on wypłacał brakujące 10% miesięcznych wypłat, które ustały po egzekucji sporka. Ok, jak na razie omówiliśmy jak to zostanie zrealizowane, ale jeszcze nie wspomnieliśmy o żadnych konkretnych sumach potrzbnych na wynajęcie profesjonalistów do rozwoju tego projektu (przegłosowane projekty). Operatorzy masternodów przez głosowanie nad projektami starającymi się o finansowanie staną się czymś w rodzaju zarządcami skarbca. Ogólnie rzecz ujmując, podział nagrody za wykopanie bloku będzie wygłądał następująco: 45% dla kopaczy, 45% dla operatorów asterdnodów i 10% będzie odładane na finansowanie rozwoju sieci. Jak więc możemy wyliczyć ile będzie warte te 10% ? Moocowmoo musiał mi tutaj pomóc.
5*576*30*0.1 co można przetłumaczyć na:
Nagroda za wykopanie bloku pomnożona przez ilość wykopanych bloków w ciągu jednego dnia pomnożone przez ilość dni w miesiącu co z kolei mnożymy przez 0.1 (10%)
Pamiętasz jak rodzice zawsze tłumaczyli ci, że powinieneś odkładać co najmniej 10% swojego kieszonkowego na czarną godzinę? My słuchaliśmy.

· Zaktualizowanie kodu do 10 wersji Bitcoina razem z funkcją wczytywania nagłówków jako pierwszych. - Trzymanie ręki na pulsie Bitcoina jest czymś co świadczy, że nie jesteśmy amatorami. Nasi deweloperzy znają się na swojej robocie i nie boją się zintegorwać części kodu Bitcoina.

· Nowe przyciski naprawy w portfelu – Nie nawidzę tego jak coś się psuje w moim portfelu. Dodanie przycisków naprawy portfela wydaje się być bardzo sensowne. Nie jestem całkowicie pewien o co chodzi z tymi przyciskami ale mogę się założyć, służą one do naprawy.

· Nowa strona internetowa do zarządzania popozycjami projektów – Jak już tylko sieć będzie mogła wynajmować kontrachentów do pracy nad projektem. Ważne jest aby istniała strona internetowa pozwalająca na proponowanie projektów starających się o finansowanie. Taka strona będzie działała w połączniu z budżetem sieci masternodów. Fundusze będą odkładane na koncie podczas gdy masterdnody będą głosować nad tym, który z projektów jest wart finansowania.

· Udoskonalenie DarkSend – Czy istenieje coś takiego jak zbyt duża zamienność środków płatniczych? Raczej nie. Zawsze będziemy starali się udoskonalać tę funkcję Dasha. Pod poniższym linkiem można poczytać post dewelopera Dasha UdjinM6 w którym pisze on jakie nowości zostały wprowadzone do DarkSend.

https://dashtalk.org/threads/development-update-june-2-2015.5070/page-3#post-55758
 
Last edited by a moderator:
Dzieki Cluster! Jak zawsze top tlumaczenie! :)
Napiwko musi byc ;) 1 piwko i 11 ;)
 
Last edited by a moderator:
Back
Top