Engineering Updates

13 July 2022

  • Semi-fungible token (SFT) support is now complete, including wallet UI support. SFTs can represent anything from voting power to duplicate limited-edition NFTs.

  • Off-chain READ API and lossless subscriptions enable apps to read contract data via individual nodes rather than on-chain transactions, enabling the construction of more responsive applications with lower Gas costs.

  • Economic data from the Inter Protocol contracts and the Smart Wallet are now available via off-chain subscriptions, supporting economic stress testing, and future economic analysis of on-chain activity 

  • Much support for governance-controlled contract upgrades, system performance improvements, more efficient code installation, and general system hardening

03 May 2022

  • Successful launch of RUN Preview in devnet

  • Third-party oracle aggregated price feeds end-to-end

  • RUNstake implementation completed.

  • Incremental liquidations have been implemented.

  • Governance can change multiple parameters simultaneously.

  • All RUN Protocol contracts have implemented virtual objects / collections, for scalability.

  • Improved Kernel upgrade functionality

  • Kernel support for Vat upgrades has been implemented. 

  • We are now running scalability tests of the Agoric platform and RUN Protocol contracts.

  • We have monitoring and alerting in place for our mainnet and devnet follower nodes.

28 March 2022

RUN PROTOCOL, SWINGSET

  • RUNStake UI has been implemented. You can lien and unlien BLD, borrow and repay RUN, and see market/account data and history.

  • Parity Stability Module has been implemented.  This allows the direct trading of stable currencies with RUN.

  • Restival: Our week-long Purple Team security review of RUN Protocol architecture and code surfaced two notable findings, and numerous testing, documentation, and code improvements tagged audit-restival. During the review, we identified opportunities to automate security testing, improve tests, and develop tooling to exercise the code and economy through various scenarios. In addition to our findings, we also produced a series of new diagrams and threat models.

  • The swingset kernel now supports "multi-facet virtual objects", enabling multiple objects to share common state, but expose separate functionality. This allows e.g. Purses and DepositFacets to reference each other and common state, but be presented as distinct objects.

  • Initial support for "vat upgrades" has been added to the swingset kernel. Many features are still missing, but this will eventually enable contracts to be upgraded to new code (subject to governance controls).

  • The kernel now provides "durable Kinds", a special form of virtual object whose instances can survive a vat upgrade. Normal (non-durable) virtual objects are deleted during upgrade. The kernel also provides each version of the vat with a special durable collection, tentatively named "baggage", which passes the "Durable Kind Handles" to the new version so it can re-attach behavior to the retained objects.

  • We have the ability to invoke a method on a contract as a result of a governance vote.

  • Launch of RUN Protocol via Governance, instead of hard-coded bootstrap - 10min demo

  • Initial end-to-end testing of third-party oracle aggregated price feeds.  One of our prospective price feed providers successfully reproduced our Chainlink oracle work to trigger the submission of prices to an on-chain contract that aggregated them and produced a `priceAuthority` that can be consumed by other contracts.

01 March 2022

AMM, ERTP

  • Implemented support for Virtual Collections, which will make the platform much more scalable. Next is to utilize Virtual Objects and Collections in AMM, Vaults, getRUN, ERTP, and Zoe. We have also changed how we form composite keys so that they will be usable as keys for Virtual Collections.

  • Made Vaults transferable with ERTP. That means they can participate in contracts as first-class digital assets.

  • Separated production Vat bootstrap from testing and demo mechanisms.

  • Clawback vesting accounts were released into our mainnet and used to set up thousands of accounts. We are now contributing the code upstream to Cosmos.

  • Dynamic IBC (dIBC) reached another milestone of initiating an outbound IBC channel from within an autonomous Agoric VM contract. It is available via the Agoric Network API.

  • Devnet is our prototype for the transition from mainnet-0 to mainnet-1. Governance (validators can make executable proposals of JavaScript to run on-chain, vote on the proposals, and have them automatically executed if approved) is now testable in our devnet.

  • We have scheduled our “purple team” security exercise for the RUN Protocol for early March.

  • Audit of the Agoric Kernel (“Swingset”) scheduled for April.

08 February 2022

IBC, MAINNET0

  • Mainnet 0: First successful mainnet upgrade including BLD holder governance vote.  Software upgraded to improve Cosmos level vesting accounts.

  • RUN Protocol: progress on getRUN contracts and front end, and planning for upcoming Purple Team effort.

  • We have moved the core components of our distributed object model to Endo, where we are packaging them for chain-adjacent and off-chain applications. https://github.com/endojs/endo

  • Landed "virtual collections" to store high-cardinality tables (Map/Set/WeakMap/WeakSet) on disk instead of in RAM. These will also form the durable storage that survives contract upgrade. Implemented "raw devices" in the kernel, paving the way to bundlecaps and more efficient vat/contract source bundle management.

  • We initiated a dynamic IBC channel from an Agoric localnet JavaScript program, then minted 100hellocoin on the Cosmos testnet (scoped to our channel).  This is the first time that an outbound dIBC channel could be established from an unprivileged Agoric JS IBC port without having to manually intervene to help the relayer along.  With the modifications we suggested, Hermes is now capable of relaying dynamic IBC!

07 January 2022

ECON, ZOE

  • We distributed tokens on Agoric mainnet0 (ag0) for most of our private sale participants.

  • Econ: focused on preparation for the launch of the RUN Protocol.  getRUN contract design updated to allow active management. Contracts modified to allow for RUN Protocol to own assets and provide liquidity to the AMM. Bootstrap process work is ongoing.

  • Zoe: Removed metering and fees tracking at the Zoe layer to simplify code for Mainnet 1.  Prepared for Purple Teaming.

08 December 2021

AMM, SES

01 November 2021

ERTP, AMM

  • Merged code for contract governance. This makes it possible for a contract's parameters to be dynamically controlled by voters. The current choices of electorates includes only a committee, but more options are coming.

  • We also merged a new constant product AMM. There is still work to do to make it be the default AMM, but the framework is in place.

  • A number of deprecated features in ERTP are going to be removed soon as part of this PR: https://github.com/Agoric/agoric-sdk/pull/3892

  • ​​We have published SES 0.15.0, which is an opt-in upgrade. The new version supports configuration by Node.js environment variables and eliminates attack surface exposed by the deprecated Node.js domain module https://github.com/endojs/endo/blob/master/packages/ses/NEWS.md#0150-2021-11-02

27 September 2021

JAVASCRIPT, TESTNET

  • Zip archives are now the default deployment format for Agoric contracts, removing a risky dependency on Rollup from the software supply chain, demonstrating the viability of our JavaScript Compartment proposal for isolating Node.js packages, and paving the way for LavaMoat integration and more efficient storage and transport of contracts to and from our chain.

  • We spun up a new devnet, agoricdev-4. This network contains some of our fixes learned from the incentivised testnet, notably the Tendermint RPC performance improvements.

20 September 2021

SES