Oasis Q3 2022 Mga update sa Engineering

Ardetlongos
Oasis Foundation Filipino
9 min readNov 15, 2022

--

Disclaimer: Ang paglalathala na ito ay pagsasalin ng Ambassador ng Oasis. Mahigpit na sinuri para makapagbigay ng tamang pagsasalin, ngunit maaaring magkamali at magkulang. Hindi mananagot ang Oasis sa kawastuhan at kahusayan nito. Basahin ang orihinal dito.

Ang Q3 ay naging abalang mga buwan para sa Oasis Engineering team

Nagkaroon tayo ng malaking hakbang sa pagdadala ng Sapphire patungo sa ParaTime layer mula ng ilunsad ito sa Testnet sa katapusan ng Hulyo. Ngayon ay posible nang bumuo at magdeploy ng EVM confidential smart contracts patungo sa Sapphire ParaTime Testnet — tingnan ang tutorial sa ibaba!

Dagdag pa rito, ang team ay nagtulong upang panatilihin ang Cipher at Emerald sa pamamagitan ng Paratimes, nang walang downtime.

Ang Oasis Wallet- Web, ang common codebase sa hinaharap ng lahat ng Oasis Wallets, ay nagkaroon din ng malakihang pagbabago tungo sa pag-suporta ng browser local storage at ParaTime transactions. Papalapit na tayo sa pag-rerelease ng Oasis Wallet-Browser Extension 2.0, na binuo mula sa common codebase.

Sa kabuuan ng quarter, naisagawa ang mga ongoing updates, pagpapabuti at tatlong maintenance release sa Oasis Core, maging ang pinagbabatayang engine powering Oasis nodes.

Inaasahan naming makabuo ngayon abalang panahon habang patungo sa ika-apat na quarter ng taon, kung saan ang mga malalaking pagbabago ay maisasagawa, lalo na ang pag-lulunsad ng Sapphire sa Mainnet.

Para sa buong detalye ng pag-update ng engineering, pakitingnan sa ibaba.

MGA PAGBABAGO SA WALLET

Makikita sa Oasis Wallet — Web ang mga makabuluhang pag-unlad sa pagsuporta ng browser local storage at ParaTime transactions. Kami ay nagpaplanong ilabas ang pagsuporta sa ParaTimes ngayong taon, kasunod nito ay ang susunod na henerasyon ng Oasis Wallet — Browser Extension, na binuo mula sa common codebase. Pinagsama namin ang 112 na pull requests. Ang iba sa mga kapansin- pansing karagdagan at kaayusan(kabilang ang gawain sa sangay ng ParaTimes):

  • Pinapakita ang mga transaksyon sa ParaTimes(#849)
  • Kaayusan sa browser extension(#904)
  • Karagdagang mga tuntunin para maipatupad ang ating type-safe replacements (#911, #914)
  • Default sa null na balanse imbis na 0 (ipakita ang ‘-’ para sa hindi nakikilang balanse)(#916)
  • Ipakita lamang ang AddEscrowFormsa inyong account (#918)
  • Markahan ang mga bigong transaksyon(#925)
  • Hindi ipakita ang mga nakalilitong balance fields mula sa RPC(#927)
  • Dagdagan ng “Bawiin lahat” na buton(#931, #932)
  • Palitan ang UI para maging kahawig ng Oasis Wallet- Browser extension (#933, #935, #936, #937)
  • Pagbutihin ang numeric precision gamit ang BigNumber.js(#952)
  • Mga deposito at withdrawal sa ParaTime(#962, #969)
  • Ipakita ang tantiyadong oras ntyg debonding sa debonding list (#963)
  • Pabilisin ang pagsasaayos ng loading network nang 40 % (#976)
  • Ayusin ang pag-iimport ng maraming account mula sa Ledger (#980)
  • Karagdagang suporta sa pagkuha ng maraming account mula sa mnemonic (#983)
  • Banggitin ang tamang ticker sa buod ng account (#1026)
  • Bawasan ang laki ng bundle(7.2MB -> 5.4MB) na may magkakatulad na pag-iimport ng grommet (#1038)
  • Mas maliliit na pagsasa-ayos at paglilinis ng UI(#868, #879, #903, #919, #921, #922, #928, #946, #947, #949, #953, #958, #999, #979, #1019, #1049)

Habang ang Oasis Wallet — Web codebase ay malapit nang maging karaniwang code base para sa parehong mga wallet, ipinagpatuloy namin ang pagpapahusay sa Oasis Wallet — Browser Extension. Sa Q3, pinagsama namin ang 9 na pull request at inilabas ang bersyon 1.8.0. Ang mga kapansin-pansing pagbabago ay ang mga:

  • Idagdag ang Sapphire sa Testnet(#279)
  • Pagbutihin ang numerikong precision sa reclaim escrow(#281)
  • Poll para sa estado ng transaksyon ng sapphire(ang mga transaksyon ay naka-index na ngayon) (#285)
  • Ayusin ang bug na “invalid nonce” (#282)
  • Mas maliliit na pagsasa-ayos at paglilinis ng UI(#280, #282, #286)

Ang Oasis CLI- ang pinag-isang CLI sa pamamahala ng iyong account at smart contracts sa Oasis — ay nakitaan din ng ilang pagpapabuti:

  • Karagdagang suporta sa pag-dump ng naka-deploy na WASM ng contrata (#1007)
  • Karagdagang contract state dump (#1034)
  • Maghanap ng address gamit ang account name, karagdagang suporta sa test accounts(#1038)
  • Suportahan ang pagbabago ng patakaran sa pag-upgrade ng kontrata(#1052)
  • Karagdagang suporta sa address book(#1087)

Para sa pagsign ng mga transaksyon sa ParaTime gamit ang mga hardware wallet tulad ng Ledger, isang bagong detalye ng ADR 14 ang iminungkahi. Magsisimula ang pagpapatupad nito sa Q4.

MGA UPDATE NG PARATIME

  • Ang Emerald at Cipher ParaTimes ay naging stable sa Mainnet sa buong Q3, at hindi nakakaranas ng downtime o iba pang mga insidente.
  • Ang mga epekto ng bear market sa paggamit ng DeFi ay makikita sa dami ng transaksyon sa Emerald. Ang daily peak para sa Q3 ay nagsimula noong Hulyo na may humigit-kumulang 60k na transaksyon bawat araw, patuloy na bumababa at nagtatapos sa quarter na may 16k-18k na transaksyon bawat araw.
  • 52 na nodes ang nagpapatakbo ng Emerald Paratime sa Mainnet mula noong Sep 30.
  • 29 na nodes ang nagpapatakbo ng Cipher Paratime sa Mainnet mula noong Sep 30.

DEVELOPMENT SA PARATIME

Nakita sa Q3 ang ilang pangunahing pag-unlad para sa Oasis ParaTimes.

Sa katapusan ng Hulyo, matagumpay naming na-deploy ang bagong kumpidensyal na EVM-compatible na Sapphire ParaTime sa Testnet. Available ang code sa sapphire-paratime at oasis-sdk GitHub repos.

Para sa kaginhawahan, nagdagdag kami ng suporta para sa pag-dump ng naka-deploy na smart contract code sa Cipher ParaTime at pag-dump(opsyonal na naka-encrypt) na smart contract state. Nagbigay ito ng daan para sa pag-verify ng mga on-chain na kontrata at dapat makatulong sa pag-debug.

Ang buod ng mga pagbabago sa Runtime SDK:

  • Karagdagang encryption transport library sa web-ts; derive_symmetric_key tests para sa go, rust at typecript(#962)
  • ORC tool: Karagdagang suporta para sa pag-sign ng SGXS binaries(#1056)
  • EVM: Hindi na nangangailangan ng encryption ng empty string(#1064)
  • Kaayusan sa computation ng gas: Kaayusan sa subcall dispatch(#1066)
  • EVM: Ihayag ang pampublikong data sa mga nilagdaang query(#1069)
  • EVM: Karagdagang precompile sa pag-encrypt (#1102)
  • EVM: Hindi na ii-encode ang paggawa ng output ng kontrata (#1138)
  • Pinahusay na mga test at dokumentasyon (#991, #1041, #1046, #1047, #1081, #1101)

MGA UPDATE SA DEVELOPER PLATFORM

Posible na ngayong bumuo at mag-deploy ng mga kumpidensyal na smart contract ng EVM sa Sapphire ParaTime sa Testnet. Huwag mag-atubiling tingnan ang isang tutorial at bigyan kami ng feedback.

Sinusuportahan na ngayon ng Emerald Web3 Gateway ang Emerald at Sapphire ParaTimes. Karamihan sa iba pang mga pagsasa-ayos ay kinabibilangan ng mga bump sa bersyon ng dependency. Sa Q3, pinagsanib namin ang 9 na pull request. Isang bagong release ng v3.0.0 ang ginawa gamit ang mga pag-aayos sa mga function ng pagtatantya ng gas, at ang paglabas ng v3.1.0-rc1 ay nagdagdag ng suporta para sa Sapphire.

Ang aming Dokumentasyon ay binubuo ng mga markdown file mula sa iba’t-ibang repository, at nakita nito ang malaking overhaul sa Q3 parehong mula sa backend at frontend side. Ang mga kategorya sa frontend ay nakatuon na ngayon sa madla sa halip na nakatuon sa component:

  • Mga gumagamit ng network ng Oasis (pangkalahatang impormasyon tungkol sa network ng Oasis at ang pundasyon, mga gabay kaugnay sa wallet)
  • Impormasyong Community-related.
  • Mga operator ng node (mga parameter ng network ng Mainnet at Testnet, pag-set up ng iba’t ibang uri ng mga node at serbisyo)
  • Mga developer ng dApp (pagsusulat ng mga app para sa emerald, sapphire, at cipher ParaTimes)
  • Mga developer ng ParaTime
  • Mga pangunahing contributor

Mga pagpapabuti sa backend:

  • Suporta para sa pag-edit ng anumang Markdown file anuman ang orihinal na lokasyon ng repository
  • Walang putol na pag-link ng mga na-refer na .md file at doc card mula sa iba pang mga repository
  • Suporta para sa pag-import ng mga snippet ng code mula sa mga file
  • Para sa backward compatibility, ang mga pag-redirect ay nai-set up para sa lahat ng nakaraang mga dokumento

Ang dokumentasyon ay inilipat mula sa docs.oasis.dev patungo sa docs.oasis.io na domain. Umaasa kaming masisiyahan kayo sa mga bagong pagbabago. Huwag mag-atubiling mag-ambag ng mga tutorial, gabay at pag-aayos sa pamamagitan ng pagbisita sa https://github.com/oasisprotocol/docs at paggawa ng mga pull request!

Ipinakilala ng ADR 17 ang isang standard na format para sa mga pamantayan ng interoperability ng application na partikular sa ParaTime. Sumasabay ito sa aming unang RFP na humihiling ng kumpidensyal na fungible token na pamantayan para sa Sapphire ParaTime.

MGA PANGUNAHING PLATFORM UPDATES

Tatlong maintenance release ng Oasis Core 22.1.x ang na-publish sa Q3 (v22.1.9, v22.1.10, v22.1.11). Kasabay nito, nagsimula ang pagbuo ng Oasis Core 22.2.x sa mga pangunahing feature tulad ng Intel SGX2, DCAP-based na pagpapatunay, mga pagpapahusay sa on-chain na pamamahala, at TEE-based na runtime security. Isang matatag na release ang pinaplano nang maaga sa Q4. Sa pangkalahatan, 64 na pull request ang pinagsama sa Q3. Mga kapansin-pansing bagong feature at mga pagbabago gaya ay gaya ng mga sumusunod (karamihan ay naka-iskedyul na mapunta sa Oasis Core 22.2.x, at ang ilan ay na-backport sa 22.1.x):

  • go/staking/grpc: Palitan ang pangalan ng pamamaraan ng GovernanceDeposits (#4652)
  • go/runtime: I-utos ang paggamit ng kontrol sa iskedyul ng runtime (#4665)
  • Karagdagang suporta para sa PCS attestation(#4806, #4789, #4720, #4752)
  • go/governance: Karagdagang panukala sa pagbabago ng mga parameter (#4938)
  • Karagdagang suporta sa archive mode(#4539)
  • go/control: Ipakita ang mga status ng debug option sa control output(#4634)
  • runtime: Gawing ma-configure ang estado ng patuloy na pagsusuri sa transaksyon(#4640)
  • go/runtime/txpool: Limitahan ang mga natitirang transaksyon sa bawat sender (#4665)
  • go/control/status: Magdagdag ng mga field para sa mabilis na pagsusuri ng estado ng node (#4669)
  • go/worker/storage: Gawing mas matalino ang pagpili ng peer sa pag-sync ng checkpoint (#4671)
  • runtime: i-verify ang epoch sa dispatcher gamit ang consensus verifier (#4677)
  • go/worker/compute: Tiyaking na-verify ang trust-root bago irehistro (#4678)
  • go/worker/compute: Simulan ang batch resolution nang maaga para sa backup na manggagawa (#4679)
  • go/runtime/txpool: Idagdag ang data ng mga papasok na mensahe ng roothash bilang mga transaksyon (#4681)
  • go/worker/registration: Idagdag ang sukat ng estado ng node (#4686)
  • runtime: Paganahin ang dispatcher upang mai-verify ang integridad ng estado para sa mga query (#4694, #4830, #4904)
  • go/worker/common/p2p: Magdagdag ng suporta para sa persistent at block peers(#4713)
  • go/worker/common: Wastong pangasiwaan ang configuration ng dynamic key manager (#4715)
  • go/runtime/txpool: Magdagdag ng sukatan ng txpool para sa mga rejected na transaksyon sa runtime (#4724)
  • runtime: I-verify ang RAK sa consensus state kapag naghahatid ng mga request(#4741)
  • runtime: Magdagdag ng suporta para sa pag-uulat ng feedback ng peer ng EnclaveRPC(#4757)
  • archive-mode: huwag paganahin ang runtime P2P kung archive mode ang ginagamit(#4775)
  • go/consensus/tendermint: Magdagdag ng consensus.tendermint.halt_height (#4793)
  • net-runner: Magdagdag ng — fixture.default.runtime.version flag (#4813)
  • go/oasis-node: payagan ang km na magkaroon ng mga pribadong peers (#4821)
  • go/runtime/registry: payagan ang mga node ng kliyente na magpatakbo ng mga sgx runtime (#4832)
  • go/worker/keymanager: Magdagdag ng sukatan ng worker ng key manager (#4877)
  • go/control/status: Idagdag ang estado ng key manager worker sa estado ng node (#4883)
  • keymanager: Add support for ephemeral keys (#4888)
  • oasis-net-runner: Itakda ang default na max_allowances, dagdagan ang balanse ng test account (#4902)
  • runtime/consensus/verifier: Suportahan ang pag-upgrade ng layer ng consensus ng trust root (#4903)
  • runtime: Suportahan ang mga query sa consensus event(#4904)
  • keymanager: I-validate ang pinakabagong trust root height sa key manager request(#4910)
  • registry: Magdagdag ng ProveFreshness consensus layer transaction (#4916)
  • runtime: Magdagdag ng client node TEE freshness verification (#4922)
  • keymanager: I-verify na ang patakaran ay na-publish sa consensus layer (#4925)
  • I-bind ang mga pagpapatunay ng TEE sa mga node at ipatupad ang freshness(#4926)
  • go/genesis: Cache computed genesis document hash (#4919)
  • go/oasis-node/cmd: Ang hindi ligtas na pag-reset ay pinipriserba ang local na storage bilang default (#4700)
  • go/oasis-node/cmd: ang hindi ligtas na pag-reset ay sinusuri ang validity ng datadir(#4702)
  • runtime: Maglabas ng mga runtime log bilang mga log ng oasis-node(#4709, #4924)

Ang bagong Oasis Indexer, na sumusuporta sa pag-index ng parehong consensus-layer at ParaTime na mga transaksyon, ay open-sourced. Sa Q3, ang focus nito ay pagbuo ng mga pangunahing features, pagdaragdag ng caching, pag-aayos ng mga bug, at pagpapabuti ng deployment tooling. 25 PR ang pinagsama-sama. Plano naming i-update ang Oasis Wallets para magamit ang Oasis Indexer sa hinaharap.

Ang ADR 15 ay iminungkahi upang tugunan ang mga kahinaan sa proseso kung saan pinipili ang mga ParaTime block proposers. Kasalukuyang pinipili ang block proposer sa pamamagitan ng round-robin algorithm, na ginagawa itong trivial upang matukoy ang nagmumungkahi para sa isang partikular na block nang maaga. Ang ADR 15 ay nagmumungkahi ng isang mekanismo na nag-rarandomize ng Paratime block proposer order.

ADR 16 proposes a more efficient process for updating consensus parameters on the Oasis Network. Currently, to change consensus parameters, one needs to update the oasis-node binaries, restart them and resync with the new consensus network version. ADR 16 adds a new ChangeParametersProposal governance proposal which can prevent downtime and improve the robustness of the network.

Ang ADR 16 ay nagmumungkahi ng isang mas mahusay na proseso para sa pag-update ng mga parameter ng consensus sa Oasis Network. Sa kasalukuyan, upang baguhin ang mga parameter ng consensus, kailangan mai-update ang mga binary ng oasis-node, i-restart ang mga ito at muling i-sync sa bagong bersyon ng consensus network. Ang ADR 16 ay nagdaragdag ng bagong ChangeParametersProposal na panukala sa pamamahala na maaaring maiwasan ang downtime at mapabuti ang tibay ng network.

--

--