Well this release escalated quickly...
We fixed how validator jail impacts energy production (no more free power), improved guild token swapping capabilities, adding a new method for guild creation, fixed the fact that all the current planetary structs shouldn't be able to defend, and finally added a block on mining and refinement during raids to fix squatting. That was all pretty big to begin with.
Then AlatarTheWhite was kind enough to point their security robot armada at our codebase. We're still working through the entire set of issues found, but many of the biggest ones are addressed here. We're going to keep chipping away at these to make structsd rock solid, but figured it made sense to get some of the features and fixes out.
| Issue | Categories | Contributors |
|---|---|---|
| Add variable limit to fleet queue | Feature,Gameplay | jpeg |
| Validator jail should impact power generation | Economy,Gameplay | abstrct |
| Guild Tokens now unable to move via IBC | Economy | AlatarTheWhite,abstrct |
| Guild Bank Conversions | Economy,Feature | Kilgore |
| Existing guild members can repeatedly create guilds and retain old control | Bug,Security | AlatarTheWhite |
| Unrestricted confiscation target permits burning IBC escrow backing | Bug,Security | AlatarTheWhite |
| Delegated update key can spend the player's primary-account funds | Bug,Security | AlatarTheWhite |
| Failed provider checkpoint does not abort capacity mutation | Bug,Security | AlatarTheWhite |
| Raw delegation rekeying corrupts staking and distribution state | Bug,Security | AlatarTheWhite |
| Existing infusion retains stale owner after address reassignment | Bug,Security | AlatarTheWhite |
| Full redelegation leaves stake-backed power active at the source reactor | Bug,Security | AlatarTheWhite |
| Ineffective player lookup check permits nonexistent targets and persistent state corruption | Bug,Security | AlatarTheWhite |
| Existing invitations bypass guild authorization and can be hijacked | Bug,Security | AlatarTheWhite |
| Guild approver can forcibly migrate a player without a pending request | Bug,Security | AlatarTheWhite |
| Premature decimal rounding permits over-redemption of collateral | Bug,Security | AlatarTheWhite |
| Out-of-range join-policy enum creates fail-open guild admission | Bug,Security | AlatarTheWhite |
| Unauthorized transactions can reserve victim throttle keys before failing | Bug,Security | AlatarTheWhite |
| Automated allocation teardown clears the auto-resize hook under the wrong key | Bug,Security | AlatarTheWhite |
| Underflowable availability check permits arbitrary overload | Bug,Security | AlatarTheWhite |
| Forced allocation closure skips checkpoint and strands accrued provider earnings | Bug,Security | AlatarTheWhite |
| Map-batched account creation assigns nondeterministic account numbers | Bug,Security | AlatarTheWhite |
| Agreement expiry can permanently strand all collateral | Bug,Security | AlatarTheWhite |
| Toolchain-dependent Unicode validation can split consensus | Bug,Security | AlatarTheWhite |
| Replayable destruction plus unguarded reactivation leaves permanent phantom planetary defenses | Bug,Security | AlatarTheWhite |
| Open-market agreements bypass address-level spending authorization | Bug,Security | AlatarTheWhite |
| Ignored capacity-decrease errors allow repeatable collateral extraction | Bug,Security | AlatarTheWhite |
| Recursive allocation teardown settles one agreement twice | Bug,Security | AlatarTheWhite |
| Shared player cache lets limited keys borrow another address's permissions | Bug,Security | AlatarTheWhite |
| Planetary Structs shouldn’t defend | Bug | netlag |
| Verify primary address is full permissions before updating | Bug,Suggestion | jpeg,netlag |
| Guild creation via PoW | Feature | abstrct |
| Pause Refinement During Raid | Feature | jpeg,netlag |
| Pause Mining During Raid | Feature | jpeg,netlag |
Changelog
- bb05230 Adding a limit to number of enemy fleets that can be in a planets fleet queue. Starting with a limit of 1 (technically extra = 0). Sending all fleets home outside this range during upgrade.
- 156d8d7 Adding jail/unjail implications to the energy production process. Fixing primary address update permission bug.
- 7a82deb Adding some new information to the readme
- d8929a3 Ante bug fixes. test_chain updates.
- b57d1c6 Ante fix for reactor restart
- accdb07 Continued 0.21.0 release review
- 46f8edc Creating a new CanDefend flag on StructType. Giving all Fleet structs a true by default, and all planetary structs a false. This prevents things like Ore Bunker from being used as a block - which was funny but not great.
- e1aa2be Extending Guild Bank functionality
- ac83539 Extending Guild Bank functionality refined.
- 82df17a Issue Resolution: Existing guild members can repeatedly create guilds and retain old control (Disclosed by AlatarTheWhite)
- acb18a0 Issue Resolution: Existing guild members can repeatedly create guilds and retain old control (Disclosed by AlatarTheWhite)
- 907c073 Issue Resolution: Existing guild members can repeatedly create guilds and retain old control (Disclosed by AlatarTheWhite)
- 805e9f0 Issue Resolution: Existing infusion retains stale owner after address reassignment (Disclosed by AlatarTheWhite)
- 9153491 Issue Resolution: Forced allocation closure skips checkpoint and strands accrued provider earnings (Disclosed by AlatarTheWhite)
- 2b4fb32 Issue Resolution: Full redelegation leaves stake-backed power active at the source reactor (Disclosed by AlatarTheWhite)
- 76e7431 Issue Resolution: Guild approver can forcibly migrate a player without a pending request (Disclosed by AlatarTheWhite)
- 1eea317 Issue Resolution: Ignored capacity-decrease errors allow repeatable collateral extraction (Disclosed by AlatarTheWhite)
- f89799c Issue Resolution: Ineffective player lookup check permits nonexistent targets and persistent state corruption (Disclosed by AlatarTheWhite)
- 093d7ec Issue Resolution: Ineffective player lookup check permits nonexistent targets and persistent state corruption (Disclosed by AlatarTheWhite)
- 96958e5 Issue Resolution: Map-batched account creation assigns nondeterministic account numbers (Disclosed by AlatarTheWhite)
- 6ea9027 Issue Resolution: Open-market agreements bypass address-level spending authorization (Disclosed by AlatarTheWhite)
- dafde4a Issue Resolution: Out-of-range join-policy enum creates fail-open guild admission (Disclosed by AlatarTheWhite)
- d295f98 Issue Resolution: Premature decimal rounding permits over-redemption of collateral (Disclosed by AlatarTheWhite)
- 1e92f8b Issue Resolution: Raw delegation rekeying corrupts staking and distribution state (Disclosed by AlatarTheWhite)
- 630133b Issue Resolution: Recursive allocation teardown settles one agreement twice (Disclosed by AlatarTheWhite)
- 4cf3267 Issue Resolution: Replayable destruction plus unguarded reactivation leaves permanent phantom planetary defenses (Disclosed by AlatarTheWhite)
- 858cfec Issue Resolution: Toolchain-dependent Unicode validation can split consensus. Agreement expiry can permanently strand all collateral (Disclosed by AlatarTheWhite)
- 722d5d6 Issue Resolution: Unauthorized transactions can reserve victim throttle keys before failing (Disclosed by AlatarTheWhite)
- 4cacae8 Issue Resolution: Underflowable availability check permits arbitrary overload (Disclosed by AlatarTheWhite)
- 0986f99 Issue Resolution: Unrestricted confiscation target permits burning IBC escrow backing (Disclosed by AlatarTheWhite)
- 4f9cf1b Issue Resolution: Unrestricted confiscation target permits burning IBC escrow backing (Disclosed by AlatarTheWhite)
- d942c41 Release review and resolution
- b97264a Release review and resolution
- 92cc129 Removing the ability for players to refine and mine while planets are under raid. This pauses the hashing until the raid is over where difficulty continues to drop as normal.
- bd89f51 Shared player cache lets limited keys borrow another address's permissions (Disclosed by AlatarTheWhite)
- 39c10fc Updating some documentation