The v0.81.2
release contains a hotfix to the DEX logic, resolving a bug that caused a chain halt 2025-01-18 at block 3093519 on the penumbra-1
chain.
What happened (short version)
A transaction was submitted that contained both PositionClose
and PositionWithdraw
actions for the same position P
, which had been auto-closed by the DEX. In DeliverTx
, the PositionClose
action queued the position for closure by ID, and the PositionWithdraw
action checked that the position state was closed and then updated it to Withdrawn. Later, in EndBlock
, the queued position closure was executed. The position state was not Opened or Closed, triggering an assertion.
Why it happened
- Mempool tx checking does not execute end block so this didn't get filtered out
- The position closure method allows the position closure to be a no-op, but only for positions in the closed state
- Because the position was withdrawn, the state was unexpected
All nodes and validators should update to v0.81.2
immediately, by stopping their services, installing the new version, and then restarting services.
Note to pindexer
operators ONLY: The v0.81.2
changeset was prepared against the v0.81.0
tag, to minimize the delta and expedite review. The changes that shipped as part of v0.81.1
are not present. This is only relevant for node operators running pindexer
to maintain an event database. Expect a follow-up release v0.81.3 that will reconcile both changesets. This does not affect pd
.
pcli 0.81.2
Install pcli 0.81.2
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/penumbra-zone/penumbra/releases/download/v0.81.2/pcli-installer.sh | sh
Download pcli 0.81.2
File | Platform | Checksum |
---|---|---|
pcli-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
pcli-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
pcli-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
pclientd 0.81.2
Install pclientd 0.81.2
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/penumbra-zone/penumbra/releases/download/v0.81.2/pclientd-installer.sh | sh
Download pclientd 0.81.2
File | Platform | Checksum |
---|---|---|
pclientd-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
pclientd-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
pclientd-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
pd 0.81.2
Install pd 0.81.2
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/penumbra-zone/penumbra/releases/download/v0.81.2/pd-installer.sh | sh
Download pd 0.81.2
File | Platform | Checksum |
---|---|---|
pd-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
pd-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
pd-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |