###### tags: `Cosmos SDK` # SDK Architecture Review - 2021-07-30 The **SDK Architecture Review** meeting is a bi-weekly meeting focused on architecture discussions of ADRs and features currently in development (any issues tagged with the label "Status: Needs Architecture Review"). ## Agenda - [x] Working Group Check In - https://github.com/cosmos/cosmos-sdk/wiki/Architecture-Design-Process - [x] Sign Mode Textual or JSON - https://github.com/cosmos/cosmos-sdk/issues/9557 - https://github.com/cosmos/cosmos-sdk/issues/6513 - https://github.com/cosmos/cosmos-sdk/issues/9320 - [x] ADR-40 updates: - Low Level Access to SC: https://github.com/cosmos/cosmos-sdk/pull/9451 - multistore: https://github.com/cosmos/cosmos-sdk/pull/9355 - New DB Interface (https://github.com/cosmos/cosmos-sdk/pull/9573) ... - [ ] ADR 044: Guidelines for Updating Protobuf Definitions - https://github.com/cosmos/cosmos-sdk/issues/9477 - https://github.com/cosmos/cosmos-sdk/pull/9613 - [ ] Decide about future of sdk.Dec - https://github.com/cosmos/cosmos-sdk/issues/7773 - [ ] Signing offchain messages ## Notes ### Epic Tracking Epics for working groups. We should have better tracking of working groups in epics. Discussions on the architecture review call should be in active design phase. ### Working Group Check In **Consensus Fees** - Robert: Fede implemented EIP1559, waiting for approval from the ICF to extend it and merge in the SDK - Let's keep it (not paused) - Implementation phase **Gov/Group Module Alignment** - proceeding with implementation **Module Wiring** - proceeding with implementation **x/auth, x/bank and vesting re-design** - implementation work for bech32 refactor **Protobuf golang v2 migration and codegen** - discussions of moving this to cosmos-sdk - Frodji has done a lot of work on fast marshalling - Tyler has done some work on patching files **Offline signatures** - Robert made one more update, now waiting for Frodji (or word for Robert to take it over fully and create a new branch and new PR) - Billy: Spoke to simon warta to add this as a CosmJS feature **NFT support for the SDK** - implementation PR is still open from the Haifung (Iris team) - THey were to update with smaller PRs into master ### Sign Mode Texual or JSON - previously we had agreed to do a new sign mode that was not JSON as we were finishing stargate - Ledger team did not trust that this was the right path, and asked for JSON instead - In looking at whats involved in doing a proto-json serializer, it complicates things for 3 different teams (CosmJS, SDK team, ledger team) - We should have chain-governance voting on format strings - so that format changes are dealt with at the protocol level - Two questions for the group: - is human readable signing at the protocol level a good concept? - if we are in alignment on that, are we in alignment on this spec (so we can formalize it a bit more and put it to ledger to get their approval) - Dev: Why can't we just change the typeUrls to be more human readable? and have a chain-id to disambiguate between versions? - Aaron: That might be a worthwhile middleground, but its not proto-json - Marko: I'd like to have 5 minutes at the end to speak abt ADR040 ==> Live walkthrough of: https://hackmd.io/fsZAO-TfT0CKmLDtfMcKeA?both - Ethereum prior art - [EIP-712: Ethereum typed structured data hashing and signing ](https://eips.ethereum.org/EIPS/eip-712) - [Metamask history & overview](https://docs.metamask.io/guide/signing-data.html#sign-typed-data-v1) (ledger and trezor support) ### ADR-40 updates - Marko: Wanted to check-in on bandwidth for reviewing - Waiting for things to get merged in order to proceed with the rest of the implementations - Robert: Current decision has been to merge into a feature branch ll-smt - Marko: Maybe we start a new branch? - Robert: It would be good to sync bc we haven't been in touch w/ them for months. We are indeed late with the review, so would be good to have a 30-min sync and see what the most pressing pieces are - Marko: I'm leading the Vulcanize account (probalby first Tuesday of each month). Maybe we can use that sync for anything you need to ask them? - Robert: Also with low-level access to state commitments. Seems there is agreement there, but one issue still is with the multistore. - The multistore is discussed in the ADR40 discussion (not in the issue) - Aaron: As a process point, can we make sure there's a regular sync on the calendar w/ them? - Robert: Who else should be included? Marko ## Follow Up - [ ] Descriptions of epics within GitHub - [ ] Speak with Ledger company about SIGN_MODE_TEXTUAL (Aaron, Cory, Billy, Dennis, Simon, Juan) - [ ] Setup regular sync for SMT Migration work (Marko, Robert, Rory, maybe Ian?)