Tinjauan lengkap dari pemilihan komponen hingga konfigurasi perangkat lunak untuk sistem pertanian (penambangan) cryptocurrency Chia.
Chia adalah cryptocurrency baru yang bertujuan untuk mencapai konsensus terdesentralisasi dengan konsumsi energi yang lebih rendah per transaksi daripada rekan-rekannya. Hal ini dicapai melalui bukti algoritma ruang alih-alih bukti kerja.
Sementara bukti kerja bergantung pada komputasi masalah matematika secara terus-menerus (biasanya hash seperti SHA256) dalam upaya menemukan hasil yang cocok dengan pola yang diinginkan, Chia malah bergantung pada pemeriksaan keberadaan properti tertentu dalam file unik yang dibuat sebelumnya yang disebut plot.
Ini dilakukan dalam proses dua langkah yang disebut pertanian yang terdiri dari:
- Merencanakan tempat file unik berukuran besar (biasanya 101.6GB) dibuat.
- Dan panen di mana file yang dibuat sebelumnya diperiksa untuk peluang memenangkan hadiah blok itu (saat ini 2 Chia).
Semakin banyak plot (penyimpanan lebih besar yang digunakan) yang dimiliki sebuah node, semakin tinggi peluang untuk memenangkan hadiah blok itu. Ada 4608 peluang untuk menang setiap hari dan kemungkinan memenangkan hadiah blok itu terutama didasarkan pada jumlah plot yang dimiliki secara proporsional dengan total ukuran jaringan. Kalkulator penghasilan disediakan di sini.
Oleh karena itu, untuk memaksimalkan hadiah, kami ingin memiliki jumlah penyimpanan sebesar mungkin dan sumber daya komputasi yang cukup untuk mengisi penyimpanan tersebut dengan plot.
Seperti kebanyakan masalah desain, ada solusi valid tak terhingga untuk kombinasi perangkat yang dapat digunakan untuk mengolah Chia. Untuk membantu mempersempit pilihan, saya mulai dengan memutuskan beberapa kendala dan prioritas:
- Biaya dalam $/TB harus diminimalkan meskipun ada kerumitan tambahan (sesuai alasan).
- Karena waktu saya yang terbatas untuk mendedikasikan diri pada proyek ini, sistem harus sebagian besar terdiri dari bagian rak (tidak ada PCB khusus, sasis khusus, dll).
Merencanakan — Memproses
Bergantung pada pengaturan perangkat keras, satu plot dapat memakan waktu antara 4 hingga 20 jam untuk dibuat. Oleh karena itu, memilih perangkat keras plot yang tepat dapat menjadi perbedaan antara mengisi seluruh lahan pertanian Anda dalam hitungan hari versus bulan.
Penting untuk mempertimbangkan tidak hanya kecepatan di mana setiap plot dibuat tetapi juga jumlah plot bersamaan yang dapat dibuat. Misalnya, pengaturan yang membuat 10 plot bersamaan pada masing-masing 12 jam akan menghasilkan 20 plot (~2TB/hari) sedangkan pengaturan yang membuat 1 plot bersamaan setiap 4 jam hanya akan menghasilkan 6 plot per hari (0.6TB/hari).
Untuk meminimalkan biaya, saya memutuskan untuk mencari server yang dinonaktifkan. Server-server ini memiliki beberapa properti menarik yang dapat menjadikannya sebagai komplotan yang kuat, termasuk:
- Jumlah inti yang besar dapat memungkinkan beberapa plot secara paralel. Fase 1 (sekitar setengah dari waktu plot) adalah multithreaded (biasanya dikonfigurasi antara 2 dan 4 utas), tetapi fase yang tersisa adalah utas tunggal.
- RAM yang tersedia biasanya melebihi yang dibutuhkan untuk plot (~4GB/plot bersamaan).
- Dirancang untuk beroperasi pada beban tinggi untuk waktu yang lama.
Setelah memeriksa lusinan opsi dan kemungkinan konfigurasi, saya memilih HP ProLiant DL380p Gen8 dengan 2x Intel E5–2670 dan RAM DDR192 3GB. Dengan mengaktifkan hyper-threading, server ini secara hipotetis dapat mendukung pembuatan plot secara simultan hingga 16 plot dalam fase 1 dengan harga di bawah $400.
Plotting — Penyimpanan Sementara
Karena beban tulis yang tinggi selama pembuatan plot (sekitar 1.6 TB ditulis untuk ak=32 plot), pilihan media penyimpanan sementara dapat berdampak signifikan pada waktu dan biaya plot. Beberapa poin untuk dipertimbangkan:
- Semakin cepat penyimpanan, semakin cepat plot dapat dibuat. Utas ini membahas waktu plot 4 jam menggunakan RAMDISK (mount folder ke RAM).
- Mengingat volume tulis yang besar, penting untuk mempertimbangkan daya tahan media. SSD NVMe 1TB tingkat konsumen biasanya memiliki daya tahan sekitar 600 TBW (tertulis terabyte) sebelum diperkirakan gagal yang berarti dapat menghasilkan sekitar 375 plot.
Saya akhirnya memilih untuk membeli 12-bay HP StorageWorks D2600 dengan drive SAS 15K 450GB. Dengan pengaturan ini, saya dapat secara bersamaan merencanakan ke setiap drive tanpa mempertaruhkan pertentangan IO di tingkat drive. Drive JBOD + secara signifikan lebih murah daripada pengaturan yang setara dengan drive NVMe (bahkan tanpa memperhitungkan biaya penggantian setelah TBW tercapai).
Pertanian — Penyimpanan Jangka Panjang
Berbeda dengan penyimpanan plotting, penyimpanan panen tidak memerlukan throughput atau TIO yang tinggi. Untuk alasan ini, meminimalkan biaya adalah prioritas tertinggi.
Ada beberapa kemungkinan pengaturan yang beberapa di antaranya dibahas di sini. Namun, setelah mencari di eBay untuk opsi bekas, beberapa hal menjadi jelas:
- Hard drive 3.5″ yang lebih besar cenderung memiliki biaya terendah. Ini masuk akal karena sebagian besar perangkat saat ini telah pindah ke ukuran 2.5″ atau 1.8″ yang lebih kecil.
- Hard drive SAS (bukan SSD) tampaknya memiliki biaya per TB terendah dengan beberapa lot serendah $10/TB (per Mei 2021). Drive SAS ini tidak kompatibel dengan papan SATA (konsumen) dan biasanya dijual di eBay setelah dinonaktifkan dari pusat data perusahaan.
Setelah saya mempersempit penggunaan hard drive SAS 3.5″, saya perlu menemukan cara untuk benar-benar menghubungkannya ke pemanen/plotter saya. Berpegang teguh pada batasan untuk tidak membangun enklosur/bidang belakang, saya mulai mencari selungkup bekas yang dapat menampung drive ini sambil mempertahankan biaya terendah per rongga.
Saya menemukan beberapa opsi di eBay dan akhirnya membeli beberapa model berbeda termasuk HP 24PAR 3-bay dan dua IBM DS12 3512-ruang.
Daftar Lengkap
Daftar akhir komponen ditunjukkan di bawah ini. Ini mencakup komponen utama yang dibahas di atas tetapi juga bagian tambahan yang diperlukan untuk menyatukan sistem.
Disebutkan layak adalah kartu HBA. Ini adalah kartu PCIe yang memperlihatkan konektor eksternal SAS yang akan disambungkan kabel dari JBOD. Saat membelinya, pastikan Anda mendapatkan kartu mode target inisiator (IT) sehingga drive muncul langsung ke OS sebagai lawan dari kartu mode IR. Sebagai hal yang bagus untuk dimiliki, Anda mungkin ingin mendapatkan kartu yang di-flash dengan OS yang lebih baru (versi 20).
Pengaturannya sebagian besar intuitif. Kabel terhubung ke lubang di mana mereka cocok. Namun, kabel SAS yang menghubungkan JBOD dan mesin plotting/harvesting dapat menggunakan daisy chain.
Dalam kasus saya, saya memiliki dua kabel yang meninggalkan server (satu di setiap port dari HBA). Salah satu kabel terhubung ke input array penyimpanan sementara (HP D2600) dan output array tersebut terhubung ke array HP 3PAR. Kabel lainnya terhubung ke larik IBM pertama dan outputnya terhubung ke larik IBM kedua. JBOD biasanya memiliki port input (primer) dan port output (biasanya diberi label dengan panah ke luar).
Saya telah menginstal Ubuntu LTS 20.04 di server karena ini adalah distribusi Linux yang banyak digunakan yang berarti akan lebih mudah untuk menemukan forum pemecahan masalah jika ada masalah yang muncul. Langkah-langkah di bawah ini menguraikan konfigurasi yang tersisa.
Langkah 1: Pastikan Semua Drive Tersedia
Langkah pertama adalah memeriksa drive mana yang terdeteksi oleh OS. Ini dapat dicapai dengan menjalankan lsscsi
memerintah. Yang outputnya ditunjukkan di bawah ini.
Perhatikan bahwa perintah di atas tidak memberikan informasi tentang sistem file atau ukuran drive. Untuk itu, jalankan lsblk
perintah.
Penting: Perhatikan bahwa tidak semua drive muncul di bawah kedua perintah! Drive yang muncul di bawah lsscsi
tapi tidak lsblk
mungkin memiliki beberapa ketidakcocokan yang menyebabkan OS tidak menyediakannya untuk dipasang, dll. Contohnya adalah /dev/sdaw
.
Dalam kasus saya, masalah ini disebabkan karena ukuran sektor menjadi 520 yang tidak didukung oleh kernel Linux yang saya instal (diskusi tentang topik ini dapat ditemukan di sini dan di sini). Anda dapat menentukan apakah ini kasus Anda dengan melihat ke atas dmesg
log perintah untuk pesan kesalahan seperti [sdaw] Unsupported sector size 520
.
Untuk mengatasi ini saya memformat ulang drive menggunakan ukuran blok 512 dengan perintah sg_format -v --format --size=512 /dev/sdX
. Perintah ini dapat memakan banyak waktu untuk dijalankan (beberapa jam) dan hasilnya ditunjukkan di bawah ini.
Setelah selesai, drive akan muncul di lsblk
output.
Langkah 2: Buat Sistem File di Drive
Untuk memformat drive dengan ext4 sistem file, saya menjalankan perintah berikut: sudo mkfs -t ext4 — verbose /dev/sda
.
Langkah 3: Pasang Drive
Sekarang kita dapat mengakses drive dan telah diformat dengan sistem file yang diinginkan, kita dapat meningkat drive ini.
- Buat folder tempat kita akan memasang drive. Sebagai contoh:
/mnt/farm/00
untuk/mnt/farm/23
untuk drive yang akan menyimpan plot akhir, dan/mnt/plot-tmp/00
untuk/mnt/plot-tmp/11
untuk lokasi plot sementara. - Run
sudo blkid
untuk mendapatkan ID unik drive Anda (atau partisi). Ini akan menampilkan beberapa baris seperti/dev/sdae: UUID=”29494f44–2f75–4c01-a766–18755eb583d7" TYPE=”ext4"
. - Edit file fstab dengan
sudo vim /etc/fstab
dan kaitkan setiap drive dengan yang sesuai/mnt/...
map. Menjadi hati-hati untuk tidak mengedit baris pertama file karena itu diperlukan untuk memasang drive root OS. File terakhir saya ditunjukkan di bawah ini. - Run
sudo mount -a
untuk memasang semua drive yang ditentukan dalam file fstab. Itu hanya akan memasang drive yang belum dipasang sehingga aman untuk dijalankan beberapa kali. - Pastikan pengguna memiliki akses ke drive dan filenya dengan menjalankan sudo
chmod -R 777 /mnt/farm/00
.
Langkah 4: Jalankan Perangkat Lunak Chia Blockchain
- Ikuti instruksi resmi yang ditentukan di sini untuk menginstal blockchain Chia (saya tidak menginstal GUI).
- Run
chia start farmer
untuk memulai daemon untuk dompet, pemanen, dll.
Langkah 5: Atur Plotman (Opsional)
pembuat plot adalah manajer plotting yang akan mengambil alih penciptaan pekerjaan plotting baru. Ini adalah alat kenyamanan (tidak diperlukan).
- Instal Plotman mengikuti instruksi di sini.
- Edit
plotman.yaml
dengan spesifikasi plotter Anda. File terakhir saya ditunjukkan di bawah ini.
antarmuka pengguna:
use_stty_size: Benar
direktori:
log: /home/plotter/plotman-logs
tmp:
- /mnt/plot-tmp/f00
- /mnt/plot-tmp/f01
- /mnt/plot-tmp/f02
- /mnt/plot-tmp/f03
- /mnt/plot-tmp/f04
- /mnt/plot-tmp/f05
- /mnt/plot-tmp/f06
- /mnt/plot-tmp/f07
- /mnt/plot-tmp/f08
- /mnt/plot-tmp/f09
- /mnt/plot-tmp/f10
- /mnt/plot-tmp/f11
dst:
#- /mnt/farm/00 LENGKAP
#- /mnt/farm/01 LENGKAP
#- /mnt/farm/02 LENGKAP
#- /mnt/farm/03 LENGKAP
#- /mnt/farm/04 LENGKAP
#- /mnt/farm/05 LENGKAP
#- /mnt/farm/06 LENGKAP
#- /mnt/farm/07 LENGKAP
#- /mnt/farm/08 LENGKAP
#- /mnt/farm/09 LENGKAP
#- /mnt/farm/10 LENGKAP
#- /mnt/farm/11 LENGKAP
- /mnt/pertanian/12
- /mnt/pertanian/13
- /mnt/pertanian/14
- /mnt/pertanian/15
- /mnt/pertanian/16
- /mnt/pertanian/17
- /mnt/pertanian/18
- /mnt/pertanian/19
- /mnt/pertanian/20
- /mnt/pertanian/21
- /mnt/pertanian/22
- /mnt/pertanian/23
penjadwalan:
tmpdir_stagger_phase_major: 2
tmpdir_stagger_phase_minor: 1
tmpdir_stagger_phase_limit: 1
tmpdir_max_jobs: 1
global_max_jobs: 20
global_stagger_m: 40
waktu_pemungutan suara: 30
merencanakan:
k: 32
e: Salah # Gunakan opsi plot -e
n_threads: 2 # Threads per pekerjaan
n_buckets: 128 # Jumlah ember untuk membagi data menjadi
job_buffer: 8096 # Per memori pekerjaan
Beberapa poin yang layak disebutkan:
- Plotman tidak menghentikan penjadwalan ke drive pertanian (pada saat penulisan ini) ketika drive penuh. Oleh karena itu, Anda perlu menghapusnya (atau mengomentarinya seperti di atas).
- Plotman akan secara otomatis menambahkan drive pertanian ke pemanen chia.
- saya menggunakan
tmpdir_max_jobs
sama dengan 1 karena saya merencanakan ke hard disk yang tidak memiliki kinerja pencarian yang baik dibandingkan dengan SSD.
Langkah 6: Jalankan Plotter
Pada titik ini, semua yang diperlukan untuk mulai merencanakan adalah menjalankan plotman interactive
.
Catatan: Pekerjaan yang berjalan sangat lama merencanakan untuk /dev/farm/usb2
adalah proses debug yang tidak dimaksudkan untuk dijalankan hingga selesai.
Semoga ini bisa membantu dalam memberi Anda gambaran tentang apa yang diperlukan untuk bertani Chia!
Sampai sekarang, peternakan saya 1/3 dari jalan penuh dan saya berencana untuk memposting pembaruan saat terisi dan ketika saya mulai merencanakan ulang untuk kolam.
Khusus terima kasih kepada Katie Gandomi untuk bantuan pengembangan.
Selamat bertani!
- mengakses
- Tambahan
- Semua
- sekitar
- Teluk
- blockchain
- Bangunan
- membeli
- Pembelian
- disebabkan
- kesempatan
- memeriksa
- komponen
- komputasi
- Konsensus
- konsumen
- konsumsi
- cryptocurrency
- data
- hari
- Terdesentralisasi
- Mendesain
- Pengembangan
- Devices
- MELAKUKAN
- Pendapatan
- eBay
- energi
- EU
- EV
- kebun
- pertanian
- Pertama
- cocok
- format
- penuh
- Pemberian
- baik
- Perangkat keras
- High
- Rumah
- hr
- HTTPS
- ia
- IBM
- ide
- Dampak
- Termasuk
- informasi
- Intel
- IP
- IT
- Pekerjaan
- Jobs
- besar
- Tingkat
- Terbatas
- linux
- Daftar
- memuat
- Panjang
- LP
- Cocok
- matematika
- medium
- Pertambangan
- bulan
- jaringan
- resmi
- Opsi
- Lainnya
- pola
- prestasi
- Kolam renang
- proyek
- bukti
- RAM
- Sumber
- Hasil
- ulasan
- Hadiah
- memperlengkapi
- Run
- berjalan
- aman
- Pencarian
- rasa
- Ukuran
- So
- Perangkat lunak
- terjual
- Solusi
- MEMECAHKAN
- Space
- kecepatan
- membagi
- awal
- mulai
- penyimpanan
- menyimpan
- mendukung
- Didukung
- sistem
- target
- sementara
- waktu
- .
- Pembaruan
- Pengguna
- Lawan
- volume
- dompet
- Apa itu
- Wikipedia
- menang
- dalam
- Kerja
- bernilai
- penulisan