Job Negotiation adalah kesepakatan penambang dan pool mengenai tugas penambangan khusus. Stratum V2 mengatur komunikasi antara perangkat penambangan dan pool. Job Declaration Protocol adalah bagian yang menangani usulan khusus, bersama distribusi templat dan tugas. Tujuannya memungkinkan pemilihan transaksi sementara pool tetap mencatat pekerjaan dan membayar imbalan. Yang menentukan adalah susunan sistem sebenarnya, bukan sekadar nama koneksinya.
Anna beralih ke Stratum V2 tetapi tetap menerima daftar transaksi dari pool. Ini tidak bertentangan. Mining Protocol, bagian yang membawa tugas dan hasil, dapat berjalan tanpa Job Declaration dan Template Distribution. Yang terakhir menyediakan templat blok, sedangkan Job Declaration mengurus usulan khusus. Agar Anna dapat memilih, peran-peran itu juga harus ada, bersama pool yang mendukungnya. Cara pengiriman yang lebih modern saja belum menjelaskan siapa yang menentukan isi blok pada jaringan Bitcoin. [1] [4]
Pembayaran terpilih tidak boleh memenuhi blok sampai transaksi imbalannya, coinbase, tidak muat. Penyedia templat, Template Provider, perlu mengetahui ruang yang harus disisihkan. Di sisi Anna berjalan program JDC, singkatan Job Declarator Client. Program ini mencari persyaratan pool yang dipakai dan mengirimkannya kepada penyedia templat dalam pesan data bernama CoinbaseOutputConstraints. Cadangan mencakup ruang data dan sigops, operasi pemeriksaan tanda tangan yang dihitung terhadap batas blok. Jika tidak, penambahan keluaran coinbase, bagian yang mengalokasikan dana, bisa melampaui batas blok. Pemilihan transaksi sendiri harus memperhitungkan validitas hasil keseluruhan sejak awal. [3]
Dalam mode Full-Template, JDC mengirim DeclareMiningJob kepada JDS, yaitu Job Declarator Server di sisi pool atau layanan yang dipercaya pool. Pesan mencantumkan pengenal transaksi yang dipilih. Jika server tidak memiliki salah satunya, ia dapat meminta datanya melalui ProvideMissingTransactions. Dengan demikian Anna membagikan informasi untuk memeriksa pilihannya. Pengakuan deklarasi dan penerimaan tugas khusus oleh pool sesudahnya merupakan dua langkah terpisah. Pesan sukses pertama belum menyelesaikan seluruh kesepakatan. [2]
Dalam mode Coinbase-only, JDC tidak mengungkap kumpulan transaksi dan DeclareMiningJob tidak digunakan. Pool memperkirakan pendapatan dari coinbase yang diberikan. Pilihan Anna tetap tersembunyi dari pool, tetapi itu sendiri tidak membuktikan validitas transaksi yang disembunyikan atau biaya transaksi sebenarnya. Spesifikasi secara tegas menjelaskan risiko ini. Berkurangnya informasi yang dibagikan juga mengubah apa yang bisa diperiksa; nama mode tidak menjamin semua syarat imbalan sudah dibuktikan dengan baik. Privasi ini berlaku pada rancangan selama penambangan. Jika Anna menemukan blok valid dan menyiarkannya ke jaringan, transaksi di dalamnya menjadi terlihat. [2]
Beberapa penanda yang tampak mirip muncul dalam komunikasi teknis. JDS memberikan mining_job_token yang dirujuk klien dalam SetCustomMiningJob. Ketika menerima tugas, pool mengembalikan SetCustomMiningJob.Success dengan job_id miliknya. Token menghubungkan proses pengusulan, sedangkan job_id mengidentifikasi pekerjaan saat hasil diserahkan. Mirip perbedaan nomor permohonan dengan nomor perintah kerja yang telah disetujui. Jika tertukar, pool tidak dapat memasangkan hasil dengan tugas diterima yang tepat. [1]
Menunggu setiap pertukaran jaringan akan menunda perangkat tanpa perlu. Setelah klien memiliki token dan templat yang dibutuhkan, ia dapat memulai penambangan optimistis sebelum SetCustomMiningJob.Success. Shares yang ditemukan, hasil parsial pembuktian pekerjaan menurut target pool, disimpan sampai ada pengakuan. Setelah tugas diterima, hasil itu dapat dikirim dengan pengenal yang diberikan. Jadi, mesin yang berjalan belum membuktikan bahwa pool telah menerima atau mencatat pekerjaan tersebut. Memulai perhitungan dan menyetujui imbalannya adalah dua saat berbeda. [1] [2]
Jika Anna menerima SetCustomMiningJob.Error atau tidak mendapat jawaban dalam waktu wajar, spesifikasi menyarankan pool lain atau penambangan sendiri. Ketahanan bergantung pada fallback yang berfungsi, jalur alternatif yang sudah disiapkan. Jika perangkat lunak diam-diam memakai templat awal milik pool yang menolak usulannya, operasi bisa berlanjut tetapi pilihan Anna hilang. Karena itu, penting mengetahui tindakan nyata sistem ketika ditolak. Kemampuan yang tertulis dalam protokol tidak membuktikan bahwa setiap layanan mendukungnya. [1] [4]
Anna ingin memilih transaksi dan tetap menikmati imbalan bersama. JDC miliknya harus mengalokasikan nilai ke keluaran coinbase yang ditentukan pool agar memenuhi syarat imbalan tersebut. Jika sebagian pendapatan diarahkan ke tempat lain, pool dapat menurunkan imbalan tugas itu secara proporsional. Job Declaration tidak menciptakan pembayaran langsung otomatis kepada penambang atau menghapus ketentuan pembukuan layanan. Perubahan utamanya adalah siapa yang dapat mengusulkan isi blok; aturan validitas dan pembagian pendapatan perlu dinilai secara terpisah. [2]
Untuk gambaran yang lebih utuh, baca entri ini bersama Stratum V2, getblocktemplate, Mining Pool, Block Template, Bitcoin. Entri ini juga dirujuk dari Stratum V2, Mining Pool Centralization.