Full Node adalah program yang memeriksa sendiri aturan Bitcoin. Program ini berjalan di komputer, menerima blok dan transaksi, lalu menentukan mana yang dapat masuk ke riwayat sah. Dengan node sendiri, pemeriksaan tidak perlu mengandalkan klaim penambang atau server lain. Namun, agar dompet juga memperoleh manfaatnya, dompet harus benar-benar memakai node itu sebagai sumber data.
Bayangkan dompet menampilkan pembayaran masuk. Bagaimana dompet tahu bahwa transaksi itu benar-benar termasuk riwayat Bitcoin dan mengikuti aturan? Dompet dapat bertanya kepada server lain atau memakai node Anda. Full Node mewujudkan pilihan kedua: ia memeriksa sendiri keabsahan data yang diterima. Ia tidak bertanya kepada mayoritas komputer terhubung untuk menentukan keputusan. Jika seseorang mengirim blok yang melanggar aturan, blok ditolak. Jumlah koneksi karena itu tidak menggantikan pemeriksaan. Node sendiri memungkinkan Anda memverifikasi data yang menjadi dasar pembayaran Anda. [1] [3]
Node memeriksa hubungan antarblok, header, dan Proof of Work, bukti komputasi yang diwajibkan bagi blok. Pada transaksi, ia antara lain memeriksa apakah dana yang dirujuk ada, tidak dibelanjakan dua kali, dan syarat penggunaannya terpenuhi. Syarat itu ditulis dalam skrip, kumpulan kecil aturan program. Node juga memeriksa jumlah bitcoin baru yang dibuat. Hasil yang terus diperbarui adalah UTXO set, kumpulan keluaran transaksi yang belum dibelanjakan: catatan dana tertentu yang masih tersedia. Kerja terakumulasi lebih besar dapat menentukan pilihan antara dua cabang sah, tetapi tidak membuat blok tidak sah menjadi sah. [1]
Tidak. Full Node memeriksa blok dan transaksi; pemeriksaan biasa saja tidak menghasilkan imbalan blok. Penambang justru menyusun usulan blok dan mengulang perhitungan sampai menemukan hasil yang memenuhi syarat. Perhitungan memakai hash, sidik jari digital header blok. Kedua peran dapat bekerja bersama: penambang perlu tahu riwayat mana yang dilanjutkan dan transaksi mana yang boleh dimasukkan. Namun, bukan berarti setiap node harus menambang. Pemeriksaan dan persaingan menemukan blok berikutnya adalah kegiatan berbeda. [5] [1]
Node baru harus lebih dahulu mengejar riwayat jaringan. Ia mengunduh blok dan memproses datanya, dalam proses sinkronisasi awal. Ada dua percepatan tingkat lanjut yang perlu dibedakan. Dalam kondisi tertentu, assumevalid memungkinkan Bitcoin Core melewati pemeriksaan skrip lama; assumevalid=0 menonaktifkan optimasi itu. AssumeUTXO memungkinkan pemuatan snapshot, salinan keadaan dana yang belum dibelanjakan pada blok tertentu. Sidik jarinya dibandingkan dengan nilai yang tercantum dalam kode sumber. Riwayat sebelumnya lalu diperiksa di latar belakang. Jadi, keadaan terkini yang sudah dapat dipakai belum tentu berarti pemeriksaan sejarah selesai. [1] [2]
Full Node tidak harus menyimpan seluruh berkas blok lama selamanya. Pruning menghapus sebagian setelah diproses, sambil mempertahankan UTXO set terkini dan data baru yang diperlukan. Node tetap memeriksa blok baru. Node arsip menyimpan blok lama agar dapat memberikannya kepada pihak lain atau memindainya lagi. Menghemat disk karena itu berbeda dari menjadi klien SPV, yang memakai verifikasi pembayaran sederhana. Klien tersebut tidak memeriksa semua transaksi dan keadaannya seperti Full Node. Perbedaannya terletak pada apa yang diperiksa, bukan hanya banyaknya berkas tersimpan. [3]
Dalam sinkronisasi biasa, node dengan pemangkasan mengunduh dan memproses blok historis sebelum menghapusnya secara bertahap. Jadi, Pruning bukan sakelar untuk melewati pemeriksaan blok lama. Tugasnya menghemat ruang penyimpanan. Optimasi sebelumnya adalah persoalan terpisah: assumevalid dapat melewati pemeriksaan skrip lama dalam kondisi tertentu, sedangkan AssumeUTXO memungkinkan pemakaian snapshot saat pemeriksaan riwayat masih berjalan. Untuk menilai kesiapan node, perhatikan metode sinkronisasi dan kemajuan sebenarnya, bukan hanya ukuran data di disk. [3] [2]
Dompet membutuhkan informasi transaksi dan konfirmasi. Jika mendapatkannya dari server lain, dompet mengirim kueri yang bisa mengungkap sesuatu tentang pembayarannya kepada server. Menghubungkannya ke Full Node sendiri memungkinkan penggunaan data yang sudah diperiksa node Anda tanpa kueri tersebut ke server luar. Namun, memasang dan menjalankan node tidak otomatis mengalihkan koneksi dompet. Sumber data yang benar-benar didukung dan digunakanlah yang penting. Node sendiri juga tidak otomatis membuat Anda anonim: privasi bergantung pula pada data jaringan lain dan cara memakai dompet. [3] [4]
Node dapat beroperasi tanpa kunci privat Anda. Kunci memungkinkan penandatanganan pembayaran; node memeriksa apakah transaksi dan blok mengikuti aturan. Satu perangkat tidak harus menangani kedua tugas itu. Karena itu, jangan hanya memastikan node Anda berjalan di suatu tempat: periksa juga dari mana dompet membaca data dan bagaimana transaksi disiarkan. Pemeriksaan mandiri tidak menggantikan cadangan kunci yang aman atau menghapus semua informasi yang bisa terungkap lewat komunikasi jaringan. Ia membantu satu bagian tertentu dari proses: memeriksa data Bitcoin secara independen. [3] [4]
Node memiliki dua antarmuka berbeda. Melalui koneksi P2P, ia bertukar blok dan transaksi dengan node lain. RPC adalah antarmuka tempat aplikasi memberi perintah dan dapat, bila tersedia, mengendalikan dompetnya juga. Membuka port P2P masuk untuk pertukaran data berbeda dari mengekspos RPC kepada orang asing. Bitcoin Core menyarankan agar RPC tidak dibuka langsung ke internet publik. Untuk akses lokal, biasanya dipakai kredensial dalam berkas .cookie untuk memastikan kewenangan aplikasi. Ini bukan cookie pelacak peramban. [4]
Perintah node memungkinkan pemeriksaan lebih dari ikon hijau. Pada getblockchaininfo, periksa jaringan yang benar, blocks untuk jumlah blok terproses, headers untuk header yang diketahui, dan initialblockdownload untuk sinkronisasi awal. Jika memakai snapshot, getchainstates membantu membedakan keadaan terkini dari pemeriksaan riwayat di latar belakang. Jumlah koneksi saja tidak membuktikan pemeriksaan lengkap. Terakhir, pastikan node tidak tertinggal pada ujung rantai lama dan dompet benar-benar mengambil data darinya. Barulah pemeriksaan independen node bermanfaat bagi penggunaan dompet Anda. [2] [1]
Untuk gambaran yang lebih utuh, baca entri ini bersama Bitcoin, Timechain / Blockchain, Transaksi, UTXO, Proof of Work. Entri ini juga dirujuk dari Bitcoin, Satoshi Nakamoto, Timechain / Blockchain, Proof of Work.