Flash Layer 1.0 Alpha
Implementasi Fungsionalitas
Integrasikan node Flash dan tambahkan tes integrasi sistem #1717 (Saluran Pembayaran, Peningkatan)
Kami sudah memiliki cukup dukungan kode untuk memungkinkan hal ini. Langkah pertama adalah memindahkan hal-hal di luar test / Flash dan menjadi kelas dasar. Kemudian, mengintegrasikan node Flash dalam FullNode / Validator.
Flash: Harus memverifikasi bahwa saldo baru berbeda sebelum mencoba pembaruan saluran #1618 (Saluran Pembayaran, Fitur)
Keduanya di sini:
agora / source / agora / flash / Channel.d
Baris 638 di 8c61fa5
auto new_balance = this.foldHTLCs (this.cur_balance, secret, height);
Dan di sini:
agora / source / agora / flash / Channel.d
Baris 698 di 8c61fa5
auto new_balance = this.foldHTLCs (this.cur_balance, secret, height);
Secara khusus, counter-party dapat mengirimkan rahasia tidak valid yang tidak cocok dengan hash preimage mana pun. Jika tinggi blok tidak menyebabkan HTLC habis, saldo baru akan sama persis dengan saldo lama. Ini tidak terlalu merusak, kecuali bisa jadi dalam bentuk DDoS.
Flash: Ganti API bayar / perbarui yang memblokir dengan API terima / penolakan dan jangan menelurkan serat di mana-mana #1644 (Saluran Pembayaran, Peningkatan)
Sebelumnya kami memijah serabut di mana-mana. Kami memutuskan untuk menggantinya dengan satu serat per saluran. Ini masuk akal karena saluran hanya dapat diperbarui sekali dalam satu waktu. Karena itu, kami dapat mengelompokkan beberapa HTLC sekaligus.
Flash: Pantau tinggi blok dan picu pembaruan jika HTLC dapat diklaim kembali #1619 (Saluran Pembayaran, Peningkatan)
Kami memeriksa untuk melihat apakah ada HTLC yang dapat diklaim ulang dan memanggil proposeNewUpdate (). Sebelumnya kami hanya akan melipat ketika pihak lawan meminta pembayaran atau pembaruan
Flash: Buat paket bawang merah ukuran tetap #1614 (Saluran Pembayaran, Fitur)
Dalam #1529 paket terenkripsi bawang diimplementasikan. Namun ukurannya bervariasi berdasarkan jumlah hop.
Di LN paket bawang selalu berukuran tetap. Ini memastikan tidak ada node yang dapat mengetahui berapa banyak lompatan yang telah dilalui paket atau berapa lompatan yang masih perlu dilalui. Lompatan hanya mengetahui lompatan sebelumnya dan lompatan berikutnya. Ini adalah fitur privasi penting.
Kerentanan hashing dengan array #1331 (Bug)
Secara default, sebuah array tidak akan di-hash jika panjangnya kosong. Hal ini dapat menyebabkan kasus di mana dua struktur dengan konten yang sangat berbeda mungkin berakhir dengan hashing yang sama. Masalahnya bisa jauh lebih halus dari ini, terutama ketika struct menyematkan struct lain yang mungkin berisi array.
Ubah stempel waktu blok menjadi offset dari Genesis #1615 (Block Creation, Enhancement)
Kita harus bisa mengkonfigurasi waktu Genesis untuk tujuan pengujian. Skema saat ini tidak mengizinkan hal itu. Untuk menjaga fungsionalitas saat ini dan menyederhanakan penerapan, kita harus mengubah nilai stempel waktu, dari nilai absolut (stempel waktu UNIX) menjadi nilai relatif (diimbangi dari Genesis). Terakhir, kita harus memindahkan “genesis start time” ke ConsensusConfig dan menyetelnya untuk diterapkan ..
Dengarkan permintaan HTTP #27 (Faucet)
Beberapa titik akhir API telah diterapkan dan nomor port telah ditetapkan. Sekarang faucet perlu mendengarkan permintaan HTTP sehingga titik akhir dapat dipanggil. misalnya http://127.0.0.1:2766/utxos