Skip to main content
IntentionKernel adalah tempat blok yang dikomit berubah menjadi state trading. Kernel ini bukan mesin virtual serbaguna yang mengeksekusi program sembarang — set instruksinya adalah himpunan terenumerasi dari operasi finansial yang dibutuhkan venue derivatif, dan setiap operasi punya efek terdefinisi yang dipahami protokol. Perbedaan itulah alasan jaringan ini bisa membuat klaim tentang trading sama sekali. Chain serbaguna bisa memberi tahu Anda bahwa transaksi sudah ditandatangani dan tidak gagal. Yang tidak bisa disampaikannya: bahwa transaksi itu adalah pembatalan order tertentu pada posisi tertentu di order book, karena makna panggilan itu buram baginya. Di sini, maknanya adalah instruksinya.

Eksekusi closed-world

Menutup set instruksi hanyalah satu contoh dari langkah yang dilakukan kernel empat kali. Setiap kali, ruang tentang apa yang bisa terjadi dienumerasi lebih dulu, dan apa pun di luarnya ditolak alih-alih ditangani.
Operasi
Payload yang bukan anggota himpunan terenumerasi — ditolak saat validasi, bukan saat runtime
Apa yang sebenarnya diminta
Kebenaran
Memperlakukan working set per blok sebagai otoritatif. Itu jurnal; sumbernya adalah state engine
Apa yang benar saat ini
Input
Apa pun yang bisa berbeda antara dua mesin: jam dinding, entropi, floating point, urutan hash
Apakah node lain mendapat byte yang sama
Kausalitas
Perubahan state tanpa pemilik. Efek yang bukan milik transaksi pengguna mana pun lewat kanal sistem, bukan lewat pengecualian
Mengapa perubahan ini terjadi
Ditutup
Ditolak
Sehingga ledger bisa menjawab
Empat penutupan, satu langkah: enumerasi ruangnya lebih dulu, lalu tolak apa pun yang jatuh di luarnya.
Ini bukan empat keunggulan yang berdiri sendiri. Masing-masing menopang yang berikutnya: menutup operasi membuat makna sebuah instruksi bisa dipulihkan; satu state otoritatif membuat kata “hasil” punya definisi; menutup input membuat hasil itu bisa direproduksi di mesin lain; dan menutup kausalitas membuat sebuah hasil bisa ditelusuri kembali ke permintaan yang menghasilkannya. Lepaskan satu saja dan rantai pertanggungjawaban putus tepat di mata rantai itu. Apa yang keempatnya beli bersama layak diberi nama, karena bursa tradisional membeli hal yang sama dengan biaya jauh lebih besar. Jejak audit sebuah bursa dirakit di samping sistem perdagangannya lalu dilaporkan ke hilir — itulah sebabnya jejak itu bisa berbeda dari sistemnya, sebabnya rekonsiliasi menjadi pekerjaan tetap, dan sebabnya sinkronisasi jam antarbursa menjadi persyaratan regulasi, bukan detail implementasi. Di sini tidak ada catatan kedua untuk direkonsiliasi. Jejak auditnya adalah eksekusi itu sendiri. Sisa halaman ini adalah keempat penutupan itu secara rinci.

Set instruksi

Semua yang bisa dilakukan peserta atau validator adalah salah satu dari himpunan tetap operasi bertipe: Transaksi yang muatannya bukan anggota himpunan ini ditolak pada tahap validasi. Himpunan ini hanya berubah lewat upgrade protokol, tidak pernah dengan men-deploy sesuatu yang baru.

Mengeksekusi blok

Eksekusi adalah barisan tahap yang tetap. Urutannya bukan detail implementasi — urutan itulah yang menentukan apakah likuidasi melihat harga yang memicunya, dan apakah pembatalan mendahului order agresif yang masuk.
Hargatetapkan mark untuk blok
Muatserap akun dan order blok
Fundingselesaikan aliran funding
Risikodeleveraging vault → likuidasi → ADL
Matchpra-match → matching → pasca-match
Finalisasikumpulkan output, buang state mati
Setiap tahap di hilir menalar satu harga per instrumen, bukan harga yang bergerak
Diselesaikan terhadap posisi saat dimuat, bukan posisi akhirnya
Aliran paksa diselesaikan sebelum aliran diskresioner baru diterima
Berjalan setelah Risiko adalah alasan likuidasi tidak bisa didahului order di blok yang sama
Posisi bernilai nol dan akun kosong tidak bertahan
Satu blok, enam tahap
Yang ditentukan penempatannya
Order kondisional dipindai dan didorong maju di dalam barisan ini, sehingga pemicu dari mark blok ini berlaku di blok ini, bukan di blok berikutnya.
Harga berjalan pertama dan menetapkan mark yang akan dipakai sisa blok, sehingga setiap tahap di hilir menalar satu harga per instrumen alih-alih harga yang bergerak. Muat menyerap akun dan order milik blok tersebut. Funding menyelesaikan funding terhadap posisi sebagaimana dimuat. Risiko menjalankan tiga fase berurutan — deleveraging vault, lalu likuidasi, lalu auto-deleveraging — agar aliran paksa diselesaikan sebelum aliran diskresioner baru diterima. Match kemudian menjalankan tiga fasenya sendiri, menghasilkan eksekusi. Finalisasi mengumpulkan apa yang berubah dan membuang state yang tidak perlu ada lagi, seperti posisi bernilai nol dan akun yang telah kosong. Order kondisional dipindai dan didorong maju melalui siklus hidupnya di dalam barisan ini, sehingga pemicu yang terpicu oleh mark blok ini berlaku di blok ini juga, bukan di blok berikutnya.
Likuidasi yang berjalan sebelum matching adalah alasan likuidasi tidak bisa didahului order di blok yang sama. Aliran likuidasi sudah terselesaikan pada saat order diskresioner dicocokkan.

Dua jenis state

Kernel menjaga pemisahan tegas antara apa yang persisten dan apa yang sekadar coretan kerja.
selama blok dieksekusi
State enginepasar · akun · order book · posisi · lembaga kliringhidup lintas blok
Working set blokmark · akun tersentuh · eksekusi · output tertahanhidup satu blok saja
State chain terkomitberversi · terautentikasiotoritasnya
Pelacakan perubahan mudah disalahartikan sebagai otoritas. Apa yang berubah selama blok menyusun output deterministik — bukan tempat state berada.
otoritas tempat engine dibangun ulang
baca
terapkan
materialisasi
State engine hidup lintas blok: metadata pasar, akun, order book, state instrumen, state lembaga kliring. Inilah jawaban atas “apa yang benar saat ini”. Working set per blok hanya ada selama blok dieksekusi: input blok, mark yang ditetapkan di awal, akun dan order yang tersentuh, serta output yang sedang dirakit. Ini jurnal, bukan sumber kebenaran. Perbedaan ini penting karena pelacakan perubahan mudah disalahartikan sebagai otoritas. Apa yang berubah selama blok berjalan dipakai untuk menyusun output deterministik — bukan tempat state berada. Membalik hal ini menghasilkan sistem yang jawabannya bergantung pada cara Anda bertanya.

Mengapa hasilnya dapat direproduksi

Determinisme di sini ditegakkan, bukan diharapkan. Setiap node jujur yang mengeksekusi blok yang sama terhadap state sebelumnya yang sama menghasilkan hasil yang sama bit per bit, karena tidak ada apa pun di jalur eksekusi yang bisa membaca sesuatu yang berbeda antarnode:
  • Aritmetika fixed-point di sepanjang jalur. Matematika penyelesaian berjalan pada fixed-point integer dengan semantik pembulatan yang eksplisit — pembulatan ke atas pada eksponen negatif di margin, floor dan ceiling pada biaya. Tidak ada floating point di jalur penyelesaian, karena selisih pembulatan antara dua mesin adalah fork.
  • Tanpa jam dinding. Pengurutan di dalam blok memakai posisi kanonis yang dikomit konsensus dan timestamp blok, tidak pernah waktu lokal.
  • Tanpa keacakan runtime. Apa pun yang membutuhkan keacakan menurunkannya secara deterministik dari state on-chain.
  • Iterasi deterministik. Setiap koleksi yang urutan iterasinya teramati di output diurutkan, bukan diacak oleh hash.
Satu konsekuensi layak disebut: karena “waktu” di dalam blok adalah posisi intrablok yang dikomit, tidak ada keunggulan kolokasi sub-milidetik di dalam satu blok. Digabung dengan jadwal prioritas — yang menjalankan pembatalan sebelum penempatan agresif — ini adalah pertahanan struktural terhadap kuotasi terpasang yang disambar order yang tiba di blok yang sama.

Formula risiko bersifat murni

Formula yang menentukan kebutuhan margin, harga likuidasi, pemilihan sasaran deleveraging, biaya, dan batas open interest diimplementasikan sebagai fungsi murni tanpa state. Fungsi-fungsi itu menerima nilai dan mengembalikan nilai; tidak membaca maupun mengubah state ledger. Perubahan state digerakkan semata-mata oleh lembaga kliring, yang memanggil fungsi-fungsi tersebut dan menerapkan hasilnya. Modul yang memegang state — akun, posisi, order book — menyimpan data dan menyediakan mutator, tetapi tidak menggerakkan alur bisnis sendiri. Ini batas yang disengaja. Artinya perhitungan margin bisa diperiksa terpisah terhadap tabel input dan output, dan artinya hanya ada satu jalur kode yang bisa mengubah saldo siapa pun.

Output

Eksekusi menghasilkan tulisan state dan event, masing-masing terikat pada transaksi penyebabnya, ditambah satu kanal untuk efek tingkat sistem yang bukan milik transaksi pengguna mana pun — funding, perpindahan dana asuransi, penghitung blok. Semua itu menjadi output transaksi yang dikomit lapisan state dan disajikan indexer. Tidak ada yang terjadi di dalam kernel yang tak terlihat di hilir. Kalau sesuatu mengubah state, perubahan itu ada di output seseorang atau di kanal sistem.

Ke mana selanjutnya

Matching

Order book, prioritas harga-waktu, dan bagaimana masa berlaku order serta pencegahan self-trade diselesaikan.

Lembaga Kliring

Satu-satunya jalur yang mengubah saldo, posisi, dan margin.

Model state

Apa yang terjadi pada output kernel setelah dikomit.

IntentionBFT

Dari mana urutan dan harga itu berasal.