Pages:
Author

Topic: BITCOIN CORE - page 3. (Read 8686 times)

legendary
Activity: 2296
Merit: 2892
#SWGT CERTIK Audited
June 05, 2024, 06:42:16 PM
-snip-
Dibawah ini saya buat script node js untuk men-generate BIP39 Mnemonic secara random
Code:
import * as bitcoin from "bitcoinjs-lib";
const bip32 = BIP32Factory(ecc);
import { BIP32Factory } from 'bip32';
import * as ecc from "tiny-secp256k1";
import * as bip39 from 'bip39';
const testnet = bitcoin.networks.testnet;
bitcoin.initEccLib(ecc);

const mnemonic = bip39.generateMnemonic();
const seed = bip39.mnemonicToSeedSync(mnemonic);
const root = bip32.fromSeed(seed, testnet);
const xprv = root.toBase58();
const xpub = root.neutered().toBase58();

console.log('BIP39 Mnemonic :', mnemonic);
console.log('BIP39 Seed :', seed.toString('hex'));
console.log('BIP32 Root Key :', xprv);
console.log('BIP32 Root PubKey :', xpub);
-snip-

Saya belum mencoba script di atas, namun ada sedikit pertanyaan;
Pada script di atas dituliskan beberapa kali kata "testnet", seperti contoh pada: const testnet = bitcoin.networks.testnet, apakah mesti demikian sementara untuk mainnet tidak perlu dituliskan karena sudah default?
sr. member
Activity: 192
Merit: 262
Rollbit.com - Crypto Futures
June 05, 2024, 07:58:46 AM
ane ada pertanyaan baru, kira2 apakah aman menggunakan wallet yang privatekey didapatkan dari seed di iancoleman.io ?
jadi maksud saya kalo alamat-alamat itu berasal dari seed, akan memudahkan ane jika sewaktu2 ingin memasukan seed ke walllet lain yang support seed.

Gunakan tool dari iancoleman yang versi offline-nya mas: https://github.com/iancoleman/bip39/releases/tag/0.5.6
Bagaimanapun juga cukup beresiko jika meng-generate seed menggunakan tool tersebut dalam keadaan online.

Seperti yang sudah dijelaskan oleh Om Husna, bahwa https://iancoleman.io/bip39/ bisa dijalankan secara offline dengan cara memutus koneksi internet. Namun jika masih ada kekhawatiran dan ada kecurigaan, jika situs tersebut (atau situs-situs generator lainnya) memiliki hidden vulnerability dan memiliki kapabilitas untuk merekam log files dan mengirimkannya ke server pada saat koneksi internet tersambung kembali, maka salah satu cara untuk membuat mnemonic adalah dengan menggunakan Python atau Node JS.

Terus terang jika menyangkut mnemonic, seed dan private key, saya pribadi juga akan sangat berhati-hati karena informasi sensitif tersebut berkaitan dengan aset crypto yang kita miliki.

Dibawah ini saya buat script node js untuk men-generate BIP39 Mnemonic secara random
Code:
import * as bitcoin from "bitcoinjs-lib";
const bip32 = BIP32Factory(ecc);
import { BIP32Factory } from 'bip32';
import * as ecc from "tiny-secp256k1";
import * as bip39 from 'bip39';
const testnet = bitcoin.networks.testnet;
bitcoin.initEccLib(ecc);

const mnemonic = bip39.generateMnemonic();
const seed = bip39.mnemonicToSeedSync(mnemonic);
const root = bip32.fromSeed(seed, testnet);
const xprv = root.toBase58();
const xpub = root.neutered().toBase58();

console.log('BIP39 Mnemonic :', mnemonic);
console.log('BIP39 Seed :', seed.toString('hex'));
console.log('BIP32 Root Key :', xprv);
console.log('BIP32 Root PubKey :', xpub);

Namun jika agan menginginkan informasi yang lebih detail seperti yang tertampilkan di situs https://iancoleman.io/bip39/, atau buat siapa saja yang ingin mengecek apakah bakal men-generate seed, XPRV, WIF, P2PKH address, dll yang sama dengan yang dihasilkan oleh https://iancoleman.io/bip39/ maupun setelah diimport ke Client Bitcoin Core (menggunakan tutorial yang sudah saya post sebelumnya). Maka bisa menggunakan script panjang dibawah ini.

Code:
import * as bitcoin from "bitcoinjs-lib";
const bip32 = BIP32Factory(ecc);
import { BIP32Factory } from 'bip32';
import * as ecc from "tiny-secp256k1";
import * as bip39 from 'bip39';
const testnet = bitcoin.networks.testnet;
import { toXOnly, tapTreeToList, tapTreeFromList } from 'bitcoinjs-lib/src/psbt/bip371.js';
bitcoin.initEccLib(ecc);

const mnemonic = bip39.generateMnemonic();
const seed = bip39.mnemonicToSeedSync(mnemonic);
const root = bip32.fromSeed(seed, testnet);
const xprv = root.toBase58();
const xpub = root.neutered().toBase58();

console.log('BIP39 Mnemonic :', mnemonic);
console.log('BIP39 Seed :', seed.toString('hex'));
console.log('BIP32 Root Key :', xprv);
console.log('BIP32 Root PubKey :', xpub);
console.log("\n")
const path0 = "m/44'/1'/0'"
const account = root.derivePath(path0);
const accxprv = account.toBase58();
const accxpub = account.neutered().toBase58();

console.log("*BIP-44 (Derivation Path = m/44'/1'/0')");
console.log('Account XPRV :', accxprv);
console.log('Account XPUB :', accxpub);
console.log("\n")

const path1 = "m/44'/1'/0'/0"
const bipp32 = root.derivePath(path1);
const bip32xprv = bipp32.toBase58();
const bip32xpub = bipp32.neutered().toBase58();

console.log("*BIP-44 (Derivation Path = m/44'/1'/0'/0)");
console.log('BIP32 XPRV :', bip32xprv);
console.log('BIP32 XPUB :', bip32xpub);
console.log("\n")

const path2 = "m/44'/1'/0'/0/0"
const child1 = root.derivePath(path2);
const privkey = child1.toWIF();
const publick = child1.publicKey;
const p2pkh  = bitcoin.payments.p2pkh({pubkey: child1.publicKey, network: testnet}).address;

console.log("*BIP-44 (Derivation Path = m/44'/1'/0'/0/0)");
console.log('WIF :', privkey);
console.log('PUBKEY :', publick.toString('hex'));
console.log('P2PKH :', p2pkh);
console.log("\n")

const path3 = "m/49'/1'/0'/0/0"
const child2 = root.derivePath(path3);
const privkey2 = child2.toWIF();
const publick2 = child2.publicKey;
const p2wsh  = bitcoin.payments.p2sh({redeem: bitcoin.payments.p2wpkh({pubkey: child2.publicKey, network: testnet}), network: testnet}).address;

console.log("*BIP-49 (Derivation Path = m/49'/1'/0'/0/0)");
console.log('WIF :', privkey2);
console.log('PUBKEY :', publick2.toString('hex'));
console.log('P2SH-P2WPKH :', p2wsh);
console.log("\n")

const path4 = "m/84'/1'/0'/0/0"
const child3 = root.derivePath(path4);
const privkey3 = child3.toWIF();
const publick3 = child3.publicKey;
const segwit  = bitcoin.payments.p2wpkh({pubkey: child3.publicKey, network: testnet}).address;

console.log("*BIP-84 (Derivation Path = m/84'/1'/0'/0/0)");
console.log('WIF :', privkey3);
console.log('PUBKEY :', publick3.toString('hex'));
console.log('P2WPKH :', segwit);
console.log("\n")

const path5 = "m/86'/1'/0'/0/0"
const child4 = root.derivePath(path5);
const privkey4 = child4.toWIF();
const publick4 = child4.publicKey;
const taproot  = bitcoin.payments.p2tr({internalPubkey: toXOnly(child4.publicKey), network: testnet}).address;

console.log("*BIP-86 (Derivation Path = m/86'/1'/0'/0/0)");
console.log('WIF :', privkey4);
console.log('PUBKEY :', publick4.toString('hex'));
console.log('P2TR :', taproot);

Jika tidak ingin men-generate mnemonic secara random atau sudah memiliki mnemonic yang dibuat sendiri (misal melalui flip coin atau dari wasabi wallet), maka untuk mendapatkan informasi turunan dari mnemonic tersebut :
Code:
const mnemonic = bip39.generateMnemonic();
Diganti dengan
Code:
const mnemonic = 'BIP39 Word List'



Untuk menjalankan Script Node JS diatas, sebelumnya harus mengunduh  javascript library yang dibutuhkan

Code:
npm install bitcoinjs-lib
npm i bip39
npm i bip32
npm i tiny-secp256k1
legendary
Activity: 2296
Merit: 2892
#SWGT CERTIK Audited
June 05, 2024, 05:47:36 AM
ane ada pertanyaan baru, kira2 apakah aman menggunakan wallet yang privatekey didapatkan dari seed di iancoleman.io ?
jadi maksud saya kalo alamat-alamat itu berasal dari seed, akan memudahkan ane jika sewaktu2 ingin memasukan seed ke walllet lain yang support seed.

Gunakan tool dari iancoleman yang versi offline-nya mas: https://github.com/iancoleman/bip39/releases/tag/0.5.6
Bagaimanapun juga cukup beresiko jika meng-generate seed menggunakan tool tersebut dalam keadaan online.


-snip-
- Bisa juga meng-import keseluruhan descriptor secara bersamaan
Code:
importdescriptor '[{ "desc": "External P2PKH Descriptor", "active": true, "timestamp": "now", "internal": false },{ "desc": "Internal P2PKH Descriptor", "active": true, "timestamp": "now", "internal": true },{ "desc": "External P2SH-P2WPKH Descriptor", "active": true, "timestamp": "now", "internal": false },{ "desc": "Internal P2SH-P2WPKH Descriptor", "active": true, "timestamp": "now", "internal": true },{ "desc": "External P2WPKH Descriptor", "active": true, "timestamp": "now", "internal": false },{ "desc": "Internal P2WPKH Descriptor", "active": true, "timestamp": "now", "internal": true },{ "desc": "External P2TR Descriptor", "active": true, "timestamp": "now", "internal": false },{ "desc": "Internal P2TR Descriptor", "active": true, "timestamp": "now", "internal": true }]'

Proses ini mengingatkan saya pada saat test import descriptor dari hardware wallet menggunakan HWI (https://bitcointalksearch.org/topic/m.63946799).
Masih belum dicoba lagi dengan Trezor setelah sebelumnya masih error ketika menggunakan Ledger Nano X.
member
Activity: 71
Merit: 28
June 05, 2024, 05:13:09 AM
@punk.zink
trims banyak udah diberi penjelasan yg sangat detail.
awalnya agak njlimet karna ane kurang begitu ngerti dgn walet descriptor, namun setelah ane baca pelan2 n praktek lgsg di bitcoin core, akhirnya ane bisa memasukan alamat dari iancoleman ke bitcoin core.

ane ada pertanyaan baru, kira2 apakah aman menggunakan wallet yang privatekey didapatkan dari seed di iancoleman.io ?
jadi maksud saya kalo alamat-alamat itu berasal dari seed, akan memudahkan ane jika sewaktu2 ingin memasukan seed ke walllet lain yang support seed.
sr. member
Activity: 192
Merit: 262
Rollbit.com - Crypto Futures
June 04, 2024, 11:47:21 PM
sebelumnya ane sempet baca2 thread edukasi proses transaksi dan block yang mas punk bikin, n disitu ada bberapa pembahasan mengenai wallet taprot n wallet descriptor.
nah, kebetulan ane ada unek2 tentang caranya memasukan alamat-alamat btc yang ane dapat dari web https://iancoleman.io/bip39/.
tujuan ane membuat custom seed dan memasukan alamat btc dari seed itu ke dompet bitcoin core.
apakah mas punk tau cara memasukan seed ke bitcoin core ?

sori jika lewat dm, soalnya kalok ane posting di thread punyanya situ takutnya malah keluar dari topik

Saya rasa untuk pertanyaan yang agan tujukan pada saya lewat PM, lebih cocok jika dibahas di thread Bitcoin Core, dan maaf jika PM yang agan lakukan saya angkat disini karena saya rasa tidak ada sesuatu yang bersifat pribadi dan sensitif, jadi biar pembahasannya bisa juga berguna bagi member-member lain.

Setauku Bitcoin Core tidak (belum) support dengan mnemonic maupun seed phrase, sehingga tidak ada opsi untuk membuat atau mengimport mnemonic/Seed pada Client Bitcoin Core.

Namun jika yang menjadi tujuannya adalah memasukan address-address yang diturunkan dari mnenomic tersebut kedalam Client Bitcoin Core, maka itu bisa dilakukan dengan cara mengimport keseluruhan descriptor berdasarkan masing-masing derivation path ke dalam sebuah Descriptor wallet pada Bitcoin Core.

- Pertama-tama agan buat sebuah Blank descriptor wallet baru di Bitcoin Core melalui GUI atau Console dengan opsi Private Key enable
createwallet "wallet_name" false true

- Catat BIP32 Root Key (pada Derivation Path BIP32/BIP44) yang didapatkan dari https://iancoleman.io/bip39/
contoh : tprv8ZgxMBicQKsPdXjyHB9DHUtdWcPVtfQrzdxVTZgRYkAqL7nny7KU785btfaVGETntxwQb3bYg8n Z7p2xyjVLP9PPjuXx2CjxcNYPaAYHMiY

- Tambahkan output descriptor dan Derivation Path secara spesifik, agar nantinya di descriptor wallet di Bitcoin core bisa men-generate semua tipe address (P2PKH, Nested segwit, Bech32, dan Bech32m)

P2PKH
Code:
"pkh(tprv8ZgxMBicQKsPdXjyHB9DHUtdWcPVtfQrzdxVTZgRYkAqL7nny7KU785btfaVGETntxwQb3bYg8nZ7p2xyjVLP9PPjuXx2CjxcNYPaAYHMiY/44h/1h/0h/0/*)"
"pkh(tprv8ZgxMBicQKsPdXjyHB9DHUtdWcPVtfQrzdxVTZgRYkAqL7nny7KU785btfaVGETntxwQb3bYg8nZ7p2xyjVLP9PPjuXx2CjxcNYPaAYHMiY/44h/1h/0h/1/*)"

P2SH-P2WPKH
Code:
"sh(wpkh(tprv8ZgxMBicQKsPdXjyHB9DHUtdWcPVtfQrzdxVTZgRYkAqL7nny7KU785btfaVGETntxwQb3bYg8nZ7p2xyjVLP9PPjuXx2CjxcNYPaAYHMiY/49h/1h/0h/0/*))"
"sh(wpkh(tprv8ZgxMBicQKsPdXjyHB9DHUtdWcPVtfQrzdxVTZgRYkAqL7nny7KU785btfaVGETntxwQb3bYg8nZ7p2xyjVLP9PPjuXx2CjxcNYPaAYHMiY/49h/1h/0h/1/*))"

P2WPKH (Bech32)
Code:
"wpkh(tprv8ZgxMBicQKsPdXjyHB9DHUtdWcPVtfQrzdxVTZgRYkAqL7nny7KU785btfaVGETntxwQb3bYg8nZ7p2xyjVLP9PPjuXx2CjxcNYPaAYHMiY/84h/1h/0h/0/*)"
"wpkh(tprv8ZgxMBicQKsPdXjyHB9DHUtdWcPVtfQrzdxVTZgRYkAqL7nny7KU785btfaVGETntxwQb3bYg8nZ7p2xyjVLP9PPjuXx2CjxcNYPaAYHMiY/84h/1h/0h/1/*)"

P2TR (Bech32m)
Code:
"tr(tprv8ZgxMBicQKsPdXjyHB9DHUtdWcPVtfQrzdxVTZgRYkAqL7nny7KU785btfaVGETntxwQb3bYg8nZ7p2xyjVLP9PPjuXx2CjxcNYPaAYHMiY/86h/1h/0h/0/*)"
"tr(tprv8ZgxMBicQKsPdXjyHB9DHUtdWcPVtfQrzdxVTZgRYkAqL7nny7KU785btfaVGETntxwQb3bYg8nZ7p2xyjVLP9PPjuXx2CjxcNYPaAYHMiY/86h/1h/0h/1/*)"

0/* untuk receive address (External Path Descriptor), sementara 1/* adalah untuk change address (Internal Path Descriptor)


- Cari masing-masing checksum dari semua output descriptor diatas menggunakan perintah getdescriptorinfo
Code:
getdescriptorinfo "pkh(tprv8ZgxMBicQKsPdXjyHB9DHUtdWcPVtfQrzdxVTZgRYkAqL7nny7KU785btfaVGETntxwQb3bYg8nZ7p2xyjVLP9PPjuXx2CjxcNYPaAYHMiY/44h/1h/0h/0/*)"
Code:
"descriptor": "pkh(tpubD6NzVbkrYhZ4WzmmApoogtYk5duS3zbmZwZGk5iiy1yEAc3ZbW94HchU4nUyLK8ffSMXyR5on9UzCerc8kWWdn4DrdYdNTPSYpJGBNrUfUo/44h/1h/0h/0/*)#5c2cher2",
  "checksum": "7vhy8h2a",

Code:
getdescriptorinfo "pkh(tprv8ZgxMBicQKsPdXjyHB9DHUtdWcPVtfQrzdxVTZgRYkAqL7nny7KU785btfaVGETntxwQb3bYg8nZ7p2xyjVLP9PPjuXx2CjxcNYPaAYHMiY/44h/1h/0h/1/*)"
Code:
"descriptor": "pkh(tpubD6NzVbkrYhZ4WzmmApoogtYk5duS3zbmZwZGk5iiy1yEAc3ZbW94HchU4nUyLK8ffSMXyR5on9UzCerc8kWWdn4DrdYdNTPSYpJGBNrUfUo/44h/1h/0h/1/*)#9v0e2vnj",
  "checksum": "0cj96z69",
* lakukan hal ini untuk seluruh output descriptor

- Penulisan output descriptor pada saat di import ke Bitcoin Core adalah seperti ini
Code:
"pkh(tprv8ZgxMBicQKsPdXjyHB9DHUtdWcPVtfQrzdxVTZgRYkAqL7nny7KU785btfaVGETntxwQb3bYg8nZ7p2xyjVLP9PPjuXx2CjxcNYPaAYHMiY/44h/1h/0h/0/*)#7vhy8h2a"
"pkh(tprv8ZgxMBicQKsPdXjyHB9DHUtdWcPVtfQrzdxVTZgRYkAqL7nny7KU785btfaVGETntxwQb3bYg8nZ7p2xyjVLP9PPjuXx2CjxcNYPaAYHMiY/44h/1h/0h/1/*)#0cj96z69"

- Mengimport descriptor ke Bitcoin Core (satu-persatu)
Code:
importdescriptor '[{ "desc": "External Path Descriptor", "active": true, "timestamp": "now", "internal": false },{ "desc": "Internal Path Descriptor", "active": true, "timestamp": "now", "internal": true }]'
Code:
importdescriptor '[{ "desc": "pkh(tprv8ZgxMBicQKsPdXjyHB9DHUtdWcPVtfQrzdxVTZgRYkAqL7nny7KU785btfaVGETntxwQb3bYg8nZ7p2xyjVLP9PPjuXx2CjxcNYPaAYHMiY/44h/1h/0h/0/*)#7vhy8h2a", "active": true, "timestamp": "now", "internal": false },{ "desc": "pkh(tprv8ZgxMBicQKsPdXjyHB9DHUtdWcPVtfQrzdxVTZgRYkAqL7nny7KU785btfaVGETntxwQb3bYg8nZ7p2xyjVLP9PPjuXx2CjxcNYPaAYHMiY/44h/1h/0h/1/*)#0cj96z69", "active": true, "timestamp": "now", "internal": true }]'
* lakukan hal ini berulang sampai semua descriptor berhasil di import ke Bitcoin Core

- Bisa juga meng-import keseluruhan descriptor secara bersamaan
Code:
importdescriptor '[{ "desc": "External P2PKH Descriptor", "active": true, "timestamp": "now", "internal": false },{ "desc": "Internal P2PKH Descriptor", "active": true, "timestamp": "now", "internal": true },{ "desc": "External P2SH-P2WPKH Descriptor", "active": true, "timestamp": "now", "internal": false },{ "desc": "Internal P2SH-P2WPKH Descriptor", "active": true, "timestamp": "now", "internal": true },{ "desc": "External P2WPKH Descriptor", "active": true, "timestamp": "now", "internal": false },{ "desc": "Internal P2WPKH Descriptor", "active": true, "timestamp": "now", "internal": true },{ "desc": "External P2TR Descriptor", "active": true, "timestamp": "now", "internal": false },{ "desc": "Internal P2TR Descriptor", "active": true, "timestamp": "now", "internal": true }]'



Setelah seluruh output descriptor berhasil diimport ke Bitcoin core, silahkan buat (generate) masing-masing jenis address (P2PKH, Nested segwit, Bech32, dan Bech32m), dan untuk masing-masing address akan sama dengan address yang ada pada https://iancoleman.io/bip39/.

Contoh : Pada saat agan pertama kalinya men-generate legacy (P2PKH) address pada Bitcoin Core maka ini akan sama dengan address yang ditunjukan di iancoleman.io/bip39 pada derivation path m/44'/1'/0'/0/0 (n1JgEj7RZbS8KXuc5yNYmzKaVYFNnW6Fue) dan jika agan men-generate legacy (P2PKH) address untuk kedua kalinya, address tersebut seperti yang ditunjukkan pada path m/44'/1'/0'/0/1 (n1Hyi9KkiKf8TaYQ3rqG5WEPq4Ns2vpuQ4)
sr. member
Activity: 192
Merit: 262
Rollbit.com - Crypto Futures
June 03, 2024, 12:11:12 AM
Terakhir ane cek untuk trade terakhir di market Altquick, harganya 0.00000058 BTC untuk 1 TBTC atau sekitar Rp 600 per TBTC. Ini sudah lebih mahal daripada sebagian besar koin meme yang ada di coinmarketcap.

Kalau baca pengalaman dari @MaxSoocha, ane rasa membeli TBTC seharga 600 rupiah per koinnya lebih worth it daripada harus nambang sendiri yang mana energi listrik yang dibutuhkan untuk nambang 1 TBTC bisa digunakan untuk membeli beberapa puluh atau bahkan ratusan TBTC. Apalagi jaman sekarang sebagian besar orang masih suka yang instan-instan, jadi beli di bursa dengan harga yang relatif murah masih dianggap hal yang lebih efektif.


[1] https://bitcointalksearch.org/topic/--5489309

Biaya mining tBTC di jaringan testnet memang mahal dan tergantung pada perangkat mining yang digunakan. Karena pada dasarnya tBTC tidak memiliki nilai, maka apapun jenis perangkat hashpower yang dipakai buat mining dan berapapun tBTC yang bisa didapatkan, hasilnya akan selalu loss karena "Cost" akan selalu lebih besar dari "0".

Misal menggunakan ASIC S9 dengan hashrate 13 TH/s dan daya 1300 Watt, dan katakanlah dalam sehari agan bisa mendapatkan seluruh block (144 Blocks), maka Cost mining dalam satu hari adalah : (1300 * 24 / 1000) * Rp 1700 = Rp 53.040, sementara untuk profit 0 walaupun berhasil didapatkan block subsidy sebesar 0.87890544 tBTC (0.00610351 tBTC * 144 Blocks).

Untungnya mayoritas kontributor di jaringan Testnet Bitcoin tidak memiliki pemikiran komersil seperti yang dilakukan oleh https://buytestnet.com/ atau https://altquick.com/exchange/market/BitcoinTestnet. Sehingga kita masih dengan mudah mendapatkan tBTC secara gratis melalui faucet.
hero member
Activity: 1470
Merit: 555
dont be greedy
June 02, 2024, 07:40:03 PM
Saya cukup yakin itu coin testnet lama-lama bakal mahal di pasaran, kemungkinan harganya bakal sama dengan meme coin kalau sudah sulit untuk ditambang.
Terakhir ane cek untuk trade terakhir di market Altquick, harganya 0.00000058 BTC untuk 1 TBTC atau sekitar Rp 600 per TBTC. Ini sudah lebih mahal daripada sebagian besar koin meme yang ada di coinmarketcap.

Kalau baca pengalaman dari @MaxSoocha, ane rasa membeli TBTC seharga 600 rupiah per koinnya lebih worth it daripada harus nambang sendiri yang mana energi listrik yang dibutuhkan untuk nambang 1 TBTC bisa digunakan untuk membeli beberapa puluh atau bahkan ratusan TBTC. Apalagi jaman sekarang sebagian besar orang masih suka yang instan-instan, jadi beli di bursa dengan harga yang relatif murah masih dianggap hal yang lebih efektif.


[1] https://bitcointalksearch.org/topic/--5489309
sr. member
Activity: 192
Merit: 262
Rollbit.com - Crypto Futures
May 31, 2024, 10:56:11 AM
Beberapa waktu yang lalu @Chikito menyinggung perihal pair tBTC dengan fiat yang disediakan exchange
https://bitcointalksearch.org/topic/m.64104337

Saya lihat ada salah satu contoh marketnya di exchange namun tBTC-nya pair dengan BTC:
https://altquick.com/exchange/market/BitcoinTestnet
Yang namanya kebutuhan, apa pun itu, baik itu mainet, atau testnet kek selagi ada yang nyari dan mau beli pasti akan disediakan, dan yang namanya pasar juga, apa lagi sekarang ini lagi marak-maraknya pengembang untuk membuat token-token di jaringan bitcoin, pasti akan banyak membutuhkan coin testnet, kalau faucet atau yang gratisan tidak menyediakan (ada pun hanya sedikit cuma 0,000...) maka market atau pasarlah yang mereka cari, berapa pun harganya pasti akan dibeli untuk memenuhi kebutuhan pengembang.

Saya cukup yakin itu coin testnet lama-lama bakal mahal di pasaran, kemungkinan harganya bakal sama dengan meme coin kalau sudah sulit untuk ditambang.

Miris sih kalo melihat tBTC yang seharusnya tidak memiliki value, malah menjadi sebuah object yang bisa diperdagangkan secara komersil, karena hal tersebut sudah menyimpang dari konsep dasar Jaringan Testnet diciptakan. Untuk solusinya ya pasti akan terus dilakukan reset, sampai didapatkan kondisi dimana jaringan testnet dan tBTC-nya dipergunakan sebagaimana mestinya.

Alternatif lain bagi para pengembang atau orang-orang yang ingin melakukan eksperimen, yakni dengan cara menjalankan Client Bitcoin pada jaringan Signet. Cara runningnya pun cukup mudah, dengan menjalankan daemon bitcoind pada mode signet : bitcoind/bitcoin-qt -signet

Kalo untuk mode GUI Signet, tidak tersedia file application serta shortcut-nya secara default layaknya Bitcoin mainnet dan testnet. Jadi (untuk pengguna windows) jika ingin menjalankan GUI Bitcoin Signet harus membuat shortcut-nya secara manual.

* Copy shortcut dari Bitcoin Mainnet atau Testnet
* Paste (untuk sementara) ke folder lain
* Klik Properties >>> General >>> Rubah nama shortcut (contoh menjadi Bitcoin Core (signet, 64-bit))
* Tab Shortcut >>> Target >>> rubah menjadi "C:\Program Files\Bitcoin\bitcoin-qt.exe" -signet
* Klik Apply atau OK, lalu pindahkan shortcut tersebut pada folder dimana shortcut Bitcoin mainnet dan testnet tersimpan


Cara lain untuk menjalankan GUI Signet (tanpa harus membuat Shortcut) :

* Jalankan CMD
* Arahkan ke directory dimana bitcoin-qt.exe tersimpan
* lalu ketikan perintah bitcoin-qt -signet

Pada saat pertama kali bitcoind/bitcoin-qt -signet dijalankan, maka akan terbuat dan tersimpan folder "signet" pada directory data Bitcoin yang ada di PC. Dan kita bisa menjalankan GUI Mainnet, Testnet serta Signet secara bersamaan (yang terpenting spek PC-nya kuat untuk menjalankan ketiga program tersebut). Ukuran data pada folder Signet untuk saat ini adalah sekitar 900MB




Faucet Signet
https://signetfaucet.com/
https://signetfaucet.bublina.eu.org/

Blockchain Explorer Signet
https://mempool.space/signet
legendary
Activity: 2366
Merit: 2054
May 30, 2024, 08:59:02 PM
Beberapa waktu yang lalu @Chikito menyinggung perihal pair tBTC dengan fiat yang disediakan exchange
https://bitcointalksearch.org/topic/m.64104337

Saya lihat ada salah satu contoh marketnya di exchange namun tBTC-nya pair dengan BTC:
https://altquick.com/exchange/market/BitcoinTestnet
Yang namanya kebutuhan, apa pun itu, baik itu mainet, atau testnet kek selagi ada yang nyari dan mau beli pasti akan disediakan, dan yang namanya pasar juga, apa lagi sekarang ini lagi marak-maraknya pengembang untuk membuat token-token di jaringan bitcoin, pasti akan banyak membutuhkan coin testnet, kalau faucet atau yang gratisan tidak menyediakan (ada pun hanya sedikit cuma 0,000...) maka market atau pasarlah yang mereka cari, berapa pun harganya pasti akan dibeli untuk memenuhi kebutuhan pengembang.

Saya cukup yakin itu coin testnet lama-lama bakal mahal di pasaran, kemungkinan harganya bakal sama dengan meme coin kalau sudah sulit untuk ditambang.
sr. member
Activity: 192
Merit: 262
Rollbit.com - Crypto Futures
May 30, 2024, 01:10:52 AM
Dengan kata lain, kalau mau menampilkan informasi yang lebih banyak semisal untuk menampilkan informasi setiap account XPRV, argument-nya tetap menggunakan listdescriptors. Jadi tinggal disesuaikan dengan kebutuhan.
Contoh : saya membuat sebuah descriptor wallet dengan label "test-desc-wallet, dan dibawah ini adalah informasi yang didapat dari fungsi listdescriptors dan listdescriptors true

Code: (listdescriptors true)
{
  "wallet_name": "test-desc-wallet",
  "descriptors": [
    {
      "desc": "pkh(tprv8ZgxMBicQKsPeSEG1RJbdfj5M2wQkfqFNREvtWy2LREGdxurvggQ1VWTzesBaUdYy4ukuSRPDzfPXuoN6Vk7zWUDigV9d6zs6WapFjMDX1W/44h/1h/0h/0/*)#ajdlht2z",
    },
    {
      "desc": "pkh(tprv8ZgxMBicQKsPeSEG1RJbdfj5M2wQkfqFNREvtWy2LREGdxurvggQ1VWTzesBaUdYy4ukuSRPDzfPXuoN6Vk7zWUDigV9d6zs6WapFjMDX1W/44h/1h/0h/1/*)#vxg72766",
    },
    {
      "desc": "sh(wpkh(tprv8ZgxMBicQKsPeSEG1RJbdfj5M2wQkfqFNREvtWy2LREGdxurvggQ1VWTzesBaUdYy4ukuSRPDzfPXuoN6Vk7zWUDigV9d6zs6WapFjMDX1W/49h/1h/0h/0/*))#n0rpx3z9",
    },
    {
      "desc": "sh(wpkh(tprv8ZgxMBicQKsPeSEG1RJbdfj5M2wQkfqFNREvtWy2LREGdxurvggQ1VWTzesBaUdYy4ukuSRPDzfPXuoN6Vk7zWUDigV9d6zs6WapFjMDX1W/49h/1h/0h/1/*))#4vtyauf3",
    },
    {
      "desc": "wpkh(tprv8ZgxMBicQKsPeSEG1RJbdfj5M2wQkfqFNREvtWy2LREGdxurvggQ1VWTzesBaUdYy4ukuSRPDzfPXuoN6Vk7zWUDigV9d6zs6WapFjMDX1W/84h/1h/0h/0/*)#0j46t6hm",
    },
    {
      "desc": "wpkh(tprv8ZgxMBicQKsPeSEG1RJbdfj5M2wQkfqFNREvtWy2LREGdxurvggQ1VWTzesBaUdYy4ukuSRPDzfPXuoN6Vk7zWUDigV9d6zs6WapFjMDX1W/84h/1h/0h/1/*)#7xsmk08r",
    }
  ]
}

Dari data diatas, ane coba meng-import keseluruhan descriptor ke Node testnet4 untuk membandingkan jika dicall menggunakan gethdkeys private=true, hasilnya akan menunjukan data seperti apa. Untuk itu sengaja ane membuat sebuah wallet baru dengan opsi "blank=true", dengan tujuan biar tidak ada descriptor aktif selain descriptors yang ane coba import tersebut.

Code:
./bitcoin-cli -testnet4 -rpcuser=punk -rpcpassword=punk -rpcwallet="Tester" importdescriptors '[{ "desc": "pkh(tprv8ZgxMBicQKsPeSEG1RJbdfj5M2wQkfqFNREvtWy2LREGdxurvggQ1VWTzesBaUdYy4ukuSRPDzfPXuoN6Vk7zWUDigV9d6zs6WapFjMDX1W/44h/1h/0h/0/*)#ajdlht2z", "active": true, "timestamp": "now", "internal": false },{ "desc": "pkh(tprv8ZgxMBicQKsPeSEG1RJbdfj5M2wQkfqFNREvtWy2LREGdxurvggQ1VWTzesBaUdYy4ukuSRPDzfPXuoN6Vk7zWUDigV9d6zs6WapFjMDX1W/44h/1h/0h/1/*)#vxg72766", "active": true, "timestamp": "now", "internal": true },{ "desc": "sh(wpkh(tprv8ZgxMBicQKsPeSEG1RJbdfj5M2wQkfqFNREvtWy2LREGdxurvggQ1VWTzesBaUdYy4ukuSRPDzfPXuoN6Vk7zWUDigV9d6zs6WapFjMDX1W/49h/1h/0h/0/*))#n0rpx3z9", "active": true, "timestamp": "now", "internal": false },{ "desc": "sh(wpkh(tprv8ZgxMBicQKsPeSEG1RJbdfj5M2wQkfqFNREvtWy2LREGdxurvggQ1VWTzesBaUdYy4ukuSRPDzfPXuoN6Vk7zWUDigV9d6zs6WapFjMDX1W/49h/1h/0h/1/*))#4vtyauf3", "active": true, "timestamp": "now", "internal": true },{ "desc": "wpkh(tprv8ZgxMBicQKsPeSEG1RJbdfj5M2wQkfqFNREvtWy2LREGdxurvggQ1VWTzesBaUdYy4ukuSRPDzfPXuoN6Vk7zWUDigV9d6zs6WapFjMDX1W/84h/1h/0h/0/*)#0j46t6hm", "active": true, "timestamp": "now", "internal": false },{ "desc": "wpkh(tprv8ZgxMBicQKsPeSEG1RJbdfj5M2wQkfqFNREvtWy2LREGdxurvggQ1VWTzesBaUdYy4ukuSRPDzfPXuoN6Vk7zWUDigV9d6zs6WapFjMDX1W/84h/1h/0h/1/*)#7xsmk08r", "active": true, "timestamp": "now", "internal": true }]'


Pada saat ane call menggunakan perintah gethdkeys '{"active_only":true,"private":true}', hasilnya adalah sebagai berikut

Code:
./bitcoin-cli -testnet4 -rpcuser=punk -rpcpassword=punk -rpcwallet="Tester" gethdkeys '{"active_only":true,"private":true}'
[
  {
    "xpub": "tpubD6NzVbkrYhZ4XuG3u4yC35PBv4TLv129wiqiB31Kkh2fUTAdZ5VzBz8LAoSBwUhwJm9hJ1iWAd9k1MgomzGJuB5Q1RJ8LysotnDhGwGoCKx",
    "has_private": true,
    "xprv": "tprv8ZgxMBicQKsPeSEG1RJbdfj5M2wQkfqFNREvtWy2LREGdxurvggQ1VWTzesBaUdYy4ukuSRPDzfPXuoN6Vk7zWUDigV9d6zs6WapFjMDX1W",
    "descriptors": [
      {
        "desc": "pkh([1515f2b6/44h/1h/0h]tpubDDr9JiJs7GsZhhDpB4hDHV8Z5E6R4pW2a5DGmzSoUFetMcEgQxc8v2tLBT5uVtYaAgm1vddewXxRHnBz9GSRvStkaY2mkbwDXoipSHN7WGW/0/*)#35yaqm3h",
        "active": true
      },
      {
        "desc": "pkh([1515f2b6/44h/1h/0h]tpubDDr9JiJs7GsZhhDpB4hDHV8Z5E6R4pW2a5DGmzSoUFetMcEgQxc8v2tLBT5uVtYaAgm1vddewXxRHnBz9GSRvStkaY2mkbwDXoipSHN7WGW/1/*)#qqpuawp0",
        "active": true
      },
      {
        "desc": "sh(wpkh([1515f2b6/49h/1h/0h]tpubDCFGurQNg79RaaHS6ffwcujZBHoqwE6XzhW7dC6NGuiLTiRZngQziVjTrFornJDGc87sVMN6NWqXtKNZyk7JLZ5cDMom9aybQAdADJzpeFV/0/*))#qr3kw65h",
        "active": true
      },
      {
        "desc": "sh(wpkh([1515f2b6/49h/1h/0h]tpubDCFGurQNg79RaaHS6ffwcujZBHoqwE6XzhW7dC6NGuiLTiRZngQziVjTrFornJDGc87sVMN6NWqXtKNZyk7JLZ5cDMom9aybQAdADJzpeFV/1/*))#4zlqk9pg",
        "active": true
      },
      {
        "desc": "wpkh([1515f2b6/84h/1h/0h]tpubDCuxh2HzTrmpVv3JrAfkDEMgM7cVEVTZaJKm33KTdKgw4BtvAHCyqKDDyzihEYLDoEW9t27okbWi6jnUwdXVtUtMJz1YTdVbzcZWuRqpvvb/0/*)#a8777ngc",
        "active": true
      },
      {
        "desc": "wpkh([1515f2b6/84h/1h/0h]tpubDCuxh2HzTrmpVv3JrAfkDEMgM7cVEVTZaJKm33KTdKgw4BtvAHCyqKDDyzihEYLDoEW9t27okbWi6jnUwdXVtUtMJz1YTdVbzcZWuRqpvvb/1/*)#vnmlrxcq",
        "active": true
      }
    ]
  }
]

Dan ternyata memang benar, XPRV tprv8ZgxMBicQKsPeSEG1RJbdfj5M2wQkfqFNREvtWy2LREGdxurvggQ1VWTzesBaUdYy4ukuSRPDzf PXuoN6Vk7zWUDigV9d6zs6WapFjMDX1W ternyata memang BIP32 Root Key (Master Private Key), dan untuk seluruh descriptor mirip dengan informasi descriptors yang ditunjukan pada saat menggunakan perintah "listdescriptors"
legendary
Activity: 2254
Merit: 2253
From Zero to 2 times Self-Made Legendary
May 29, 2024, 08:23:13 PM
-snip-
Fungsinya sih mirip-mirip dengan argument listdescriptors yang jika ditambahkan dengan boolean argument private=true, maka akan memberikan informasi BIP32 Root Key. Hanya saja pada fungsi gethdkeys informasinya lebih spesifik, dimana juga dicantumkan extended public key dari BIP32 Root Key tersebut. Namun untuk masing-masing "purpose path level" (contoh BIP44 path) hanya ditampilkan informasi dari "Account Extended Public Key", dan tidak ada informasi untuk masing-masing Account XPRV.

Dengan kata lain, kalau mau menampilkan informasi yang lebih banyak semisal untuk menampilkan informasi setiap account XPRV, argument-nya tetap menggunakan listdescriptors. Jadi tinggal disesuaikan dengan kebutuhan.

Meskipun informasi dari fungsi listdescriptors true sekilas seperti menampilkan banyak XPRV, namun itu sebenarnya bukanlah "Account XPRV" dari "purpose" path, karena jika diperhatikan dari masing-masing Descriptor memiliki XPRV yang sama, yang dibedakan hanyalah Derivation Path dan checksum-nya saja.

Contoh : saya membuat sebuah descriptor wallet dengan label "test-desc-wallet, dan dibawah ini adalah informasi yang didapat dari fungsi listdescriptors dan listdescriptors true

Code: (listdescriptors)
{
  "wallet_name": "test-desc-wallet",
  "descriptors": [
    {
      "desc": "pkh([1515f2b6/44h/1h/0h]tpubDDr9JiJs7GsZhhDpB4hDHV8Z5E6R4pW2a5DGmzSoUFetMcEgQxc8v2tLBT5uVtYaAgm1vddewXxRHnBz9GSRvStkaY2mkbwDXoipSHN7WGW/0/*)#35yaqm3h",
    },
    {
      "desc": "pkh([1515f2b6/44h/1h/0h]tpubDDr9JiJs7GsZhhDpB4hDHV8Z5E6R4pW2a5DGmzSoUFetMcEgQxc8v2tLBT5uVtYaAgm1vddewXxRHnBz9GSRvStkaY2mkbwDXoipSHN7WGW/1/*)#qqpuawp0",
    },
    {
      "desc": "sh(wpkh([1515f2b6/49h/1h/0h]tpubDCFGurQNg79RaaHS6ffwcujZBHoqwE6XzhW7dC6NGuiLTiRZngQziVjTrFornJDGc87sVMN6NWqXtKNZyk7JLZ5cDMom9aybQAdADJzpeFV/0/*))#qr3kw65h",
    },
    {
      "desc": "sh(wpkh([1515f2b6/49h/1h/0h]tpubDCFGurQNg79RaaHS6ffwcujZBHoqwE6XzhW7dC6NGuiLTiRZngQziVjTrFornJDGc87sVMN6NWqXtKNZyk7JLZ5cDMom9aybQAdADJzpeFV/1/*))#4zlqk9pg",
    },
    {
      "desc": "wpkh([1515f2b6/84h/1h/0h]tpubDCuxh2HzTrmpVv3JrAfkDEMgM7cVEVTZaJKm33KTdKgw4BtvAHCyqKDDyzihEYLDoEW9t27okbWi6jnUwdXVtUtMJz1YTdVbzcZWuRqpvvb/0/*)#a8777ngc",
    },
    {
      "desc": "wpkh([1515f2b6/84h/1h/0h]tpubDCuxh2HzTrmpVv3JrAfkDEMgM7cVEVTZaJKm33KTdKgw4BtvAHCyqKDDyzihEYLDoEW9t27okbWi6jnUwdXVtUtMJz1YTdVbzcZWuRqpvvb/1/*)#vnmlrxcq",
    }
  ]
}

Code: (listdescriptors true)
{
  "wallet_name": "test-desc-wallet",
  "descriptors": [
    {
      "desc": "pkh(tprv8ZgxMBicQKsPeSEG1RJbdfj5M2wQkfqFNREvtWy2LREGdxurvggQ1VWTzesBaUdYy4ukuSRPDzfPXuoN6Vk7zWUDigV9d6zs6WapFjMDX1W/44h/1h/0h/0/*)#ajdlht2z",
    },
    {
      "desc": "pkh(tprv8ZgxMBicQKsPeSEG1RJbdfj5M2wQkfqFNREvtWy2LREGdxurvggQ1VWTzesBaUdYy4ukuSRPDzfPXuoN6Vk7zWUDigV9d6zs6WapFjMDX1W/44h/1h/0h/1/*)#vxg72766",
    },
    {
      "desc": "sh(wpkh(tprv8ZgxMBicQKsPeSEG1RJbdfj5M2wQkfqFNREvtWy2LREGdxurvggQ1VWTzesBaUdYy4ukuSRPDzfPXuoN6Vk7zWUDigV9d6zs6WapFjMDX1W/49h/1h/0h/0/*))#n0rpx3z9",
    },
    {
      "desc": "sh(wpkh(tprv8ZgxMBicQKsPeSEG1RJbdfj5M2wQkfqFNREvtWy2LREGdxurvggQ1VWTzesBaUdYy4ukuSRPDzfPXuoN6Vk7zWUDigV9d6zs6WapFjMDX1W/49h/1h/0h/1/*))#4vtyauf3",
    },
    {
      "desc": "wpkh(tprv8ZgxMBicQKsPeSEG1RJbdfj5M2wQkfqFNREvtWy2LREGdxurvggQ1VWTzesBaUdYy4ukuSRPDzfPXuoN6Vk7zWUDigV9d6zs6WapFjMDX1W/84h/1h/0h/0/*)#0j46t6hm",
    },
    {
      "desc": "wpkh(tprv8ZgxMBicQKsPeSEG1RJbdfj5M2wQkfqFNREvtWy2LREGdxurvggQ1VWTzesBaUdYy4ukuSRPDzfPXuoN6Vk7zWUDigV9d6zs6WapFjMDX1W/84h/1h/0h/1/*)#7xsmk08r",
    }
  ]
}

* Untuk informasi : timestamp, active, internal, range sengaja saya hilangkan biar lebih mudah membandingkannya


Dari informasi pada listdescriptors true, XPRV yang tertampilkan sebenarnya adalah BIP32 Root Key, sehingga jika ingin mengetahui Account XPRV dari masing-masing "purpose" path (jenis descriptor) itu bisa didapatkan dengan menggunakan bantuan node.js atau melalui situs https://iancoleman.io/bip39/

Misal >>> Output descriptor PKH ("purpose" path BIP44) dari informasi diatas diketahui memiliki :
Account Extended Public Key : tpubDDr9JiJs7GsZhhDpB4hDHV8Z5E6R4pW2a5DGmzSoUFetMcEgQxc8v2tLBT5uVtYaAgm1vddewXx RHnBz9GSRvStkaY2mkbwDXoipSHN7WGW
BIP32 Root Key : tprv8ZgxMBicQKsPeSEG1RJbdfj5M2wQkfqFNREvtWy2LREGdxurvggQ1VWTzesBaUdYy4ukuSRPDzf PXuoN6Vk7zWUDigV9d6zs6WapFjMDX1W

Jika BIP32 Root Key tersebut diinputkan ke situs https://iancoleman.io/bip39/ pada Derivation Path BIP44, maka akan diketahui :
Account Extended Private Key : tprv8hA7AJGcxuBtpEC2HR2ct5USWCaUuVK7zmcVVUQW3yrVX7yunZnYjYGU1JScwiArwj5d2qPH34z XhpdP1568BkaVa6bwKCgADFPPTrqdsSz
Account Extended Public Key : tpubDDr9JiJs7GsZhhDpB4hDHV8Z5E6R4pW2a5DGmzSoUFetMcEgQxc8v2tLBT5uVtYaAgm1vddewXx RHnBz9GSRvStkaY2mkbwDXoipSHN7WGW
legendary
Activity: 2296
Merit: 2892
#SWGT CERTIK Audited
May 29, 2024, 06:51:56 PM
-snip-
Fungsinya sih mirip-mirip dengan argument listdescriptors yang jika ditambahkan dengan boolean argument private=true, maka akan memberikan informasi BIP32 Root Key. Hanya saja pada fungsi gethdkeys informasinya lebih spesifik, dimana juga dicantumkan extended public key dari BIP32 Root Key tersebut. Namun untuk masing-masing "purpose path level" (contoh BIP44 path) hanya ditampilkan informasi dari "Account Extended Public Key", dan tidak ada informasi untuk masing-masing Account XPRV.

Dengan kata lain, kalau mau menampilkan informasi yang lebih banyak semisal untuk menampilkan informasi setiap account XPRV, argument-nya tetap menggunakan listdescriptors. Jadi tinggal disesuaikan dengan kebutuhan.


Beberapa waktu yang lalu @Chikito menyinggung perihal pair tBTC dengan fiat yang disediakan exchange
https://bitcointalksearch.org/topic/m.64104337

Saya lihat ada salah satu contoh marketnya di exchange namun tBTC-nya pair dengan BTC:
https://altquick.com/exchange/market/BitcoinTestnet

Namun jelas disana tercantum warning:

Quote
Bitcoin Testnet v3.0 can be reset and attacked, among other undesirable things, TBTC is an excellent choice for developing, testing, and learning. -snip-
sr. member
Activity: 192
Merit: 262
Rollbit.com - Crypto Futures
May 29, 2024, 02:20:39 AM
Ini yang paham bahasa pemrograman C++ mungkin bisa ikut berkontribusi atau mencoba test beberapa Covered new code yang terdapat di sini:
https://corecheck.dev/bitcoin/bitcoin/pulls/29130, contoh wallet.cpp

Nampak pada code di atas, dibawah "gethdkeys" tercantum "\nList all BIP 32 HD keys in the wallet and which descriptors use them.\n"

Currently, specified HD keys must already exist in the wallet. To make it easier for the user to know, gethdkeys is also added to list out the HD keys in use by all of the descriptors in the wallet. This will include all HD keys, whether we have the private key, for it, which descriptors use it and their activeness, and optionally the extended private key. In this way, users with more complex wallets will be still be able to get HD keys from their wallet for use in other scenarios, and if they want to use createwalletdescriptor, they can easily get the keys that they can specify to it.

PR #29130 sudah di merge ke repository master:bitcoin, dan untuk fungsi gethdkeys baru akan bisa dirasakan pada saat muncul update lagi dari client Bitcoin Core karena untuk saat ini pada Client 0.27 kalo dicoba untuk menggunakan parameter tersebut, hasilnya adalah "Method not found (code -32601)"





Sementara kalo saya coba menggunakan Node Testnet4 yang memang saya build menggunakan code Bitcoin terbaru, fungsi dari gethdkeys sudah bisa digunakan sebagaimana mestinya
Code:
./bitcoin-cli -testnet4 -rpcuser=punk -rpcpassword=punk help gethdkeys


gethdkeys ( {"active_only":bool,"private":bool,...} )

List all BIP 32 HD keys in the wallet and which descriptors use them.

Arguments:
1. options    (json object, optional) Options object that can be used to pass named arguments, listed below.

Named Arguments:
active_only    (boolean, optional, default=false) Show the keys for only active descriptors
private        (boolean, optional, default=false) Show private keys

Code:
./bitcoin-cli -testnet4 -rpcuser=punk -rpcpassword=punk -rpcwallet="punk-wallet" gethdkeys

Result:
[
  {
    "xpub": "tpubD6NzVbkrYhZ4YY1DFwU7yTeiu4nFMUz3sy1T4ccapZFt6Aiwn4PQBSBLoesq1pZRqP6DJJPkcEzcpmm7ZQULvDHpnFFi6KZqtsC3Yqjqnhh",
    "has_private": true,
    "descriptors": [
      {
        "desc": "pkh([75756328/44h/1h/0h]tpubDCbHnuM8SU5FyRwKJe42B9R7vC47fk2pstB2DYkwe3SAfdvGAkKwKFixjdGsbmP9DJkWska8LdzM13nhC4ZnBLzmgzqqBhHhvdvjNsGf1gb/0/*)#t3t3k0ad",
        "active": true
      },
...
]

Fungsinya sih mirip-mirip dengan argument listdescriptors yang jika ditambahkan dengan boolean argument private=true, maka akan memberikan informasi BIP32 Root Key. Hanya saja pada fungsi gethdkeys informasinya lebih spesifik, dimana juga dicantumkan extended public key dari BIP32 Root Key tersebut. Namun untuk masing-masing "purpose path level" (contoh BIP44 path) hanya ditampilkan informasi dari "Account Extended Public Key", dan tidak ada informasi untuk masing-masing Account XPRV.
legendary
Activity: 2296
Merit: 2892
#SWGT CERTIK Audited
May 28, 2024, 06:35:41 PM
Btw, ada tulisan yang cukup menarik perhatian saya ketika tadi baca di GitHub-nya Bitcoin Core yang di publish oleh sipa (a.k.a Pieter Wuille) beberapa hari lalu mengenai: "Enable importprivkey, addmultisigaddress in descriptor wallets";
-snip-

Untuk usulan importprivkey hampir mirip dengan Pull Request #29136, cuman yang berbeda usulannya Pieter Wuille lebih spesifik buat support fungsi yang ada di legacy wallet yang dalam waktu ke depan bakal dihilangkan dari Bitcoin Core. Sementara salah satu commit dari PR #29136 yang ingin di merge ke master branch dari repository Bitcoin adalah RPC Command addhdkey yang bisa digunakan untuk meng-import BIP32 HD Key (kemungkinan dalam bentuk extended Private Key). Sehingga model single Private Key seperti yang ada di Legacy wallet kemungkinan tidak akan bisa menggunakan argumen addhdkey.

Ini yang paham bahasa pemrograman C++ mungkin bisa ikut berkontribusi atau mencoba test beberapa Covered new code yang terdapat di sini:
https://corecheck.dev/bitcoin/bitcoin/pulls/29130, contoh wallet.cpp

Code:
    };

}

RPCHelpMan gethdkeys()

{

    return RPCHelpMan{

        "gethdkeys",

        "\nList all BIP 32 HD keys in the wallet and which descriptors use them.\n",

        {

            {"options", RPCArg::Type::OBJ_NAMED_PARAMS, RPCArg::Optional::OMITTED, "", {

                {"active_only", RPCArg::Type::BOOL, RPCArg::Default{false}, "Show the keys for only active descriptors"},

                {"private", RPCArg::Type::BOOL, RPCArg::Default{false}, "Show private keys"}

            }},

        },

        RPCResult{RPCResult::Type::ARR, "", "", {

            {

                {RPCResult::Type::OBJ, "", "", {

                    {RPCResult::Type::STR, "xpub", "The extended public key"},

Nampak pada code di atas, dibawah "gethdkeys" tercantum "\nList all BIP 32 HD keys in the wallet and which descriptors use them.\n"

Currently, specified HD keys must already exist in the wallet. To make it easier for the user to know, gethdkeys is also added to list out the HD keys in use by all of the descriptors in the wallet. This will include all HD keys, whether we have the private key, for it, which descriptors use it and their activeness, and optionally the extended private key. In this way, users with more complex wallets will be still be able to get HD keys from their wallet for use in other scenarios, and if they want to use createwalletdescriptor, they can easily get the keys that they can specify to it.
sr. member
Activity: 192
Merit: 262
Rollbit.com - Crypto Futures
May 28, 2024, 11:35:07 AM
Btw, ada tulisan yang cukup menarik perhatian saya ketika tadi baca di GitHub-nya Bitcoin Core yang di publish oleh sipa (a.k.a Pieter Wuille) beberapa hari lalu mengenai: "Enable importprivkey, addmultisigaddress in descriptor wallets";



Menarik jika ini diterapkan, jadi ada cara baru dalam penggunaan command untuk mengakomodasi importprivkey, dll. sebagaimana tertera di screenshot yang sebelumnya masih di-support legacy wallet.

Untuk usulan importprivkey hampir mirip dengan Pull Request #29136, cuman yang berbeda usulannya Pieter Wuille lebih spesifik buat support fungsi yang ada di legacy wallet yang dalam waktu ke depan bakal dihilangkan dari Bitcoin Core. Sementara salah satu commit dari PR #29136 yang ingin di merge ke master branch dari repository Bitcoin adalah RPC Command addhdkey yang bisa digunakan untuk meng-import BIP32 HD Key (kemungkinan dalam bentuk extended Private Key). Sehingga model single Private Key seperti yang ada di Legacy wallet kemungkinan tidak akan bisa menggunakan argumen addhdkey.
legendary
Activity: 2296
Merit: 2892
#SWGT CERTIK Audited
May 28, 2024, 08:00:10 AM
Dengan kata lain ketika Bitcoin Core sudah menerapkan Testnet4 yang sama, maka transaksi akan ditampilkan.

Semisal pada update terbaru Bitcoin Core memang menggunakan jaringan Testnet4 saat ini (https://mempool.space/testnet4), maka Client Bitcoin Core baru akan menampilkan transaksi tersebut jika address yang terhubung dengan transaksi tersebut sudah ter-import dan proses IBD sudah mencapai pada Block dimana transaksi tersebut tercatat. (harus bikin wallet baru di jaringan testnet4 dan mengimport address ke wallet tersebut, karena semenjak update 0.21 Bitcoin Core tidak lagi men-generate default wallet)

Ya mesti import address yang digunakan sebelumnya tersebut untuk menerima tBTC di jaringan testnet4 dan mensinkronkan ulang data blockchain.


Btw, ada tulisan yang cukup menarik perhatian saya ketika tadi baca di GitHub-nya Bitcoin Core yang di publish oleh sipa (a.k.a Pieter Wuille) beberapa hari lalu mengenai: "Enable importprivkey, addmultisigaddress in descriptor wallets";



Menarik jika ini diterapkan, jadi ada cara baru dalam penggunaan command untuk mengakomodasi importprivkey, dll. sebagaimana tertera di screenshot yang sebelumnya masih di-support legacy wallet.
sr. member
Activity: 192
Merit: 262
Rollbit.com - Crypto Futures
May 28, 2024, 07:24:34 AM
Dengan kata lain ketika Bitcoin Core sudah menerapkan Testnet4 yang sama, maka transaksi akan ditampilkan.

Semisal pada update terbaru Bitcoin Core memang menggunakan jaringan Testnet4 saat ini (https://mempool.space/testnet4), maka Client Bitcoin Core baru akan menampilkan transaksi tersebut jika address yang terhubung dengan transaksi tersebut sudah ter-import dan proses IBD sudah mencapai pada Block dimana transaksi tersebut tercatat. (harus bikin wallet baru di jaringan testnet4 dan mengimport address ke wallet tersebut, karena semenjak update 0.21 Bitcoin Core tidak lagi men-generate default wallet)
legendary
Activity: 2296
Merit: 2892
#SWGT CERTIK Audited
May 28, 2024, 04:32:33 AM
Barusan saya coba request sejumlah tBTC dari salah satu situs penyedia fauchet testnet4 di atas (https://testnet4.anyone.eu.org/) dengan menggunakan deposit address tBTC yang di generate di Bitcoin Core v.25.1.
txid: https://mempool.space/testnet4/tx/e67e4317fbbd12c1ed78816bac76d07bebdf1f1c3ba56ed8669e76caac0d110a

Penasaran apakah tBTC pada Testnet4 tersebut bisa masuk ke deposit address di Bitcoin Core yang notabene masih menggunakan Testnet3.

Note: Saat post ini dibuat, transaksinya masih belum mendapat konfirmasi dari jaringan Bitcoin testnet4 nya.

Bisa dipastikan output dari transaksi e67e4317fbbd12c1ed78816bac76d07bebdf1f1c3ba56ed8669e76caac0d110a akan masuk ke address penerima (tb1qst5uxjdr8ct9h7hxkradzwfq88yhse3nudm0ep) yang berada di jaringan testnet4. Meskipun pada jaringan testnet3 address tb1qst5uxjdr8ct9h7hxkradzwfq88yhse3nudm0ep juga eksis, namun nampaknya address tersebut tidak memiliki satupun riwayat transaksi, asumsiku inilah address (testnet3) yang agan Husna gunakan buat menerima transaksi situs penyedia fauchet testnet4

Seperti diketahui sebelumnya bahwa jika transaksinya menggunakan tBTC di jaringan Testnet4 maka tidak bisa digunakan pada Testnet3 karena sudah berbeda jaringan.
Ya betul address tersebut yang pada tanggal 25 Mei 2024 lalu saya generate di Bitcoin Core Testnet (3) untuk menjadi deposit address tBTC dari fauchet testnet4.



dan hasilnya, tidak ada transaksi yang tercatat pada tanggal tersebut di history, seperti nampak berikut;



padahal sebenarnya sudah mendapat konfirmasi di jaringan testnet4;
https://mempool.space/testnet4/tx/e67e4317fbbd12c1ed78816bac76d07bebdf1f1c3ba56ed8669e76caac0d110a

Dengan kata lain ketika Bitcoin Core sudah menerapkan Testnet4 yang sama, maka transaksi akan ditampilkan.
sr. member
Activity: 192
Merit: 262
Rollbit.com - Crypto Futures
May 28, 2024, 01:16:18 AM
Kalau masih bisa masuk menggunakan alamat yang sama tentunya ini tidak ada perbedaan dengan jaringan sebelumnya, kita masih bisa mining tbtc di jaringan testnet3 sebanyak-banyaknya untuk digunakan di testnet4. Kalau testnet4 ini sudah jalan artinya aplikasi bitcoin core versi testnet sebelumnya gak perlu dihapus atau diganti dengan testnet4 dong, karena semua sama baik alamat dan jaringannya.


Tidak bakal bisa Om, karena jaringannya jelas berbeda sehingga bisa dipastikan seluruh block dan transaksi yang ada didalamnya juga berbeda (https://mempool.space/testnet vs https://mempool.space/testnet4). Jika seandainya pada saat Update Bitcoin Core terbaru nanti sudah menggunakan jaringan testnet4 yang baru, maka secara otomatis Client Bitcoin Core akan mendownload Blockchain testnet4 dari awal (dari genesis block) dan kemungkinan besar akan tersimpan di directory data masing-masing node pada folder testnet4.

Pada dasarnya apapun versi jaringan testnet Bitcoin yang digunakan (baik itu testnet3 atau testnet4) jika masih menggunakan Private Key maupun seed yang sama maka akan menghasilkan address yang sama pula. Untuk membuktikannya, saya membuat Legacy address pada jaringan testnet3 mzUitL1oHynaoGWZT75KX1fyQ4okAVJXcB dan diketahui PrivKey dari address tersebut adalah cUhvun6Bof8WgBFf9Ch1FUXdWMzryLiDGn7biqHtxM33Ab9LPjgh





Kemudian beralih ke Linux (virtualbox) dimana saya menjalankan node testnet4, saya membuat sebuah legacy wallet dan melakukan import Private Key dari address yang saya buat di jaringan testnet3, dan untuk hasilnya didapatkan address yang serupa : mzUitL1oHynaoGWZT75KX1fyQ4okAVJXcB

Code:
./bitcoin-cli -testnet4 -rpcuser=punk -rpcpassword=punk -rpcwallet="legacy-punk" importprivkey cUhvun6Bof8WgBFf9Ch1FUXdWMzryLiDGn7biqHtxM33Ab9LPjgh "Legacy Address Testnet4" false

./bitcoin-cli -testnet4 -rpcuser=punk -rpcpassword=punk -rpcwallet="legacy-punk" getaddressesbylabel "Legacy Address Testnet4"
{
  "mzUitL1oHynaoGWZT75KX1fyQ4okAVJXcB": {
    "purpose": "receive"
  },
  "2NFPkMhxwG7DQpAG3STx9vtdWbqZ4p9HMkL": {
    "purpose": "receive"
  },
  "tb1qell96kd5gz7k0f5kmfvmff0u9kw55k9mj0az8j": {
    "purpose": "receive"
  }
}

legendary
Activity: 2366
Merit: 2054
May 27, 2024, 08:59:33 PM
Penasaran apakah tBTC pada Testnet4 tersebut bisa masuk ke deposit address di Bitcoin Core yang notabene masih menggunakan Testnet3.
Kalau masih bisa masuk menggunakan alamat yang sama tentunya ini tidak ada perbedaan dengan jaringan sebelumnya, kita masih bisa mining tbtc di jaringan testnet3 sebanyak-banyaknya untuk digunakan di testnet4. Kalau testnet4 ini sudah jalan artinya aplikasi bitcoin core versi testnet sebelumnya gak perlu dihapus atau diganti dengan testnet4 dong, karena semua sama baik alamat dan jaringannya.
Pages:
Jump to: