Package Relay memungkinkan node Bitcoin meneruskan dan menilai bersama transaksi terkait yang belum dikonfirmasi. Ini berguna ketika transaksi pertama menawarkan biaya terlalu rendah, tetapi transaksi lain yang membelanjakan outputnya menambahkan cukup biaya untuk keduanya. Validitas serta aturan lokal node tetap berlaku; penilaian sebagai paket tidak menjamin konfirmasi.
Anna menunggu pembayaran bitcoin. Pengirim memilih biaya rendah, lalu permintaan ruang blok meningkat. Blok mengelompokkan transaksi dalam satu kumpulan yang ditambahkan ke riwayat bersama. Node adalah perangkat lunak yang memeriksa transaksi dan blok serta berkomunikasi dengan peserta jaringan lainnya. Akibatnya, beberapa node menolak memasukkan transaksi itu ke mempool mereka, yaitu kumpulan lokal transaksi yang belum dikonfirmasi. Anna ingin menambah biaya melalui transaksi lanjutan. Namun, transaksi tersebut membelanjakan koin yang kedatangannya belum diketahui node yang menolak transaksi pertama. Package Relay membantu mengatasi kesenjangan ini: node memperoleh konteks yang diperlukan sehingga tidak hanya menilai transaksi pertama berbiaya rendah secara terpisah. [1] [6]
Transaksi pertama disebut induk, sedangkan transaksi yang membelanjakan outputnya disebut anak. Anna dapat membuat anak jika mampu memenuhi syarat pembelanjaan output induk, yaitu sejumlah nilai tertentu yang tersedia untuk dibelanjakan. Misalnya, ia dapat memindahkan koin yang diterima ke alamat lain miliknya dan menyisihkan sebagian sebagai biaya. Inilah CPFP (Child Pays for Parent): biaya anak yang lebih tinggi dapat membantu konfirmasi keduanya. Package Relay membantu pengiriman dan penilaian; mekanisme ini tidak membayar biaya, menandatangani apa pun, atau memberikan akses ke koin orang lain. [1] [5]
Misalkan ukuran induk 200 vB dengan biaya 200 sat, sedangkan anak berukuran 100 vB dengan biaya 1300 sat. vByte (vB) mengukur ukuran virtual transaksi yang biasa dipakai untuk menghitung biaya; sat adalah satuan kecil bitcoin. Totalnya 1500 sat untuk 300 vB, atau 5 sat/vB. Ini bukan rata-rata sederhana dari tarif masing-masing, yaitu 1 dan 13 sat/vB. Kita hanya mengasumsikan dua transaksi yang belum diterima ini, tanpa leluhur lain yang belum dikonfirmasi maupun penyesuaian biaya lokal. Node tidak menghitung ulang transaksi yang sudah diterima; kumpulan ketergantungan yang benar-benar dinilai sangat penting. [5] [3]
Input anak merujuk pada output induk. Menilai keduanya bersama bisa masuk akal, tetapi riwayat koin yang hilang tidak boleh diabaikan. Dalam daftar, setiap induk yang disertakan ditempatkan sebelum anaknya; ini disebut urutan topologis. Tanda tangan dan semua aturan validitas lain tetap diperiksa. Tanda tangan digital membuktikan otorisasi pembayaran menggunakan kunci privat, sebuah nilai angka rahasia, tanpa mengungkap kunci itu. Dua transaksi yang membelanjakan koin yang sama tidak menjadi kompatibel hanya karena biaya ditambah. Batas jumlah, ukuran, dan bentuk paket juga membatasi beban kerja node: paket bukan izin mengirim rantai transaksi sepanjang apa pun. [5] [3] [7]
Dompet adalah aplikasi atau perangkat untuk menerima dan mengirim bitcoin. Sampai berarti node menerima datanya. Diterima ke mempool berarti node memasukkannya berdasarkan aturan sendiri. Konfirmasi membutuhkan penyertaan dalam blok. Setiap node memiliki mempool sendiri; keberhasilan pada satu node tidak menunjukkan keputusan tetangganya. Dalam Bitcoin Core 28.0, tarif gabungan dapat memenuhi batas minimum yang berubah saat mempool padat, tetapi umumnya tidak menghapus minimum penerusan yang terpisah. Versi itu memberikan pengecualian untuk TRUC Transactions, jenis transaksi dengan batasan khusus. Jadi, anak berbiaya tinggi tidak dapat menyelamatkan setiap induk. [2] [5] [8]
BIP 331 karya Gloria Zhao menjelaskan negosiasi dukungan serta pesan untuk meminta informasi leluhur dan transaksi itu sendiri. Ini merupakan usulan yang lebih luas. Bitcoin Core 28.0 mendokumentasikan pemasangan terbatas satu induk dengan satu anak melalui protokol jaringan yang sudah ada. Antarmuka pemrograman lokal RPC juga dapat menerima anak dengan beberapa induk independen, tetapi itu tidak berarti dukungan penerusan antarnode yang setara. Rincian ini berlaku untuk versi tersebut; pada versi lain, periksa dokumentasi dan kemampuan node yang terhubung dengannya. [1] [2]
Perintah submitpackage pada Bitcoin Core 28.0 menyerahkan paket yang disiapkan ke node lokal. Paket harus berisi anak dan induk-induknya yang belum dikonfirmasi, tanpa ketergantungan antarinduk, dengan anak di urutan terakhir. Baca package_msg bersama masing-masing tx-results. Node dapat menerima sebagian paket: kesalahan tidak otomatis membatalkan semua yang sudah diterima. Bahkan keberhasilan keseluruhan tidak membuktikan penyebaran ke jaringan atau konfirmasi. Perintah ini bukan layanan percepatan pembayaran umum; diperlukan transaksi yang disusun dengan benar, bukan sekadar alamat. [3]
Dalam lingkungan pengujian terpisah, testmempoolaccept memeriksa penerimaan tanpa menyiarkan transaksi. Jika transaksi lain gagal, hasil allowed bisa tidak ada karena transaksi terkait belum divalidasi penuh. Panggilan uji dan submitpackage juga tidak memiliki kondisi yang persis sama. Catat versi, pengaturan, ketergantungan, ukuran, dan biaya, lalu amati secara terpisah penerimaan pada node lain. Transaksi Lightning Network yang peka terhadap waktu tetap membutuhkan respons tepat waktu: Package Relay sendiri tidak menghilangkan kepadatan, jarak waktu blok yang tidak teratur, atau pinning, yaitu penggunaan aturan mempool secara sengaja untuk menghambat kenaikan biaya. [4] [2] [1]
Untuk gambaran yang lebih utuh, baca entri ini bersama Mempool, CPFP (Child Pays for Parent), Fee Rate, Replace-by-Fee (RBF), Lightning Network, vByte. Entri ini juga dirujuk dari CPFP (Child Pays for Parent), Gloria Zhao, Cluster Mempool, TRUC Transactions.