Releases: penumbra-zone/penumbra
Testnet #31: Autonoe
This testnet includes our first pass at implementing a concept of TransactionViews
and TransactionPerspectives
, which together will allow users to pass along a partial "view" of the decrypted contents of a transaction's shielded actions in the form of a "perspective" consisting of a bundle of action-scoped payload keys corresponding to some or all of the actions in a specific transaction. This allows someone in possession of a full viewing key for an account to share some of their decryption ability without needing to provide their full viewing key.
This release also fixes the block time to be 5 seconds instead of 1 second, alongside various other feature enhancements and improvements:
What's Changed
- crypto: refactor transparent proof statements into gadgets by @redshiftzero in #1470
- test(integration): list created proposals by @redshiftzero in #1486
- Allow pcli querying of governance-controllable chain parameters by @zbuc in #1463
- update default config template with 0.34 by @avahowell in #1485
- Automated testnet - ingress for fullnodes by @agouin in #1464
- Create parallel
storage2
crate by @zbuc in #1493 - implement
TransactionView
by @redshiftzero in #1426 - Add stub impls for Storage2 crate by @zbuc in #1495
- Use pro-rata output in constructing SwapClaimProof by @zbuc in #1498
Full Changelog: 030-isonoe...031-autonoe
Testnet #30: Isonoe
This testnet lands our backport to Tendermint 0.34!
Previous versions of Penumbra used Tendermint 0.35, which suffered from stability and connectivity issues, and has now been officially deprecated by the Tendermint Council. These issues made it very difficult to understand whether problems with the network were related to our code, or an underlying Tendermint issue.
This release includes all necessary backporting to use Tendermint 0.34, which will hopefully bring much better stability, and sets us on track to target the upcoming Tendermint 0.37 release based off of the 0.34 code.
It also includes other changes:
- We restructured our protobuf structures, and now publish them to
buf.build
: https://buf.build/penumbra-zone/penumbra . This provides documentation, as well as auto-generatednpm
packages that provide web clients with Penumbra data structures. - We've added a canonical short form for Penumbra addresses, of the form
penumbrav2t1f5u3qn64s0muy84pgqdwd2ue…
. Our address encoding ensures that it is safe for users to compare only the short form: #1367 - We fixed various bugs in the initial swap functionality.
- We replaced all
u64
amounts with anAmount
type internally, preparing to migrate our shielded pool to record 128-bit values, so it can better handle shielding Ethereum assets. - We added a
Balance
type representing an action's change to a transaction's value balance, preparing for modular transaction view functionality. - We added a
--moniker
flag topd testnet join
that allows setting a moniker when joining the testnet.
As usual, instructions on how to join or use the testnet can be found at https://guide.penumbra.zone .
If you're planning to run a full node, do not use Tendermint 0.35
, which will no longer work with pd
.
The galileo
faucet bot will be down for a few days while we update it to new Protobuf APIs.
029-eukelade.2
Re-release of 029-eukelade.1
since that release was based on an out of date 029-eukelade
tag.
029-eukelade.1
029-eukelade
Summary
Major changes:
- Added support for shielded swaps via
pcli tx swap
- Added a placeholder constant-product marketmaker to provide liquidity for swaps
- Added commands for querying swap data:
pcli q dex cpmm-reserves
andpcli q dex batch-outputs
- Added
pcli view list-transactions
query for transaction hashes by block - Enabled GRPC-web for web wallet support
- Added governance chain parameter change proposals
Full Changelog
What's Changed
- Add pcli view query for transaction hashes by block by @aubrika in #1327
- Increase epoch duration and proposal voting block duration in future testnets by @zbuc in #1370
- Document swaps in the guide by @zbuc in #1365
- protocol: lift memos to transaction level by @redshiftzero in #1371
- pd: experimentally enable grpc-web by @hdevalence in #1379
- Swap/SwapClaim DEX implementation by @zbuc in #1359
- Rebuild go protos by @zbuc in #1381
- rename
pcli query proposals
to qpcli query governance`, add proposal status and title by @avahowell in #1380 - support dummy
Spend
s andOutput
s by @redshiftzero in #1383 - Add combined notes table to view service migrations by @aubrika in #1338
- Enable Swap/SwapClaim plans in transaction build by @zbuc in #1387
- Tweaks towards completing swap/swapclaim flow by @hdevalence in #1391
- test: regression for auth hash mismatch by @redshiftzero in #1388
- Add a stub CPMM (UniV2) AMM to back the DEX for testing purposes. by @hdevalence in #1397
- wallet: add memo in
plan::sweep
to dodge a panic by @hdevalence in #1395 - Implement chain parameter change execution by @zbuc in #1375
- Make asset ID formatting infallible in the case that a denom doesn't exist by @zbuc in #1404
- test(integration): add sweep test by @redshiftzero in #1402
- consensus rules: add rule for memos, re-enable clue checks by @redshiftzero in #1403
- Implement
pcli q dex
commands by @zbuc in #1408 - Chore: clear lints by @zbuc in #1409
- Print the user's swap outputs during swap transactions in pcli by @zbuc in #1410
- provide dummy memo key such that
Transaction::auth_hash
does not panic by @redshiftzero in #1401 - Move Swap & SwapClaim proof serializations to dex and format as base64 by @aubrika in #1413
- add
gm
andgn
to asset registry, parse genesis allocations withparse_unit
by @avahowell in #1414 - temporarily disable memo consensus rule by @redshiftzero in #1417
Full Changelog: 028-harpalyke...029-eukelade
028-harpalyke
Summary
Minor changes:
- Added support for receiving packets from counterparty chains
- Added protocol support for multi-asset fees
- Added clue keys into note commitments
What's Changed
- Reduce the Balance interface and add proptest to check all expressions by @plaidfinch in #1344
- crypto: add clue key into note commitments by @redshiftzero in #1339
- spec: fix inaccurate diversfier key derivation by @redshiftzero in #1349
- add ics20 transfer packet processing by @avahowell in #1299
- spec: introduce account and account ID terminology by @redshiftzero in #1350
- support multi-asset fees by @redshiftzero in #1328
- deps: pin tokio to known good version by @redshiftzero in #1358
- updates for 028-Harpalyke testnet by @redshiftzero in #1362
Full Changelog: 027-thyone...028-harpalyke
027-thyone
Summary
Major changes:
- Added a new Governance component to
pd
, with corresponding functionality inpcli
, that implements basic governance signaling proposal creation and voting.
Minor changes:
- Refactored the transaction planner
- Cleaned up various symmetric crypto functionality
- Small changes to the guide
- Added
Clue
s for fuzzy message detection to transactions
What's Changed
- crypto: add
OvkWrappedKey
andPayloadKey
-only decrypt method by @redshiftzero in #1284 - Support generating plans for Swap/SwapClaim in wallet by @zbuc in #1308
- team base allocations by @redshiftzero in #1309
- spec: transaction-level symmetric crypto by @redshiftzero in #1311
- feat: add full
Address
toNote
by @redshiftzero in #1282 - refactor(Address): encapsulate jumbled bytes (followup from #1282) by @redshiftzero in #1313
- add deterministic
Clue
generation andCluePlan
[FMD part 1] by @redshiftzero in #1296 - test: verifies that addresses are diversified by @redshiftzero in #1319
- Rebase swaps/swapclaims on current main branch changes, use address from notes, move NFT asset ID generation to SwapPlaintext by @zbuc in #1314
- build
Clue
s fromCluePlan
s [FMD part 2] by @redshiftzero in #1312 - Rename NoteRecord to SpendableNoteRecord by @aubrika in #1323
- use GCS for terraform remote state by @danbryan in #1294
- rename FVKHash to AccountID and derive using Poseidon by @redshiftzero in #1324
- add consensus rules to check
Clue
s [FMD part 3] by @redshiftzero in #1321 - Support awaiting detection of note commitments during pcli transaction submission by @zbuc in #1329
- Update guide docs by @pygmygoats in #1334
- Automatically submit SwapClaim after Swap completes by @zbuc in #1330
- ephemeral addresses: ensure that the random index is outside of u64 range by @avahowell in #1335
- Signaling and emergency proposals: submit and withdraw, validator voting by @plaidfinch in #1275
- Transaction plan builder by @plaidfinch in #1343
New Contributors
- @pygmygoats made their first contribution in #1334
Full Changelog: 026-hermippe...027-thyone
025-helike
Major changes:
- An abstraction around fuzzy message detection (FMD) parameters was added. This allows the FMD parameters to be auto-adjusted according to the empirical transaction rate on-chain.
- Work on ZSwap continues. This testnet includes initial support for
Swap
andSwapClaim
actions, however they are incomplete and will always be rejected.
What's Changed
- chore(clippy): clippy --fix -Z unstable-options by @mattsse in #1254
- update architecture overview in docs by @hdevalence in #1255
- spec: update asset ID description by @hdevalence in #1256
- spec(poseidon377): address audit feedback by @redshiftzero in #1257
- renamed ChainParams to ChainParameters by @borngraced in #1248
- feat: create initial
FmdParameters
support by @redshiftzero in #1258 - Testnet 25: Helike release prep by @zbuc in #1272
New Contributors
Full Changelog: 024-dia...025-helike
024-dia
Major changes:
- A rework of how the Penumbra app communicates validator updates to Tendermint prevents last week's chain halt, and ensures that Tendermint won't get confused when validators rotate their consensus keys.
- Work on ZSwap continues. This testnet extends the
Transaction
type to include actions that open, close, and withdraw concentrated liquidity positions (although we currently reject transactions that include these actions).
What's Changed
- refactor(state_key): only use raw keys to build
KeyValueRequest
s by @erwanor in #1228 - dex: add domain types for LPNFTs by @hdevalence in #1237
- Swap fixes and cleanup by @zbuc in #1238
- Some auth hash personalization strings were too long by @plaidfinch in #1242
- Add verification checks to note payload trial decryption by @aubrika in #1244
- Provide a canonical ordering constructor for TradingPair by @zbuc in #1251
- proto: protoize ValueCommitment by @hdevalence in #1249
- stake: send absolute validator updates to Tendermint by @hdevalence in #1246
- dex: add LP actions by @hdevalence in #1252
- testnets: update allocations for dia testnet by @hdevalence in #1253
Full Changelog: 023-arche.1...024-dia
023-arche
What's Changed
- Output validator custody file in pcli-compatible format by @plaidfinch in #1212
- Update testnet release manager checklist by @aubrika in #1187
- add
eddy
crate: flow encryption implementation scaffold by @avahowell in #1058 - 1047: Implement SwapPlaintext/SwapCiphertext encrypt/decrypt and transparent proofs by @zbuc in #1104
- dex: stub LP data structures by @hdevalence in #1214
- crypto: split up WIP swap code into modules by @hdevalence in #1215
- Update priv_validator_key.json path by @alterkahn in #1213
- Remove typed errors from Transparent Proof implementations in favor of anyhow by @zbuc in #1219
- spec: add note commitment section by @redshiftzero in #1220
- Await nullifiers in view service, making transaction confirmation robust when there is no change by @plaidfinch in #1225
- Define governance protos and domain types by @plaidfinch in #1184
New Contributors
- @alterkahn made their first contribution in #1213
Full Changelog: 022-hegemone...023-arche.1