WICHTIG Hash256 Blockchain Demo HILFE mit reward bei Wunsch
Verfasst: Samstag 27. Juli 2024, 04:03
Guten Tag allerseits
ich habe eine Aufgabe erhalten für eine Sonderseminar zu Blockchain,
und zwar muss ich auf folgender Webseite: https://andersbrownworth.com/blockchain/blockchain
in Block # 1
unter Daten meinen Namen eingeben Vor und Nachname
während ind prev 64 x die 0 darin steht
das ist die Ausgangslage nun muss ich eine Nonce finden die mir einen Hash unten ausgibt die mit möglichst vielen 0 beginnt
wenn ich das auf der Webseite mache und auf mine drücke erhalte ich einen hash die mit 4 x 0 beginnt
für jede 0 erhalte ich einen punkt 10/10 ist das maximum. wir dürfen alles verwenden auch KI und den Sourcecode der Webseite etc etc
Jetzt habe ich mit Python folgenden Code:
import hashlib
def generate_hash(prev, data, nonce):
text = prev + data + str(nonce)
return hashlib.sha256(text.encode('utf-8')).hexdigest()
def find_nonce_with_leading_zeros(prev, data, leading_zeros):
target = '0' * leading_zeros
nonce = 0
while True:
hash_result = generate_hash(prev, data, nonce)
if hash_result.startswith(target):
return nonce, hash_result
nonce += 1
prev = '0' * 64
data = 'Oriya Eckhardt'
leading_zeros = 8
nonce, hash_result = find_nonce_with_leading_zeros(prev, data, leading_zeros)
print(f'Nonce: {nonce}')
print(f'Hash: {hash_result}')
mir wurden mehrere Nonce berechnet für 8 leading zeros während im Datafeld der Name Oriya Eckhardt geschrieben steht$
gab mir der code folgenden output: Nonce for 8 leading zeros: 2747188028 dazugehörender hash: 0000000062046..... Wenn ich nun auf der Blockchain Demo seite bei block Nummer 1 in Daten Oriya Eckhardt eingebe und die nonce: 2747188028 eingebe erhalte ich folgenden hash : f29d7cfe997ba1934934fde9dde0b0e13324c7409a5577f1bd5cba4763b073ad
also keine einzige 0
dann habe ich es mit geckodriver probiert lief auch nicht ist mir auch etwas kompliziert.
und dann habe ich versucht halt den sourcecode der blockchain der Webseite in Java zu finden
war folgender : var difficulty = 4; // number of zeros required at front of hash
var maximumNonce = 500000; // limit the nonce to this so we don't mine too long
// NOTE: Because there are 16 possible characters in a hex value, each time you increment
// the difficulty by one you make the puzzle 16 times harder. In my testing, a difficulty
// of 6 requires a maximumNonce well over 500,000,000.
/////////////////////////
// global variable setup
/////////////////////////
var pattern = '';
for (var x=0; x<difficulty; x++) {
pattern += '0';
}
/////////////////////////
// functions
/////////////////////////
function sha256(block, chain) {
// calculate a SHA256 hash of the contents of the block
return CryptoJS.SHA256(getText(block, chain));
}
function updateState(block, chain) {
// set the well background red or green for this block
if ($('#block'+block+'chain'+chain+'hash').val().substr(0, difficulty) === pattern) {
$('#block'+block+'chain'+chain+'well').removeClass('well-error').addClass('well-success');
}
else {
$('#block'+block+'chain'+chain+'well').removeClass('well-success').addClass('well-error');
}
}
function updateHash(block, chain) {
// update the SHA256 hash value for this block
$('#block'+block+'chain'+chain+'hash').val(sha256(block, chain));
updateState(block, chain);
}
function updateChain(block, chain) {
// update all blocks walking the chain from this block to the end
for (var x = block; x <= 5; x++) {
if (x > 1) {
$('#block'+x+'chain'+chain+'previous').val($('#block'+(x-1).toString()+'chain'+chain+'hash').val());
}
updateHash(x, chain);
}
}
function mine(block, chain, isChain) {
for (var x = 0; x <= maximumNonce; x++) {
$('#block'+block+'chain'+chain+'nonce').val(x);
$('#block'+block+'chain'+chain+'hash').val(sha256(block, chain));
if ($('#block'+block+'chain'+chain+'hash').val().substr(0, difficulty) === pattern) {
if (isChain) {
updateChain(block, chain);
}
else {
updateState(block, chain);
}
break;
}
}
}
dazu liess ich fogenden python code genearieren: jedenfalls waren die gefunden noncewerte auch nicht jene die zu 3 leading zeros im hash führten jede zusätzlikche 0 gewährt einen Punkt maximal 10
4 kann ich von hand minen
aber den rest mnuss ich mit einem Programm suchen.
Bitte helft mir es ist eine sehr wichtige Note die ich für den Masterstudiengang benötige, ich bin schon eine Woche an dieser Aufgabe. Es benötigt jedes mal 16 x länger um eine zusätzliche 0 zu finden.
Ich habe auch mit multiprocessing gearbeitet aber das hilft nicht wenn ich die falschen nonce erhalte,
DANKE an jeden der mir hier Hilft ich würde sogar ein Geschenk schicken wenn mir jemand dabei hilft.
ich habe eine Aufgabe erhalten für eine Sonderseminar zu Blockchain,
und zwar muss ich auf folgender Webseite: https://andersbrownworth.com/blockchain/blockchain
in Block # 1
unter Daten meinen Namen eingeben Vor und Nachname
während ind prev 64 x die 0 darin steht
das ist die Ausgangslage nun muss ich eine Nonce finden die mir einen Hash unten ausgibt die mit möglichst vielen 0 beginnt
wenn ich das auf der Webseite mache und auf mine drücke erhalte ich einen hash die mit 4 x 0 beginnt
für jede 0 erhalte ich einen punkt 10/10 ist das maximum. wir dürfen alles verwenden auch KI und den Sourcecode der Webseite etc etc
Jetzt habe ich mit Python folgenden Code:
import hashlib
def generate_hash(prev, data, nonce):
text = prev + data + str(nonce)
return hashlib.sha256(text.encode('utf-8')).hexdigest()
def find_nonce_with_leading_zeros(prev, data, leading_zeros):
target = '0' * leading_zeros
nonce = 0
while True:
hash_result = generate_hash(prev, data, nonce)
if hash_result.startswith(target):
return nonce, hash_result
nonce += 1
prev = '0' * 64
data = 'Oriya Eckhardt'
leading_zeros = 8
nonce, hash_result = find_nonce_with_leading_zeros(prev, data, leading_zeros)
print(f'Nonce: {nonce}')
print(f'Hash: {hash_result}')
mir wurden mehrere Nonce berechnet für 8 leading zeros während im Datafeld der Name Oriya Eckhardt geschrieben steht$
gab mir der code folgenden output: Nonce for 8 leading zeros: 2747188028 dazugehörender hash: 0000000062046..... Wenn ich nun auf der Blockchain Demo seite bei block Nummer 1 in Daten Oriya Eckhardt eingebe und die nonce: 2747188028 eingebe erhalte ich folgenden hash : f29d7cfe997ba1934934fde9dde0b0e13324c7409a5577f1bd5cba4763b073ad
also keine einzige 0
dann habe ich es mit geckodriver probiert lief auch nicht ist mir auch etwas kompliziert.
und dann habe ich versucht halt den sourcecode der blockchain der Webseite in Java zu finden
war folgender : var difficulty = 4; // number of zeros required at front of hash
var maximumNonce = 500000; // limit the nonce to this so we don't mine too long
// NOTE: Because there are 16 possible characters in a hex value, each time you increment
// the difficulty by one you make the puzzle 16 times harder. In my testing, a difficulty
// of 6 requires a maximumNonce well over 500,000,000.
/////////////////////////
// global variable setup
/////////////////////////
var pattern = '';
for (var x=0; x<difficulty; x++) {
pattern += '0';
}
/////////////////////////
// functions
/////////////////////////
function sha256(block, chain) {
// calculate a SHA256 hash of the contents of the block
return CryptoJS.SHA256(getText(block, chain));
}
function updateState(block, chain) {
// set the well background red or green for this block
if ($('#block'+block+'chain'+chain+'hash').val().substr(0, difficulty) === pattern) {
$('#block'+block+'chain'+chain+'well').removeClass('well-error').addClass('well-success');
}
else {
$('#block'+block+'chain'+chain+'well').removeClass('well-success').addClass('well-error');
}
}
function updateHash(block, chain) {
// update the SHA256 hash value for this block
$('#block'+block+'chain'+chain+'hash').val(sha256(block, chain));
updateState(block, chain);
}
function updateChain(block, chain) {
// update all blocks walking the chain from this block to the end
for (var x = block; x <= 5; x++) {
if (x > 1) {
$('#block'+x+'chain'+chain+'previous').val($('#block'+(x-1).toString()+'chain'+chain+'hash').val());
}
updateHash(x, chain);
}
}
function mine(block, chain, isChain) {
for (var x = 0; x <= maximumNonce; x++) {
$('#block'+block+'chain'+chain+'nonce').val(x);
$('#block'+block+'chain'+chain+'hash').val(sha256(block, chain));
if ($('#block'+block+'chain'+chain+'hash').val().substr(0, difficulty) === pattern) {
if (isChain) {
updateChain(block, chain);
}
else {
updateState(block, chain);
}
break;
}
}
}
dazu liess ich fogenden python code genearieren: jedenfalls waren die gefunden noncewerte auch nicht jene die zu 3 leading zeros im hash führten jede zusätzlikche 0 gewährt einen Punkt maximal 10
4 kann ich von hand minen
aber den rest mnuss ich mit einem Programm suchen.
Bitte helft mir es ist eine sehr wichtige Note die ich für den Masterstudiengang benötige, ich bin schon eine Woche an dieser Aufgabe. Es benötigt jedes mal 16 x länger um eine zusätzliche 0 zu finden.
Ich habe auch mit multiprocessing gearbeitet aber das hilft nicht wenn ich die falschen nonce erhalte,
DANKE an jeden der mir hier Hilft ich würde sogar ein Geschenk schicken wenn mir jemand dabei hilft.