|
Post by thomaslundqvist on Apr 26, 2018 8:58:30 GMT 1
Jag måste säga att jag blev otroligt snopen när jag läste instruktionerna till uppgift 4. Allt man har läst om mining så här långt: välja ut transaktioner ur mempoolen, bygga ett merkelträd och hasha merkelroten, hasha blockheadern och hasha hashen. Allt detta har gjort att man rentav längtat till Modul 4 för att äntligen få förstå hur allt det här som bara låtit abstrakt hittills fungerar i praktiken. Men så kommer inlämningsuppgiften och allt man ska göra är att skriva en kort kommandorad. Hur väljs transaktionerna? Vem kontrollerar att de är okej och inte har dubbelspenderats? Hur byggs merkelträdet upp och hur sätts blockheadern ihop? Alla dessa frågor står fortfarande obesvarade känner jag. Är detta mining så som den går till på riktigt?? Hur kontrolleras föregående block och hur väljer jag vilket jag ska bygga vidare på? Hela den här konsensusbiten känner jag har helt utelämnats i modulen. Hej, tråkigt med snopna studenter... Vi vågar inte ha med för mycket detaljer i kursen eftersom vi har låga (inga) förkunskapskrav. I vår parallellkurs som är lite större (Blockchain med Python) går vi djupare. Men vi tar tacksamt med oss alla kommentarer till nästa kurstillfälle vi planerar. En uppgift runt mining är svår att designa, den blir antingen lite (för) lätt som nu eller väldigt komplex. Det beror på att bitcoin edu-noden gör allt jobb åt oss. Och det gör den även när man kör t ex cpuminer externt. Bitcoin edu-noden kontrollerar alla transaktioner innan de läggs in i mempoolen. Därefter ber miningprogrammet om ett block-skelett med färdigvalda transaktioner (typiskt väljs de med mest fee först). Miningprogrammet kan styra ordningen på transaktionerna (påverkar merkleträdet) och förändra nonce-värdet för att hitta ett giltligt block enligt den difficulty som gäller för tillfället. Mycket ligger alltså färdigt bitcoin edu-noden men det är inget som hindrar att man dumpar ut alla transaktioner i mempoolen själv och bygger ett block utan hjälp av noden.
|
|
paax
New Member
Posts: 13
|
Modul 4
Apr 26, 2018 21:24:53 GMT 1
Post by paax on Apr 26, 2018 21:24:53 GMT 1
Jag måste säga att jag blev otroligt snopen när jag läste instruktionerna till uppgift 4. Allt man har läst om mining så här långt: välja ut transaktioner ur mempoolen, bygga ett merkelträd och hasha merkelroten, hasha blockheadern och hasha hashen. Allt detta har gjort att man rentav längtat till Modul 4 för att äntligen få förstå hur allt det här som bara låtit abstrakt hittills fungerar i praktiken. Men så kommer inlämningsuppgiften och allt man ska göra är att skriva en kort kommandorad. Hur väljs transaktionerna? Vem kontrollerar att de är okej och inte har dubbelspenderats? Hur byggs merkelträdet upp och hur sätts blockheadern ihop? Alla dessa frågor står fortfarande obesvarade känner jag. Är detta mining så som den går till på riktigt?? Hur kontrolleras föregående block och hur väljer jag vilket jag ska bygga vidare på? Hela den här konsensusbiten känner jag har helt utelämnats i modulen. Hej, tråkigt med snopna studenter... Vi vågar inte ha med för mycket detaljer i kursen eftersom vi har låga (inga) förkunskapskrav. I vår parallellkurs som är lite större (Blockchain med Python) går vi djupare. Men vi tar tacksamt med oss alla kommentarer till nästa kurstillfälle vi planerar. En uppgift runt mining är svår att designa, den blir antingen lite (för) lätt som nu eller väldigt komplex. Det beror på att bitcoin edu-noden gör allt jobb åt oss. Och det gör den även när man kör t ex cpuminer externt. Bitcoin edu-noden kontrollerar alla transaktioner innan de läggs in i mempoolen. Därefter ber miningprogrammet om ett block-skelett med färdigvalda transaktioner (typiskt väljs de med mest fee först). Miningprogrammet kan styra ordningen på transaktionerna (påverkar merkleträdet) och förändra nonce-värdet för att hitta ett giltligt block enligt den difficulty som gäller för tillfället. Mycket ligger alltså färdigt bitcoin edu-noden men det är inget som hindrar att man dumpar ut alla transaktioner i mempoolen själv och bygger ett block utan hjälp av noden. Tack för ditt svar Thomas! Jag är helt med på att det vore olämpligt med en mycket mer avancerad mining än den vi gjorde, men kursen borde definitivt innehålla en demonstration eller ett förtydligande till de olika mining-momenten. Av det som framgått ur videoföreläsningarna och i boken så nämns aktiviteterna i ordalag som: "minern väljer ut transaktioner", "det är högre sannolikhet att en transaktion med hög 'fee' kommer med i ett block", "minern sätter ihop transaktionerna i ett block", "noderna kontrollerar det nya blocket så att det verkar vara korrekt", o.s.v. För en invigd person är det här säkert hur klart och tydligt som helst, men för en som aldrig varit i närheten av mining förut så skapar varje sån formulering tio frågor kring 'hur' och 'varför': HUR väljer minern ut transaktioner, HUR gör minern blocket rent praktiskt, VARFÖR väljer minern ut just de transaktionerna, VARFÖR väljer inte minern bara EN transaktion för att snabba på miningen, HUR kontrollerar noderna att blocket verkar korrekt, o.s.v. Eftersom det krävs så otroligt många hashningsförsök så misstänker man att merparten av de 10 minuterna går åt till att hitta rätt noncevärde; och då undrar man hur allt det andra ska hinnas med. Det kanske blir ännu mer tydligt när man tittar på Etherium som släpper ett block, var det var 15:e sekund? Då känns det som att alla moment i miningen måste vara automatiserade; och det kanske är det som är svaret på Bitcoin-mining också, att allt sköts automatiskt av ett smart datorprogram, ungefär så som vår inlämningsuppgift gick till; det var bara jag som sett en massa manuella (mänskliga) aktiviteter framför mig när jag läst och hört om hur miningen går till.
|
|
|
Post by thomaslundqvist on May 1, 2018 15:32:13 GMT 1
Jag är helt med på att det vore olämpligt med en mycket mer avancerad mining än den vi gjorde, men kursen borde definitivt innehålla en demonstration eller ett förtydligande till de olika mining-momenten. Av det som framgått ur videoföreläsningarna och i boken så nämns aktiviteterna i ordalag som: "minern väljer ut transaktioner", "det är högre sannolikhet att en transaktion med hög 'fee' kommer med i ett block", "minern sätter ihop transaktionerna i ett block", "noderna kontrollerar det nya blocket så att det verkar vara korrekt", o.s.v. För en invigd person är det här säkert hur klart och tydligt som helst, men för en som aldrig varit i närheten av mining förut så skapar varje sån formulering tio frågor kring 'hur' och 'varför': HUR väljer minern ut transaktioner, HUR gör minern blocket rent praktiskt, VARFÖR väljer minern ut just de transaktionerna, VARFÖR väljer inte minern bara EN transaktion för att snabba på miningen, HUR kontrollerar noderna att blocket verkar korrekt, o.s.v. Eftersom det krävs så otroligt många hashningsförsök så misstänker man att merparten av de 10 minuterna går åt till att hitta rätt noncevärde; och då undrar man hur allt det andra ska hinnas med. Det kanske blir ännu mer tydligt när man tittar på Etherium som släpper ett block, var det var 15:e sekund? Då känns det som att alla moment i miningen måste vara automatiserade; och det kanske är det som är svaret på Bitcoin-mining också, att allt sköts automatiskt av ett smart datorprogram, ungefär så som vår inlämningsuppgift gick till; det var bara jag som sett en massa manuella (mänskliga) aktiviteter framför mig när jag läst och hört om hur miningen går till. Miningmomenten är helt automatiserade. Att välja ut transaktioner och bygga blocken görs typiskt av de olika miningpoolerna på under en sekund. Därefter sätter hashningen igång i alla anslutna miningmaskiner som provar olika noncevärden. Men vi behöver helt klart bli mer konkreta. Bra input!
|
|
|
Modul 4
Sept 15, 2019 17:22:49 GMT 1
Post by vasiliy777 on Sept 15, 2019 17:22:49 GMT 1
A blockchain is, in the simplest of terms, a time-stamped series of immutable record of data that is managed by cluster of computers not owned by any single entity. On www.hypersphere.ai you can learn more about blockchain.
|
|