ARK Core v2.5 - Penghentian API v1 & Making a Leaner Codebase

in #arkindonesia5 years ago

Hi steemians
Salam #arkindonesia kabar terbaru dari ark kali ini yaitu ARK CORE v2. 5yang di dalam nya ada perubahan sistem untuk lebih jelasnya kita simak yuk

Sedikit kurang dari sebulan setelah rilis Core v2.4 kami, kami dengan senang hati mengumumkan peningkatan yang berhasil ke Core v2.5 di ARK Public Network kami. Core baru sekarang bahkan lebih ramping dengan penghapusan basis kode legacy API v1. Pembaruan ini membuka jalan bagi ARK Core v2.6 yang akan menjadi pembaruan tunggal terbesar dari Core kami hingga saat ini.

ARK Core baru sekarang lebih bersih dan lebih mudah dirawat karena penghentian kode legacy API v1. Dengan rilis ini kami memulai serangkaian perbaikan pada basis kode saat ini dalam persiapan untuk pembaruan besar dengan Core v2.6 dan Core v3. Banyak perubahan kinerja juga telah dilakukan ke lapisan P2P Websockets yang baru digunakan menggunakan perpustakaan SocketCluster.

Kami juga telah menambahkan fitur dan peningkatan baru berikut:

  • Pengambilan yang mudah dari blok pertama dan terakhir karena sering pengguna ingin blok palsu terakhir atau blok genesis untuk memeriksa sesuatu. Kami telah menambahkan dua titik akhir baru ke sumber daya blok yang mengambil orang-orang dari dalam memori alih-alih memukul basis data, yang juga membantu dengan kinerja.

  • Kemungkinan untuk mengambil blok mentah dan data transaksi dalam format yang sama dengan @arkecosystem /cryptomenggunakannya via
    ? Transform = false. Ini diaktifkan pada semua titik akhir yang melayani blok atau transaksi.

  • Opsi baru yang dapat dikonfigurasi yang memungkinkan Anda memilih apakah akan menggunakan taksiran untuk jumlah total baris jika itu benar (cepat) atau menggunakan COUNT yang tepat (*) jika opsi itu salah (lambat) untuk API Inti. Terserah operator node untuk mengkonfigurasi node mereka untuk akurasi vs kecepatan.

  • Pencarian transaksi dengan aset sebagai titik akhir / transaksi / pencarian
    sekarang menerima objek aset.

  • Pembatasan laju yang ditingkatkan dengan memperkenalkan RateLimiterclass baru yang juga memungkinkan batas tarif berbeda per titik akhir.

  • Keluar dari kesalahan PostgreSQL yang tidak terduga yang memungkinkan Core pulih darinya dengan keluar dari proses sehingga PM2 dapat memulai kembali dan tidak merusaknya.

  • Pemeriksaan tajuk blok rekan yang ditingkatkan dengan menghapus kebutuhan untuk melakukan pemeriksaan tanda tangan yang mahal jika kami sudah memiliki blok yang sama.

  • Unduh titik akhir blok serialisasi sekarang kembalikan blok dengan transaksi serial.
    Alasannya adalah secara drastis meningkatkan daya tanggap karena menghilangkan semua ketegangan dari sebuah simpul yang diunduh, peningkatan kinerja dapat mencapai 10x tergantung pada ukuran blok.

Jika Anda ingin mempelajari lebih lanjut tentang semua perubahan, berikut adalah daftar semuanya:

Pemecahan

Perlakukan dan kembalikan nilai BigInt sebagai string (memengaruhi core-api) (# 2739) -

CATATAN: Jika Anda menjalankan aplikasi apa pun yang menggunakan nilai numerik tanpa penanganan bigInt, Anda harus memastikan untuk selalu bekerja dengan bigInts dan bukan angka / string.

Ditambahkan

  • Izinkan pengambilan blok mentah dan transaksi melalui API (# 2616)
  • Cari transaksi berdasarkan aset melalui API (# 2618)
  • Izinkan pengambilan mudah dari blok pertama dan terakhir (# 2641)
  • Buatlah dapat dikonfigurasi apakah akan menggunakan taksiran untuk core-api (# 2772)
    Biarkan pengguna memilih jika mereka ingin menggunakan rilis @ next(# 2789)

Tetap

  • Tetapkan batas nilai yang sama dengan API publik (# 2717)
  • Tambahkan opsi untuk mengonfigurasi waktu tunggu permintaan untuk webhooks (# 2710)
  • Gunakan variabel CORE_API_DISABLED di default (# 2711)
  • Selalu berusaha mengunduh blok setelah memulai (# 2746)
  • Kemungkinan kerusakan basis data saat menulis dan menghapus blok (# 2707)
  • Lupakan rekan saat soket dilepas (# 2720)
  • Kesalahan off-by-one saat mengambil blok dari rekan (# 2733)
  • Periksa konfirmasi pengguna dalam perintah snapshot (# 2734)
  • Berikan akses jika daftar putih kosong (# 2748)
  • Jangan bersihkan transaksi ketika blok tidak diterima (# 2751)
  • Perhitungan urutan putaran sebelumnya (# 2754)
  • Kembalikan blok yang diterima ketika saveBlocks gagal (# 2761)
  • Jangan pulihkan blok genesis dengan id yang salah (# 2759)
  • Hindari pengulangan pada peerBlocks yang tidak dapat diubah (# 2763)
  • Perkiraan yang benar jika kurang dari batas baris (# 2764)
  • Berusaha lebih keras untuk mengembalikan jumlah transaksi yang diminta (# 2765)
  • Tolak cap waktu transaksi yang akan datang dan kedaluwarsa (# 2757)
  • Hapus blok terakhir jika deserialisasi gagal (# 2770)
  • Naikkan bignumber maksimal (# 2777)
  • Izinkan stempel waktu mendatang hingga 3600+ waktu henti (# 2787)

Berubah

  • Unduh blok serial untuk meningkatkan kinerja (# 2743)
  • Pemeriksaan tajuk blok teman sebaya yang lebih baik untuk meningkatkan kinerja (# 2719)
  • Keluar dari kesalahan basis data yang tidak terduga (# 2744, [# 2755])
  • Memblokir rekan-rekan ketika batas tingkat terlampaui (# 2745)
  • Tunda penemuan rekan sampai setelah inisialisasi keadaan dilakukan (# 2727)
  • Pembatasan tingkat P2P yang ditingkatkan (# 2729)
  • Hanya ambil tajuk blok saat memverifikasi rekan (# 2728)
  • Hanya mencari teman baru ketika di bawah teman minimum (# 2714)
  • Selalu aktifkan Wallet API (# 2715)
  • Hormati daftar putih API publik (# 2718)
  • Tambahkan kunci asing pada id blok transaksi (# 2671)
  • Hapus kolom id dari putaran (# 2723)
  • Temukan teman baru lebih cepat (# 2771)
  • Terapkan blok rantai pada level basis data (# 2753)
  • Tambah batas waktu, periksa sisa waktu di slot (# 2788)
  • Segarkan kembali port peer (# 2784)
  • Hapus blockSender (# 2756)

Dihapus

Menghapus API warisan ark-node yang dikenal sebagai v1 (# 2577)

Apa Selanjutnya untuk Core?

Rilis Core Selanjutnya (v2.6) akan menjadi rilis Core terbesar saat ini, bukan hanya fitur bijak, tetapi juga dampak. Core v2.6 membawa kami lebih dekat ke tujuan interoperabillity kami, menambah kustomisasi jenis transaksi dengan integrasi AIP-29 (membuat tipe baru lebih mudah), memperkenalkan nonces dan banyak lagi.

Fitur utama Core v2.6 adalah:

Skema tanda tangan Schnorr - mengurangi ukuran tanda tangan keseluruhan menjadi 65 byte tidak seperti ECDSA yang biasanya bervariasi antara 70-72 byte. Selain itu, ini memungkinkan kami untuk menggunakan agregasi kunci publik (multi-signature) dan keseluruhan kinerja yang lebih baik.

Nonces untuk transaksi - tujuan dari nonce adalah untuk membuat setiap transaksi unik dengan menerapkan nomor urut untuk tx sehingga penyerang tidak dapat memutar ulang transaksi (disebut "serangan replay"), membuat blockchain semakin kuat dan aman .

Generic Transaction Interface (GTI) - dengan memisahkan beberapa fungsi yang membosankan dari Core kami akan memungkinkan para pengembang untuk membuat jenis transaksi kustom mereka sendiri dengan logika mereka sendiri dengan mudah.

Jenis transaksi multisignature — berdasarkan AIP18 kami akan memperkenalkan kembali opsi multisignature, menjadi salah satu koin DPoS pertama yang menggabungkan algoritma Schnorr yang jauh lebih kuat dan lebih cepat.

Kontrak Kunci Hash-Time - akan menjadi langkah pertama menuju kemampuan bagi ARK untuk mendukung Pergantian Atom. Pengguna akan dapat "mengunci" dana sesuai dengan seperangkat aturan yang telah ditentukan.

Jenis pendaftaran Bridgechain— sebagai bagian dari program Powered by ARK yang akan datang, Bridgechains akan memiliki opsi untuk didaftarkan di blockchain ARK kami dan menjadi bagian dari keluarga ekosistem ARK yang akan memberi mereka tunjangan khusus, fitur, dan opsi promosi.

Jenis transaksi multipaymen - Anda akan dapat melakukan bulk transaksi dan mengirimkannya dalam satu transaksi untuk menghemat biaya dan ruang.

Jenis transaksi IPFS - akan memungkinkan pengguna untuk menyimpan hash yang sesuai dengan IPFS dari file yang disimpan pada solusi IPFS.

Delegasi pengunduran diri - delegasi yang ingin kehilangan menjadi delegasi (dan dipilih) akan dapat mengirim "perintah bunuh", yang akan membuat mustahil untuk memilih delegasi itu.

Core v2.6 sedang dalam tahap akhir pengembangan dan pengujian internal diperkirakan akan berlanjut ke-Pengembangan Jaringan kami (Devnet) sekitar bulan September, di mana ia akan diuji secara menyeluruh oleh orang lain sebelum ditayangkan di Jaringan Publik ( Mainnet).

Core v2.6 juga akan menjadi rilis terakhir di era Core v2.x. Rilis berikutnya setelah v2.6 akan langsung ke Core v3 dan akan menampilkan semua item Core v2.x yang tersisa (hot reload, API-JSON, sistem plugin baru) dan bahkan lebih banyak item yang akan diperkenalkan dan dijelaskan lebih dalam- mendalam di posting blog Core yang telah ditinjau segera keluar (Anda sudah dapat melihat beberapa tugas yang akan menjadi bagian dari Core v3 di situs web baru di https://ark.io/roadmap).

Perubahan Dari v2.4 ke v2.5

Untuk operator simpul dari Core ARK saat ini, untuk memperbarui, silakan ikuti instruksi migrasi ini (v2.4 ke v2.5) sebelum Anda melakukan pembaruan: https://docs.ark.io/releases/v2.5/ migrating_2.4_2.5.html

Perubahan Angka

  • 6 pengembang berbeda berkontribusi pada Core.
  • 76 komitmen baru pada Core.
  • 355 file diubahdalam Core.
  • 7.078 penambahan kode ke Core.
  • 10.293 penghapusan kode dalam Core.