This week, the team continued adding the Catalyst voting registration feature to Ledger hardware wallets, improving UI/UX for the native asset display, implementing earned rewards history option, and, finally, removing legacy MC4, Shelley Testnet, Incentivized Testnet, and Jormungandr code.
The team also began integrating token decimal places into metadata.
This week, the team released an update for the offchain-metadata-tool to include decimals, and also worked on an upcoming update for cardano-wallet to also include decimals, and an endpoint for multi-asset wallet migration.
The team is currently working on the consolidation and streamlining of APIs for building transactions that will enable Alonzo/Plutus features.
Finally, work is still ongoing on the portfolio manager and multisig features, and the team is also busy investigating & resolving some performance issues.
This week, the team continued working on the P2P governor functionality, discovering and diagnosing PeerStateActions race conditions, fixing asynchronous transition delays, and upgrading DNS resolution to io-sim-classes.
They also worked on the handshake protocol to handle simultaneous open connections and tested FirstToFinish and LastToFinish synchronizations using an Alternative type class. Finally, the team fixed the deadlock issue in the Win32-network test.
P2P testnet updates
This week, the team completed the second milestone of the P2P deployment, delivering an engineering testnet, which allows for automatic peer selection in the network. During this stage, the team tested and implemented different user configurations, established interoperability between legacy and P2P nodes, and produced a video that reflects automated peer selection.
The team had a call with SPOs, where they explained P2P project goals, P2P system design, and the concept of hot, cold, and warm peers. They also introduced the goals of the third milestone in P2P deployment (semi-public testnet), explaining that there will be a switch in the node to enable selection of either the new P2P mode or the existing (non-P2P) one. During the semi-public testnet delivery, the team will be inviting a small group of SPOs to help test system functionality.
This week, the team tested Alonzo properties and provided Bitte support for non-AWS clusters. They also worked on Nixos configuration for the testnet with running stake pools, and improved relay and db-sync properties on a single server with isolated Nixos containers, which provides full monitoring and central logging.
This week, the team continued Alonzo benchmarking activities completing node configurations, extending traces with the necessary hashes, and improving the locli log analysis tool to enable re-capture of new traces. This week also marks the launch of the first Alonzo testnet - Alonzo Blue, which is the early alpha network that provides core Alonzo-node networking capabilities. The team is now in the process of inviting an early group of supporters to test its functionality. Over the next few months, the program will expand to include more users as the team integrates new testnet functionality and features on the way to mainnet deployment.
The team continued working on the wallet abstraction property within the transaction generator, also rebasing Alonzo-related API changes into master. They made progress implementing tracers based on the new framework and completed file-based log writer, journald backend and Prometheus exporter activities for the cardano-tracer.
Work is ongoing on the Plutus application backend (PAB), including logging output improvements and issue resolutions. The team extended the mock wallet implementation to validate transactions locally prior to their submission, and investigated how to run the PAB in-browser. They also changed the time type in
PosixTime, made some improvements to the Game example on
plutus-starter, and supported the decimal metadata field in offchain-metadata-tools and the cardano-wallet.
The team made progress on the multi-stake-keys scheme for the portfolio manager, ran final testing of the wallet migration (send all assets feature), and implemented more API endpoints for shared wallets. They worked on new transactions signing API within the PAB, removed some blocks to integrate with Marlowe Run, and fixed some errors within Marlowe Plutus contracts.
Finally, the team is now working on the refactoring of Actus contract generation and Playground redesign.
This week, the Plutus team worked on the Plutus application backend (PAB) and improved the efficiency of the crowdfunding contract. They also fixed a JSON decoding error when using the ContractModel, so that state machine property tests that use multiple contract instances per wallet will run as designed. Additionally, they kicked off a redesign of the Playground home page.
The Marlowe team implemented in-browser support for Marlowe Run, finished work on the new Marlowe website, and included a registration link for the upcoming series of webinars. They also continued work on promotional materials and documentation, and finally, they fixed a build optimization issue in the Marlowe Playground and completed a small refactoring to the simulator.
This week, the team added the wallet name to the wallet dialog section, fixed the offline currency reflection issue, and added the address verification feature to Trezor hardware wallets. They also completed work on the addition of the search feature within the native tokens dropdown, and updated internal tracking of native tokens.
The team continued adding Ledger hardware wallet support for Catalyst voting registration, and started progress on UI/UX improvements to the native assets display, earned rewards history implementation, and the removal of legacy MC4, Shelley Testnet, Incentivized Testnet, and Jormungandr code.
This week, the team worked out and implemented a solution for the decimal places in the offchain-metadata-tool and the cardano-wallet. This is now with Quality Assurance for testing.
Also, the team is currently working on the consolidation and streamlining of APIs for building transactions that will enable Alonzo/Plutus features.
Finally, development work of the MA wallet migration feature is nearly complete, and work is ongoing on the development of portfolio manager and multisig features, and CI and test suite improvements.
This week, the team investigated P2P node performance, worked on root peer DNS modules in io-sim, and fixed some network tracers and counter configurations. They also improved peer selection counters and made a major refactoring of the inbound governor counters. The team introduced FirstToFinish and LastToFinish synchronizations, which simplified the inbound governor code, fixed CI errors, and continued working on the local root peer feature. They extended the P2P governor policy to deprioritize the demotion of local root peers, and improved the churn governor code.
Finally, the team ran a number of tests and fixed the deadlock issue in the connection manager test architecture.
This week, the team tested the P2P functionality, prepared for the initial Alonzo testnet deployment, and made PostgreSQL improvements to the ERC20 converter.
This week, the team performed Alonzo benchmarking and located the necessary trace messages, defined the model correlation points, and worked on node configuration.
The team worked on UTXO properties and their storage on AWS while investigating relevant design constraints. They also worked on the mass-voting benchmark setup, continued backend abstraction for AWS and local equivalence, and continued working on the backend abstraction for the wallet and transaction generator preparing PRs in the cardano-node repository.
They continued working on trace-dispatcher implementing tracers based on the new framework, fixed some issues, and proceeded on cardano-logger implementation.
This week the team also completed a prototype of the Marlowe website, implementing markdown formatting and contract metadata. They refactored ACTUS contract generation, fixed occurring bugs within the Playground, and continued its redesign in terms of polymorphic built-in types, cost model, and performance.
This week, the Plutus team improved the checkpointing process to allow for constant space contract instances, thereby reducing the amount of redundant events being captured and stored, and implemented some pre-submission validations for transactions.
Finally, they made some Nix configuration updates and bumped the version of the new iohk-monitoring-framework.
The Marlowe team focused on integration with the Plutus application backend (PAB) and continued working on the website design and documentation. Additionally, they made updates to the parameters in the zero coupon bond example contract.
This week, the team continued working on the addition of the wallet name to the wallet dialog section, Ledger hardware wallet support for Catalyst voting registration, and the addition of a search feature within the native tokens dropdown in the ‘Send’ tab. The team also updated internal tracking of native tokens, worked on adding the address verification feature to Trezor hardware wallets, and are in the process of fixing an issue whereby external currencies do not appear while offline.
Last week, the team released updates for the cardano-wallet and cardano-addresses, and started working on a solution for decimal places in offchain-metadata-tool. They also continued working on enabling multi-asset wallet migration and minting/burning of native tokens.
This week, the Adrestia team focused on developing a solution for decimal places in offchain-metadata-tool, and also worked on consolidation and streamlining of APIs for building transactions.
Finally, development work continues for the portfolio manager and multisig features, along with CI and test suite improvements.
P2P testnet updates
Last week, the team completed the first milestone in P2P deployment: delivery of the private testnet. They analyzed key performance indicators from those geographical locations where the new block header first appeared, and according to block statistics, 53% of blocks were produced in Europe, 40% in North America, and 7% in Asia. The team also created a visualization showing automated peer selection in action.
This week, the team started working on the engineering (internal) testnet assessments. This is the second milestone within P2P deployment, which includes the mechanism that allows for automatic peer selection in the network, and some additional user configurations and testing. During this stage, the team is resolving interoperability issues between legacy and P2P nodes, and rebasing the p2p-master branch to the cardano-node (v. 1.26.2) branch.
Engineering testnet improvements include the implementation of such features as the connection manager and inbound connection manager counters, random peer demotion policy, and P2P governor churn based on random policies. The team also worked with the CLIO1 stake pool operator and evaluated the P2P node performance as an upstream peer. The figure below shows the current state of the development network connected to the mainnet:
The team also created a new network topology file format, worked on property tests, and hot reloading of network configurations. Finally, they resolved some P2P governor issues and continued working on IOSim improvements and simulation testing.
This week, the team tested and released node version 1.27.0, finalized the Catalyst voting-tools format for Fund4, and made improvements to Bitte monitoring and the ERC20 converter tool.
This week, the team worked on back-end code improvements to increase the conversion throughput and implemented final changes according to end-to-end testing results in preparation for testnet deployment. They also worked on upcoming documentation to explain the converter functionality.
This week, the team worked on Alonzo benchmarking, specifically the implementation of an auto-calibrating computation stub in block adoption and deploying it on AWS. They also worked on a set of necessary trace pointers and ChainSync elongation metrics. The team deployed the first version of the Alonzo era node, which is an important step to deliver the first Alonzo testnet and enable further integration of Plutus scripts with the ledger. They are now working on the Alonzo properties acceleration to deploy the first series of testnets to engage external partners and users in initial smart contract testing.
The team continued working on trace-dispatcher protocol tracers, cardano-ledger improvements, and restructuring of the RTView-derived code to allow economic use of TCP ports. They completed the wallet abstraction within the transaction generator, and started working on cost model, PIR type bindings, and polymorphic built-in tuple and list features.
The team also continued working on PAB improvements and bug fixing required for Marlowe, and finished the refactoring of the Uniswap example. They made progress working on a state machine library using state threads, implemented 2-phase validation in the mock node, and validated transactions in the mock wallet prior to their submission.
This week, the Plutus team continued improving the database schema and also made updates to the transaction construction and validation logic. Amendments were also made to the cost model ledger interface.
The Marlowe team was focused on improving the input elements for selecting a wallet. They also updated the front end dependencies to webpack version 5 and made some user interface improvements. Work continued on the Marlowe Run documentation.
This week, the team updated some Daedalus dependencies on cardano-wallet and cardano-node, and displayed the wallet name within the wallet dialog section. They also updated Catalyst voting transaction metadata and added Ledger hardware wallet support for voting registration.
This week, the team worked on scaling the ledger stake distribution using square roots, which simplified getting downstream peers for smaller stake pools, and implemented the new connection feature, which is based on stake distribution. They also ran server tests in the simulator, made progress on io-sim by implementing partial order reduction in the ST monad, and introduced some Eq constraints for TVars.
The team also made progress on DNS resolution and configuration reloading for the SIGHUP signal, continued testing the P2P governor, and fixed some issues within the governor and the multiplexer simulation environment.
Finally, the team updated networking CDDL specifications by adding details regarding node-to-node, handshake node-to-client, tx-submision-v2, and keep-alive protocols. They updated test architecture, reviewed networking technical reports, and fixed links to redirect to Haddock documentation instead of the code samples.
This week, the team deployed node version 1.27 and tested Nix flakes before integrating them with cardano-db-sync. They also worked on Nomad Bitte cluster for stake pools, integrated configuration changes for P2P testing, and updated the Mac build image to Catalina to support new Catalyst iOS builds.
Finally, the team integrated GlusterFS storage with Bitte and Catalyst Fund4 repositories.
This week, the team worked on documentation to support migration of tracing and benchmarking components into the node, and continued working on cluster run management.
They finalized consensus tracer migrations, started working on networking tracers, and worked on the prototype design of configurations within the trace dispatcher. The team migrated the trace-forwarder from ReqResp scheme to a more efficient blocking and non-blocking scheme used in the node-to-node transaction submission protocol.
The team continued working within the transaction generator stream focusing on the design of the wallet abstraction, integration of Marlowe Run front and back ends, and finalization of Marlowe Run contract examples. They also fixed some bugs and performed testing integration for Actus implementation.
Finally, the team did refactoring works for cardano-graphql to introduce cardano-ogmios, which optimizes asset handling, metadata fetching, and removes programmatic dependency on cardano-cli.
This week, the Plutus team made improvements to the database schema, including updates to some queries, and also added events for starting and stopping instances. Also, they resolved some odd behavior from the overlaps function and worked on some debugging.
The Marlowe team updated some frontend dependencies and worked on some basic formatting for metadata. They also worked on the new Marlowe website and made some user interface improvements to the Marlowe Run prototype.