over budget

StakeSync - DB Sync & Smash Add-on

$9,000.00 Requested
Solution

StakeSync gathers & computes various live data (e.g. balances, delegations, pool metadata) from DB Sync and Smash into an extra database.

Problem:

Developers & Stake pool operators need specific blockchain data often unavailable in existing tools or too intensive to compute on demand.

Yes Votes:
₳ 60,984,518
No Votes:
₳ 22,281,899

Team

During the past months I have set up several stake pools for clients and implemented customized solutions to process and evaluate all kinds of blockchain data. To gather the relevant information, I mostly work with DB Sync and Smash (IOHK tools copying node data into SQL databases), which are a great foundation to build applications on top. As these databases need to be as lightweight and abstract as possible, it is often required to write rather complex queries to obtain the specific data you need. Besides being time-consuming, they quickly get resource-heavy when running over and over or served on demand in client-facing applications. Requirements of developers and stake pool operators usually revolve around similar data points such as balance-, stake-, delegation- and pool-data, so I have built a dedicated application called StakeSync to gather and compute the most commonly needed live-data into an extra database. From here it can be easily processed for internal purposes or accessed by any other application or website.

 

StakeSync 1.0 has been released last month ( https://forum.cardano.org/t/cardano-stakesync-add-on-for-db-sync-and-smash ) and is already being used by some developers and SPOs. Check out the website https://stakesync.io and find a live view of the current StakeSync database at https://stakesync.io/db (along with the DB Sync and Smash db).

 

The current feature set maintains live:

 

Address Data

The 'address' table contains all active addresses with their current balance. Shelley addresses (addr1q..) have a reference to their stake key.

 

Stake Data

The 'stake' table contains the stake key in both hex and bech32 format, total balance of all associated addresses (live stake), stake (de-)registration transaction id, pool id, pool join date (date of delegation) and whether it's the pool operator.

 

Snapshot (optional)

A block number can be set on initial sync, adding a field 'balance0' to the address and stake table with the balances at the defined block height.

 

Pool Data

The 'pool' table contains pool id, margin, pledge, cost and retiring epoch if applicable. If you are running a Smash server, it also syncs name, ticker, description, website and the url of the extended pool metadata file.

 

Upcoming features:

 

Extended Pool Data

Smash-like retrieval of the extended pool metadata. The additional fields are already added but do not populate yet (the off-chain data you see on adapools.org, e.g. logo, personal text, rss feed, social media links).

 

REST Api

An Api to access all StakeSync data for remote servers and light clients. The Api will be both part of StakeSync to run your own instance, as well as served permissionlessly on api.stakesync.io.

 

 

StakeSync is written in PHP and can easily be customized. The initial sync process takes about 12-24 hours, but once up to date it is very resource-friendly. No installation or required dependencies and no interference with your current server setup, data retrieval is standalone and read-only from the DB Sync and (optionally) Smash database. StakeSync works with the latest DB Sync 7.1 and Smash 1.3 releases, although the current feature set is also compatible with older versions.

 

My plan for StakeSync is to become more than just a side-project, so I'm still experimenting with possible funding models. Currently a StakeSync licence is sold for 200 ADA, but I'd prefer to make it available for free and receive funding from the protocol instead. Hence the deliverable of this proposal is to turn StakeSync into GPL-licenced freeware and implement the upcoming features mentioned above within 2 months. Delivery is a given, as the software is already developed and could be published on the StakeSync Github ( https://github.com/stakesync ) as soon as the voting phase ends. The funding would also enable myself to dedicate more time towards future development and the integration of some of the new features being deployed on Cardano: Transaction metadata, native assets, smart contract data, delegation portfolios.. and that's just Goguen. Lots of stake to sync :)

Comments

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    d. 3 se. 24
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    d. 4 se. 3
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    d. 3 se. 48
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    d. 2 se. 16
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    d. 3 se. 14
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    d. 3 se. 19
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    d. 4 se. 59
    Darlington Kofa
0:00
/
~0:00