LLeafVellin
Ruang kerja kode dengan AI

Pembangunan akar Merkle bertanda

Bangun akar Merkle SHA-256 dari satu hingga 64 daun bita, masing-masing paling banyak 4096 bita, memakai tag daun dan induk berbeda.

● ● ●LeafVellin●
Alur kerja · Pembangunan akar Merkle bertanda ×
import hashlib

def merkle_root(leaves):
    if type(leaves) is not list or not 1 <= len(leaves) <= 64 or any(type(x) is not bytes or len(x) > 4096 for x in leaves):
        raise ValueError("merkle.leaves")
    level = [hashlib.sha256(b"\x00"+x).digest() for x in leaves]
    while len(level) > 1:
        if len(level) % 2:
            level.append(level[-1])
        level = [hashlib.sha256(b"\x01"+level[i]+level[i+1]).digest() for i in range(0, len(level), 2)]
    return level[0].hex()
✳Pembangunan akar Merkle bertanda
✓ PerubahanTinjau sebelum menerapkan ↗
Ilustrasi ruang kerja
ProyekUji tingkat ganjil dengan menggandakan simpul terakhir dan tolak masukan kosong tanpa menganggap akar sebagai bukti kepemilikan.
Tinjau sebelum menerapkanBandingkan perilaku sebenarnya dengan hasil yang diharapkan. Jika pemeriksaan gagal, cari penyebabnya sebelum membuat perubahan lain.
ModelAtur endpoint kompatibel OpenAI atau Anthropic dengan URL dasar dan kunci API jika diperlukan. Uji koneksi. Server model lokal harus berjalan; alat jarak jauh dapat mengirim data secara terpisah.
Alur kerja

Pembangunan akar Merkle bertanda

Alur kerja ↗
Alur kerja
import hashlib

def merkle_root(leaves):
    if type(leaves) is not list or not 1 <= len(leaves) <= 64 or any(type(x) is not bytes or len(x) > 4096 for x in leaves):
        raise ValueError("merkle.leaves")
    level = [hashlib.sha256(b"\x00"+x).digest() for x in leaves]
    while len(level) > 1:
        if len(level) % 2:
            level.append(level[-1])
        level = [hashlib.sha256(b"\x01"+level[i]+level[i+1]).digest() for i in range(0, len(level), 2)]
    return level[0].hex()
Ruang kerja kode dengan AI

Pertahankan konvensi byte saat mengubah kode hash

LeafVellin adalah ruang kerja pemrograman Windows untuk membahas perubahan sumber dengan model AI terhubung. Kode hash memerlukan uraian byte yang diproses dengan sangat tepat: perubahan representasi yang tampak tidak berpengaruh dapat menghasilkan nilai yang sama sekali berbeda. Mulailah dengan kebutuhan interoperabilitas dan data uji masukan-keluaran yang diketahui sebelum meminta refaktor.

Contoh pohon Merkle bertanda menawarkan tugas proyek terarah. Anda dapat meminta asisten memeriksa urutan daun, awalan berbeda untuk daun dan simpul internal, serta duplikasi simpul terakhir yang ganjil. Sertakan kode yang memasok daun dan menggunakan akar agar konvensi itu tetap terlihat sepanjang jalur lengkap yang diubah.

Tinjau usulan perubahan berdasarkan data uji tetap untuk satu daun, jumlah genap, dan jumlah ganjil. Jalankan pemeriksaan dalam proyek dan bandingkan nilai akar secara persis, bukan hanya bentuk keluaran. Jika implementasi lain harus cocok, gunakan konvensi yang didokumentasikannya dan data uji independen; kesamaan nama fungsi hash saja tidak membuktikan kompatibilitas pohon.

Pilihan model AI tanpa filter tersedia melalui endpoint yang didukung, baik yang kompatibel dengan OpenAI maupun Anthropic, sejauh layanan tersebut menawarkan model yang dipilih. Konfigurasikan kredensial bila diperlukan dan periksa alat serta batas konteks. Pembatasan penyedia tetap berlaku, dan keputusan akhir perubahan hash bergantung pada tinjauan serta bukti Anda.

Pertanyaan sebelum refaktor pohon byte

Apa yang harus disepakati dua implementasi selain fungsi hash?

Tentukan byte dan urutan daun, awalan, penggabungan simpul internal, serta perlakuan terhadap jumlah simpul ganjil. Sertakan data uji eksak untuk konstruksi terpilih. Nama hash yang sama tidak menyiratkan kesepakatan tentang konvensi di sekitarnya.

Mengapa menyertakan data uji satu daun?

Itu mengisolasi konvensi daun dari pemrosesan simpul internal dan memudahkan deteksi langkah hash tambahan yang tidak disengaja. Pasangkan dengan data uji banyak daun berjumlah genap dan ganjil agar peninjauan juga mencakup aturan percabangan konstruksi.

Haruskah daun berupa teks diberikan langsung ke kode hash?

Tentukan pengodean byte dan normalisasi apa pun sebelum hashing. Sertakan batas konversi dalam permintaan jika melibatkan teks. Jika tidak, refaktor mungkin mempertahankan teks yang terbaca sambil mengubah byte dan karenanya nilai akar.

Apakah akar yang cocok membuktikan sistem yang lebih luas dapat dipercaya?

Itu membuktikan kesesuaian untuk konstruksi dan masukan yang diuji, bukan semua sifat sistem di sekitarnya. Tinjau cara akar disimpan, dibandingkan, dan digunakan dalam aplikasi, serta batasi klaim integritas yang lebih luas pada bukti yang benar-benar tersedia.

Unduh untuk Windows ↗

LeafVellin · Diperbarui 2026-10-25