Apakah Rumus Kesulitan Dalam Penambangan Bitcoin?

Saya telah menulis kode javascript untuk memahami Target, Kesulitan dan Hashrate Jaringan Rata-rata dan bagaimana mereka saling terkait.

Kesulitan = Kesulitan_1_target / Target Saat Ini;

Kesulitan_1_target adalah target ketika kesulitan adalah 1, jadi itu juga disebut target maks. yang didefinisikan dalam blok genesis sebagai angka 4-byte “1d00ffff”. Target ditemukan di header blok sebagai nomor 4-byte yang merupakan notasi base256 yang kompak, di mana byte pertama adalah eksponen, dan tiga byte terakhir adalah mantissa;

Kesulitan Berikutnya = kesulitan saat ini * 2 minggu / T (Waktu di mana blok tahun 2016 sebelumnya ditemukan).

Jadi, jika kita tahu Kesulitan, dari persamaan di atas kita dapat menemukan Target Saat Ini, menggunakan bignumber.js:

var base = new BigNumber (256);
var hTargetCompact = ‘1d00ffff’;
var e = hTargetCompact.slice (0,2); // First Byte
var exponent = new BigNumber (e, 16);
eksponen = exponent.minus (3);

var m = hTargetCompact.slice (2); // Tiga Byte Signifikan
var mantissa = new BigNumber (m, 16);
var hTarget = mantissa.times (base.toPower (eksponen));
var d = new BigNumber (‘2.87467423441594e12’); // Kesulitan Saat Ini 2874674234415.94

var cTarget = hTarget.div (d) .ceil ();

// Output Target Saat Ini dalam Hex
console.log (cTarget.toString (16));

// Target Saat Ini dalam format kompak
mantissa = cTarget.toString (16) .slice (0,6); // Paling Signifikan tiga byte
exponent = (cTarget.toString (16) .length / 2) .toString (16) // Eksponen

var cTargetCompact = eksponen + mantissa;
console.log (cTargetCompact);
Kode Javascript ada di JSBin,

Anda dapat mencoba kombinasi Anda juga.

Sumber: quora      Penulis: Kherwa

Leave a Reply

Your email address will not be published. Required fields are marked *