AnarchicCluster
New 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:
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
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
}
}