Skip to content

Commit

Permalink
Bring README up to date (#1264)
Browse files Browse the repository at this point in the history
  • Loading branch information
maltekliemann authored Feb 26, 2024
1 parent 8bd8fa5 commit 5d88474
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 41 deletions.
Binary file removed GH-banner.jpg
Binary file not shown.
21 changes: 21 additions & 0 deletions GH-banner.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
75 changes: 34 additions & 41 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,20 @@
<a href="https://zeitgeist.pm">
<img src="./GH-banner.jpg">
<img src="./GH-banner.svg" width="800">
</a>

# Zeitgeist: An Evolving Blockchain for Prediction Markets and Futarchy

![Rust](https://github.com/zeitgeistpm/zeitgeist/actions/workflows/rust.yml/badge.svg)
[![Codecov](https://codecov.io/gh/zeitgeistpm/zeitgeist/branch/main/graph/badge.svg)](https://codecov.io/gh/zeitgeistpm/zeitgeist)
[![Discord](https://img.shields.io/badge/discord-https%3A%2F%2Fdiscord.gg%2FMD3TbH3ctv-purple)](https://discord.gg/XhAcFWYUej)
[![Telegram](https://img.shields.io/badge/telegram-https%3A%2F%2Ft.me%2Fzeitgeist__official-blue)](https://t.me/zeitgeist_official)
[![Discord](https://img.shields.io/badge/-Zeitgeist-blue?logo=discord&logoColor=ffffff&style=flat)](https://discord.gg/XhAcFWYUej)
[![Telegram](https://img.shields.io/badge/-zeitgeist_official-blue?logo=telegram&style=flat)](https://t.me/zeitgeist_official)
[![X](https://img.shields.io/badge/-zeitgeistpm-blue?logo=X&style=flat)](https://twitter.com/zeitgeistpm)

Zeitgeist is a decentralized network for creating, betting on, and resolving
prediction markets. The platform's native currency, the ZTG, is used to sway the
direction of the network, and as a means of last-call dispute resolution.
Additionally, Zeitgeist is a protocol for efficient trading of prediction market
shares and will one day become the backbone of the decentralized finance
ecosystem by allowing traders to create complex financial contracts on virtually
_anything_.
prediction markets, allowing traders to create complex financial contracts on
virtually _anything_. The platform's native currency ZTG is used to sway the
direction of the network, and as a means of last-call dispute resolution in the
decentralized court.

## Modules

Expand All @@ -25,67 +24,62 @@ _anything_.
- [global-disputes](./zrml-global-disputes) - Global disputes sets one out of
multiple outcomes with the most locked ZTG tokens as the canonical outcome.
This is the default process if a dispute mechanism fails to resolve.
- [liquidity-mining](./zrml/liquidity-mining) - This pallet implements the
time-based incentivization with Zeitgeist tokens for continuously providing
liquidity to swap pools.
- [macros](./macros) - Contains macros shared by the other modules.
- [market-commons](./zrml/market-commons) - Contains common operations on
markets that are used by multiple pallets.
- [neo-swaps](./zrml/neo-swaps) - An implementation of the Logarithmic Market
Scoring Rule as constant function market maker, tailor-made for decentralized
combinatorial markets and Futarchy.
combinatorial markets and futarchy.
- [orderbook](./zrml/orderbook) - An order book implementation.
- [parimutuel](./zrml/parimutuel) - A straightforward parimutuel market maker
for categorical markets.
- [prediction-markets](./zrml/prediction-markets) - The core implementation of
the prediction market logic for creating and resolving markets.
- [simple-disputes](./zrml-simple-disputes) - Simple disputes selects the last
dispute after a predetermined amount of disputes as the canonical outcome.
- [swaps](./zrml/swaps) - An implementation of liquidity pools that allows any
user to provide liquidity to the pool or swap assets in and out of the pool.
The market maker that is traded against is either a Constant Function Market
Maker (CFMM) or a Rikiddo Market Maker.
- [swaps](./zrml/swaps) - An implementation of the Balancer CFMM that allows any
user to create pools, provide liquidity or swap assets.
- [primitives](./zrml/primitives) - Contains custom and common types, traits and
constants.
- [rikiddo](./zrml/rikiddo) - The module contains a completely modular
implementation of our novel market scoring rule [Rikiddo][rikiddo]. It also
offers a pallet, that other pallets can use to utilize the Rikiddo market
scoring rule. Rikiddo can be used by the automated market maker to determine
swap prices.
implementation of our novel market maker [Rikiddo][rikiddo]. It also offers a
pallet that other pallets can use to utilize the Rikiddo market maker. Rikiddo
can be used by the automated market maker to determine swap prices.

## How to build and run a Zeitgeist node
## How to Build and Run a Zeitgeist Node

Zeitgeist node comes in two flavors, one for standalone self-contained execution
and another for Kusama/Polkadot parachain integration.

To build the standalone version, simply point to the top directory of this
project and type:
To build the standalone version for testing, simply point to the top directory
of this project and type:

```bash
cargo build --release
```

The standalone version uses the runtime defined for Zeitgeist's testnet _Battery
Station_ in [runtimes/battery-station](runtimes/battery-station) and is run in
`--dev` mode by default.

To build the parachain version, execute the following command:

```
cargo build --features parachain --release
```

Optimized binaries (`--release`) are usually used for production (faster and
smaller), but this behavior is optional and up to you.

Our current beta test network [Battery Station][zg-beta] runs as a parachain. To
connect your Zeitgeist parachain node, follow the tutorial at our [documentation
site][bs-docs].
By default, the parachain version will connect to the Zeitgeist main network,
which launched as a parachain of Kusama and has since been migrated to Polkadot.
The runtime of the main network is defined in
[runtimes/zeitgeist](runtimes/zeitgeist).

Alternatively you can run a non-parachain node, which is usually only necessary
for testing purposes, by executing the following command:
To connect to Zeitgeist's testnet Battery Station, which runs as a parachain of
Rococo, run:

```
cargo run --release --bin zeitgeist -- <node-options-and-flags>
cargo run --features parachain --release -- --chain=battery-station
```

A common value for `<node-options-and-flags>` is `--dev --tmp`, which runs a
local temporary development node.
Optimized binaries (`--release`) are usually used for production (faster and
smaller), but this behavior is optional and up to you.

### Using Docker

Expand All @@ -107,9 +101,8 @@ For standalone, non-parachain Zeitgeist node:
docker pull zeitgeistpm/zeitgeist-node
```

Our current beta test network [Battery Station][zg-beta] runs as a parachain. To
connect your Zeitgeist parachain node, follow the tutorial at our [documentation
site][bs-docs].
To connect your Zeitgeist parachain node using Docker, follow the tutorial at
our [documentation site][bs-docs].

Alternatively you can run a non-parachain node, which is usually only necessary
for testing purposes, by executing the following command:
Expand All @@ -122,5 +115,5 @@ docker run zeitgeistpm/zeitgeist-node -- <node-options-and-flags>
[ls-lmsr]: https://www.eecs.harvard.edu/cs286r/courses/fall12/papers/OPRS10.pdf
[rikiddo]:
https://blog.zeitgeist.pm/introducing-zeitgeists-rikiddo-scoring-rule/
[zg-beta]: https://blog.zeitgeist.pm/zeitgeist-beta/
[battery-station]: https://blog.zeitgeist.pm/zeitgeist-beta/
[zg-docker-hub]: https://hub.docker.com/r/zeitgeistpm/zeitgeist-node

0 comments on commit 5d88474

Please sign in to comment.