Skip to content

v0.3.5

Compare
Choose a tag to compare
@sea212 sea212 released this 22 Aug 13:40
· 241 commits to main since this release
0e27079

Release Notes

Upgrade Priority: Medium (timely upgrade recommended)

Highlights:

  • Unlock prediction market core functionality on mainnet
  • Improve code quality and usability
  • Separate mainnet runtime and apply prudent configuration

This release sets a major milestone for Zeitgeist, as it unlocks the prediction market core functionality on the mainnet. As a prerequisite for this, it was necessary to separate the Battery Station testnet and Zeitgeist mainnet runtimes, so as to apply a more balanced configuration in an economically reasonable environment, as well as allow fast-paced testing of new features on the testnet.

The code enjoyed some security improvements as part of the full launch preparations. These improvements include:

  • Exclusive use of safe integer arithmetic
  • Fix zero division error in on_resolution
  • The proper handling of fees in relation to consumed weight (prevention against DoS attacks)

Some of the key utility improvements to the code include:

  • A single member of the advisory committee can approve an advised market
  • Implement bounded swap fees
  • No trading in swap pools allowed before the associated market is opened

Besides all of those significant changes, the foundation for allowing other currencies as the base currency (instead of merely ZTG) in a market pool was laid by abstracting the base currency. Lastly, a new pallet called pallet-styx was implemented and added to the runtime; it allows users to burn ZTG in exchange for receiving their “Launch Campaign NFT Avatar”.

Battery Station Runtime

spec_version: 39
transaction_version: 16

🏋️ Runtime size:		0.992 MB (1,040,457 bytes)
🗜  Compressed:			Yes, 80.30%
✨ Reserved meta:		OK - [6D, 65, 74, 61]
🎁 Metadata version:		V14
🔥 Core version:		zeitgeist-39 (zeitgeist-1.tx16.au1)
🗳️ system.setCode hash:		0xbbf8d175958ecf28740c2d2274bcc3a62428d3f6234cf29228dc01932b3fa9ec
🗳️ authorizeUpgrade hash:	0x4f3463ece847bdf136e1249f8d7966c55eb1d2987cc1626cea325e2ea33e925d
#️⃣ Blake2-256 hash:		0x0f2218f46f868161fd51b5be913d86361f9a9e2a022a9ef525c76b10df0da33c
📦 IPFS:			https://www.ipfs.io/ipfs/QmYycRGQnicaYrTK2LWEeLKDPq246fsahFjzuHWrCSHg7X

Srtool output (based on srtool-cli): export SRTOOL_TAG="1.60.0" && srtool build -r ./runtime/battery-station -p battery-station-runtime --build-opts "\-\-features=parachain"

Srtool

✨ Your Substrate WASM Runtime is ready! ✨
Summary generated with srtool v0.9.20 using the docker image paritytech/srtool:1.60.0:
 Package     : battery-station-runtime v0.3.5
 GIT commit  : 0e27079cc62e281f742511527291f6c8e650ee1f
 GIT tag     : v0.3.5
 GIT branch  : HEAD
 Rustc       : rustc 1.60.0 (7737e0b5c 2022-04-04)
 Time        : 2022-08-15T09:54:43Z


== Compact Version : zeitgeist-39 (zeitgeist-1.tx16.au1) Metadata : V14 Size : 5.04 MB (5280326 bytes) Proposal : 0x4a754ca9b487a2234c3bb414b17ff1a1ad4e334f1905c7edee8f5daa2394972d IPFS : QmUMe6ZVhnJrpdCc15LSvGcZLHNrxXz6cPj7WLnaECxHsx BLAKE2_256 : 0x02e4521f397f872cd6333dc5e90401d71a796216c1a9bd744b8c64be2fccba74 Wasm : ./runtime/battery-station/target/srtool/release/wbuild/battery-station-runtime/battery_station_runtime.compact.wasm

== Compressed Version : zeitgeist-39 (zeitgeist-1.tx16.au1) Metadata : V14 Size : 1016.07 KB (1040457 bytes) Compression : 80.3% Proposal : 0xbbf8d175958ecf28740c2d2274bcc3a62428d3f6234cf29228dc01932b3fa9ec IPFS : QmYycRGQnicaYrTK2LWEeLKDPq246fsahFjzuHWrCSHg7X BLAKE2_256 : 0x0f2218f46f868161fd51b5be913d86361f9a9e2a022a9ef525c76b10df0da33c Wasm : ./runtime/battery-station/target/srtool/release/wbuild/battery-station-runtime/battery_station_runtime.compact.compressed.wasm

Zeitgeist Runtime

spec_version: 39
transaction_version: 16

🏋️ Runtime size:		0.995 MB (1,043,581 bytes)
🗜  Compressed:			Yes, 80.18%
✨ Reserved meta:		OK - [6D, 65, 74, 61]
🎁 Metadata version:		V14
🔥 Core version:		zeitgeist-39 (zeitgeist-1.tx16.au1)
🗳️ system.setCode hash:		0x8b656257eb6a418312861e15f7e2c265f64322f6f5c4eda3859e1e235d0d3111
🗳️ authorizeUpgrade hash:	0xf50181d5d98d770cdae0fad14ba876e124344e84acbdba76aad89ae1a2788e93
#️⃣ Blake2-256 hash:		0x5fb68a64116fa836f6fd558781db6fa0547878d6b2adc7d81289f35d1fe16447
📦 IPFS:			https://www.ipfs.io/ipfs/QmV12qn2ejumaHazPzaAE2sHycU8rYpKGESbvqJCw7fCp6

Srtool output (based on srtool-cli): export SRTOOL_TAG="1.60.0" && srtool build -r ./runtime/zeitgeist -p zeitgeist-runtime --build-opts "\-\-features=parachain"

Srtool

✨ Your Substrate WASM Runtime is ready! ✨
Summary generated with srtool v0.9.20 using the docker image paritytech/srtool:1.60.0:
 Package     : zeitgeist-runtime v0.3.5
 GIT commit  : 0e27079cc62e281f742511527291f6c8e650ee1f
 GIT tag     : v0.3.5
 GIT branch  : HEAD
 Rustc       : rustc 1.60.0 (7737e0b5c 2022-04-04)
 Time        : 2022-08-15T10:19:56Z


== Compact Version : zeitgeist-39 (zeitgeist-1.tx16.au1) Metadata : V14 Size : 5.02 MB (5264685 bytes) Proposal : 0x2ca2fab87a7484c611121e72fc63eae79cbff0efd984e921f75aeba2b0456534 IPFS : QmQxppy3NnyQr44g3Z3H9dKvMANB8DHUuupzLcKw4bsJcw BLAKE2_256 : 0xb189a11c3d8532b5ec905c4db2d79b866987c99e6bc1485bdfe31dd02189caf9 Wasm : ./runtime/zeitgeist/target/srtool/release/wbuild/zeitgeist-runtime/zeitgeist_runtime.compact.wasm

== Compressed Version : zeitgeist-39 (zeitgeist-1.tx16.au1) Metadata : V14 Size : 1019.12 KB (1043581 bytes) Compression : 80.18% Proposal : 0x8b656257eb6a418312861e15f7e2c265f64322f6f5c4eda3859e1e235d0d3111 IPFS : QmV12qn2ejumaHazPzaAE2sHycU8rYpKGESbvqJCw7fCp6 BLAKE2_256 : 0x5fb68a64116fa836f6fd558781db6fa0547878d6b2adc7d81289f35d1fe16447 Wasm : ./runtime/zeitgeist/target/srtool/release/wbuild/zeitgeist-runtime/zeitgeist_runtime.compact.compressed.wasm

Changes

  • Update weights (#753)
  • Optimize default build by excluding fuzz tests (#750)
  • Apply updated configuration to Zeitgeist runtime (#749)
  • Bump versions to v0.3.5 (#748)
  • Allow market approval by single AdvisoryCommittee member (#744)
  • Fix rust toolchain install (#734)
  • Add minimum balance to CPMM logic (#733)
  • Cleanup MarketIdsPerReportBlock and MarketIdsPerDisputeBlock in resolution_manager() (#729)
  • pallet/zrml-styx - burn ztg for the ability to claim avatar (#725)
  • Add license headers (#724)
  • Make the project capable of handling multiple runtimes (#721)
  • Add info regarding updating RuntimeVersion (#720)
  • Remove unchecked integer arithmetic (#719)
  • Minor refactoring in process_subsidy_collecting_markets() (#713)
  • Let markets open their pools when they start (#711)
  • Use CountedStorageMap instead of StorageMap for Jurors in court pallet (#707)
  • Fix max_encoded_len() for MarketPeriod and MarketType. (#703)
  • Fix zero division error in on_resolution (#701)
  • Allow Closed pools to be opened (#695)
  • Implement swap fees (#676)
  • Abstraction of the base asset (#629)
  • Fix tokenomics, set initial liquidity mining to zero (#600)
  • Change clippy usage and make code cleaner (#593)
  • [Runtime] TransactionPayment: default MultiplierUpdate set fee weights to zero bugfix (#579)
  • Add license headers (#575)