Lilybit_ Rewards have Landed!

Lilybit_ Rewards have Landed!

A detailed guide to the Lilybit_ Reward Calculations for Resource Providers

TLDR Overview:

  • GPUs contributing to the Lilypad Network can earn Lilybit_ credits daily

  • These credits will be redeemable for Lilypad (LP) Mainnet Tokens at TGE (expected in Q4, 2024)

  • Approximately 10% of mainnet LP tokens have been earmarked for the IncentiveNet program (with anywhere up to 15% being provided depending on demand)

  • 70% of Lilybit_ credits are earmarked to go to compute providers for their essential participation in the Lilypad compute network

  • The earlier a compute provider participates in the network, the more rewards are available to earn (the algorithm for rewards decreases in 2 weekly phases by 10% each time)

  • Nodes must be online for a minimum of 4 hours a day continuously (verified with POW efforts) to earn that day’s Lilybit_ rewards.

  • A 4x multiplier on this base daily rate is available for nodes that are online and taking jobs over the full day (This is calculated with 1.3195^(number of 4 hour windows GPU is online)). Put another way, this is an exponential curve multiplier, rather than a linear multiplier to determine

  • The power of the compute being contributed also provides a point multiplier, with the hashrate of a node (determined by the required POW algorithm) determining the multiplier given to a node’s power. 10 points are rewarded for every MHash/sec provided to the network.

  • In order to incentivise long term participation in the network, a node will be slashed 10% of their total number of points (earned by providing compute power) each day that node isn’t online for at least 4 hours continuously.

Lilypad Network Overview

At its base layer, Lilypad offers a coordination platform for compute, bringing together the exponentially rising user demand for compute services & hardware with compute providers who can add new revenue streams and optimized efficiency to their hardware business.

A key differentiator and advantage for the Lilypad Network is that unlike other compute marketplaces, which offer hardware in time-based increments requiring users to configure and set them up for the purpose and which generally rely only on a loose reputation system to ensure trust, Lilypad uses a job-based system with verification built into the protocol. (note) This unique mix of on-chain and off-chain features ensures that the compute network is efficient & performant while being verifiably trusted.

Jobs on the Lilypad network are called modules. These modules are containerized scripts (docker images) or arbitrary WASM code with a Lilypad spec attached to them (located on Git Hub), which forms the basis of coordinating match-making between a job and a compute machine. (note) In time, this match-making algorithm will become increasingly sophisticated, with the potential for agents to do the deals for both the nodes and the users.

This module system turns Lilypad into a powerful, performant and competitively priced 3 sided marketplace. Developers have full flexibility over the type of compute they want to run - by creating their own unique modules. They can then hand off the job of computing to the Lilypad network and integrate the intuitive serverless, API-like DX into almost any work flow, and they are even able to attach a fee to the running of the module, bootstrapping a module marketplace system.

Its this module system that allows Lilypad to become a backend for compute, and for developers to be able to offload the need to host and run large modules to the Lilypad compute platform, as well as giving Lilypad the ability to integrate with a multitude of other agents, protocols and projects to provide an open infrastructure stack which can form the basis of a full-featured decentralised AI ecosystem.

IncentiveNet Overview

Lilypad is working at the cutting edge of what’s possible in research and technology. In order to ensure the Lilypad Network is market ready, performant & secure and to help bootstrap growth, Lilypad is launching the Lilypad Incentivised Testnet (or IncentiveNet)!

The IncentiveNet will run continuously from June 2024 through to the offical launch of Lilypad on mainnet - anticipated in Q4 2024, and will offer rewards to those participants providing services, utility and value to the Lilypad Network in the form of Lilybit_ credits.

These Lilybit_ reward points will be redeemable, for the Lilypad ERC20 Utility Token at Mainnet Launch. Approximately 10% of mainnet LP tokens have been earmarked for the IncentiveNet program (with anywhere up to 15% being provided depending on demand and tokenomics finalisation) being allocated to this phase of the Lilypad Network.

Earning Lilybit_ credits is directly relatable to useful work being performed on the network or on behalf of the project goals, with these goals also being holistic in nature to encompass the need for business validation and community education initiatives, and to build a general lifecycle loops for feedback and improvements in the network.

The goals for the Lilypad IncentiveNet Program fall into the following main categories:

  • Network Growth Goals (→ supply, jobs and ecosystem)

  • Network Security & Readiness Goals (Testing in Real-world conditions)

  • Community Building, Engagement and Education Goals

  • Market Readiness, Research, Product Testing & Business Validation Goals

The overall distribution of the Lilybit_ reward credits will be heavily skewed in favour of those providing essential services to the network growth - being the GPU compute providers, with a rough heuristic of 70% of rewards being directed towards network growth goals and 30% towards all other activities. Lilypad aims to recognise the contribution of all types of community members, including non-technical participants who will also be able to earn rewards for their value add activities in the Lilypad Network - some of these participatory points will be calculated & applied retroactively & will not be known in advance to the community.

IncentiveNet Timeline

The Lilypad Incentivised Testnet will focus on specific areas of network growth in stages of reward activities leading up to mainnet release, and will run parallel reward tracks alongside the main phase network growth goal.

The full details for the main focus of each stage of the IncentiveNet goals will be released before launch.

The table below helps to simplify the release phases and provide some potential community participation items:

StageMain Incentive FocusDates (maybe use weeks?)RequirementsParallel Effort 1Parallel Effort 2Parallel Effort 4Community
1GPU OnboardingJune, July (ongoing to mainnet)Installation ReliabilityMetrics DashboardCosting & network & infra reliabilityETHCC Use CasesOSS docs contributions, DX contributions, community growth (ongoing)
2Module OnboardingAugustModule MarketplaceReputation system & market matchingNon-determinism with LilypadTokenomicsTutorials & educational threads in mutliple languages
3Plugins & IntegrationsSeptemberMulti-chain deploymentSmart Contract AuditingPartnerships & Use CasesAuditing & Game Theory Testing
4APIs & SDKsOctober, NovemberLilySaaS launchMarketing campaignGame Theory testingHacktoberfest
5Downstream Apps & DAppsOct, NovemberMainnet launch (Q4 2024)

We're Live & Onboarding GPUs NOW!

Stage 1 Overview

The focus of Stage 1 of the Lilypad Incentivised Testnet is onboarding compute supply - GPU’s - to the network. The incentives for Resource Providers (RPs) will be available to earn throughout the entirety of the IncentiveNet program.

Aims of Stage

Main Aims

  • Onboard long-term Compute Providers (GPUs) to the network

  • Encourage feedback on tooling, logging, metrics & other network requirements

  • Build relationships with compute providers and the community

Other Aims

  • Build, develop & test network reliability, market matching, costing mechanisms, verification & performance

  • Encourage Opensource & documentation contributions

  • Encourage educational content creation

  • Grow & engage a supportive and knowledgeable community

Lilybit_ Reward Point Allocation - Compute Providers

Early Resource Providers (RPs) participating in the Lilypad IncentiveNet Program will receive Lilybit_ points for providing compute power to the network, which will be redeemable for Lilypad tokens in future.

The amount of rewards available to Resource Providers is based on

  • Power of compute supplied (based on hashrate and POW algorithm - NB: only NVIDIA GPUs are initially eligible)

  • Time online & accepting jobs on the network daily

  • How early a node joins IncentiveNet to provide compute

  • Continuity of time on the network throughout the IncentiveNet rewards period leading up to mainnet and the Lilypad Token Generation Event (TGE).

💡 *Note: Lilypad reserves the right to allocate bonus points - for highly participatory parties, or to deduct points from actors found to be cheating the overall program spirit or operating in a way that is not constructive to the growth of the Lilypad Network and it’s overall goals.

Lilybit_ Reward Allocation Mechanism’s

Base Rewards

Resource Providers contributing (Nvidia) GPU power to the Lilypad Network can earn a base number of daily Lilybit_ credits when they are online and accepting jobs for a minimum of 4 continuous hours in any one day.

The Base Rewards available to a node (or RP) will be determined by

  • The Time a node is online each day (in continuous 4 hour segments)

  • The Phase of the IncentiveNet Program (where a phase is a 2 weekly time period)

  • The Compute Power a node provides to the network (measured in MHash/seconds)

  • The Continuity of Participation a node has in the network over time

Fortnightly Reward Phases: Phase Function 𝛽=0.9

The base number of rewards available each day will depend on the phase that the IncentiveNet is at, with a phase being equal to a time period of 2 weeks.

In order to provide an incentive for early adopters (the early frog gets the best flies!), the earlier the phase, the more rewards will be available, with a step down method used to reduce the number of rewards available each phase (every 2 weeks).

Each phase the number of Lilybit_ rewards able to be earned for the same compute task will be reduced by 10%.

This means that the earlier a RP joins, the more points are available to be earned, with the step down delta being equal to 0.9, meaning the number of points for a given action in each phase is only worth 90% that of the phase before it.

This function is shown in Figure 1 and can be described by the mathematical equation below:

📐
Pph[i+1] = 𝛽 Pph[i]​

where

  • P = Lilybit_ reward points,

  • ph = phase,

  • 𝛽 = 0.9,

  • i = phase number

Points Multiplier per Phase Graph

Figure 1: Points Multiplier per phase

Points Multiplier per Phase Table

Below are the first 5 phases alongside their corresponding dates & the multiplier for it

Phase NumberPhase multiplier (= 0.9^phase number)Dates
00.9^0 = 124/6 - 14/7 **
10.9^1 = 0.915/7 - 28/7
20.9^2 = 0.8129/7 - 11/8
30.9^3 = 0.72912/8 - 26/8
40.9^4 = 0.656126/8 - 8/9
50.9^5 = 0.5960499/9 - 15/9
… to mainnetQ4 2024
💡
**special 3 week calibration & release phase → all other phases are 2 week periods

Compute Power Multiplier

In order to measure compute power in the network, Lilypad will require a GPU Proof of Work algorithm to be submitted by nodes on the network.

This POW will run each hour on the hour and once randomly during each hour to ensure nodes are participating in good faith. This POW submission will provide a hash rate for each node - a measure of the computational power (in hash/s) of a Resource Provider.

The proof of work mechanism is shipped with the Lilypad Node installation, and nodes - identified by their unique wallet address, will listen for the POW smart contract event to be triggered. Once the event is broadcast, a node has one minute to calculate and submit their GPU POW.

Each MHash/second contributed by a resource provider earns 10 Lilybit_ reward points - provided they meet the baseline criteria of being online and accepting jobs for 4 hours continuously during any daily period.

This equation is given by the following:

🧮
Rpow[k] = Pph[i]PcomH[k]​

where

  • Pcom = 10 Lilybit_ points

  • H is the hashrate in Mh/s (Mega-hashes per second)

  • k is the POW instance

  • H[k] is the hashrate in Mh/s (Mega-hashes per second) provided from POW instance k

Compute Multiplier Table

Example Table for a Resource Provider contributing 1000MHash/second to the network.

NB: 1000MHash/second would be the sum of all POW hash numbers for one 4 hour time period)

Phase NumberPhase Multiplier (= 0.9^phase number)DatesLilybit Points for a Node Contributing 1000 MHash/s in One 4 Hour Time Period (= 1000 x 10 x Phase Multiplier)
00.9^0 = 124/6 - 14/7 **1000 x 10 x 1 = 10000
10.9^1 = 0.915/7 - 28/71000 x 10 x 0.9 = 9000
20.9^2 = 0.8129/7 - 11/81000 x 10 x 0.81 = 8100
30.9^3 = 0.72912/8 - 26/81000 x 10 x 0.729 = 7290
40.9^4 = 0.656126/8 - 8/91000 x 10 x 0.6561 = 6561
50.9^5 = 0.5960499/9 - 15/91000 x 10 x 0.596049 = 5960.49
… to mainnetQ4 2024

Time Online Multiplier

Nodes can earn more rewards for being online more!

The baseline requirement for a node to earn Lilybit_ rewards in any one day is to be online and accepting jobs for a 4 hour continuous period.

In order to incentivise people to onboard compute and keep that compute active, Nodes can earn up to 4 x this baseline reward by being online and accepting jobs for the full 24 hours in a day.

The time multiplier calculation is based on an exponential curve rate of the number of 4 hour continuous time windows a node provides resources

The equation for this is given by:

$$R_{day}[j]=1.3195^{(Npow-1)} \Sigma_{k=1}^{K}(R_{PWO}[k])$$

where

  • K is the number of POWs in a day

  • Npow is any block of 4 consecutive POWs passed.

  • 1.3195(Npow-1) is the daily time multiplier that makes it such that any RP who stays online all day and passes all POW tests will receive a 4X multiplier to their daily points -> since 1.3195(Npow-1) = 1.3195(6-1) = 4.

Note that any amount beyond Npow= 1, will earn some multiplier on an exponential slope.

For example, a node contributor returns the following POW Hashrates in a 4 hour period: NB: The 9th POW in a 4 hour window is checked also with the hashrate needing to be at least 3/4 of the average of the 8 previously provided to ensure that a node doesn’t simply disconnect GPUs.

HourPOW time UTCHashrate (MHash/s)Cumulative Hashrate (MHash/s)
100:00:00100100
100:05:35200300
201:00:0050350
201:44:01200550
302:00:00100650
302:51:11200850
403:00:0050900
403:23:771001000
RESET
5 ←checked!04:00:00200 (ok! greater than 1000/8 !)200 (start of new 4 hour window)
504:01:10150350

Time Multiplier Table

Example Table for a Resource Provider contributing a total of 1000MHash/second to the network in each 4 hour period of time.

NB: In this table the equation has been slightly simplified as the sum of the hashrate in every 4 hour period is held constant.

Number of 4 Hour Continuous Periods Node Contributes 1000 MHash/sec of Compute Resources to the Network (Npow)Lilybit Points for a Node Contributing 1000 MHash/s for Given No. of 4hr Windows (Npow) = 1000 x Npow x 10 x 1.3195^(Npow - 1)
11000 x 1 x 10 x 1.3195^(1-1) = 10000 x 1.3195^0 = 10000 Lilybit points
21000 x 2 x 10 x 1.3195^(2-1) = 20000 x 1.3195^1 = 26390 Lilybit points
31000 x 3 x 10 x 1.3195^(3-1) = 30000 x 1.3195^2 = 52232.4075 Lilybit points
41000 x 4 x 10 x 1.3195^(4-1) = 40000 x 1.3195^3 = 91894.215595 Lilybit points
51000 x 5 x 10 x 1.3195^(5-1) = 50000 x 1.3195^4 = 151568.021947 Lilybit points
6 (Max in a day → 6 x 4 = 24 hours)1000 x 6 x 10 x 1.3195^(6-1) = 60000 x 1.3195^5 = 239992.805793 Lilybit points

As we can see, the rewards multiplier can have a significant impact on rewards earned in a day.

Complete Calculation

Complete Calculation Example Table NB: To simplify things, 1000MHash/second is assumed to be the cumulative sum of all POW hashrates returned in a 4 hour window (with none missed) as shown in the Time Multiplier section.

Phase + multiplier (= 0.9^phase number)Base points available for a 1000MHash/sec node online for 4 hours a day (Npow = 1)Base points available for a 1000MHash/sec node online for 8 hours a day (Npow = 2)Base points available for a 1000MHash/sec node online for 24 hours a day (Npow = 6)
1000MHash/sec Npow 10 (Lilybit_’s) phase multiplier (0.9^phase number)1.3195 ^ (1 4hr_Windows-1)1000MHash/sec Npow 10 (Lilybit_’s) phase multiplier (0.9^phase number) 1.3195 ^ (2 4hr_Windows-1)1000MHash/sec Npow 10 (Lilybit_’s) phase multiplier (0.9^phase number) 1.3195 ^ (6 4hr_Windows-1)
0
[0.9^0 = 1]1000 x 10 x 1
\=
10000 Lilybit_’s10000 x 2 x 1.3195^1
\=
26390 Lilybit_’s10000 x 6 x 1.3195^5
\=
239992.8 Lilybit_’s
1
[0.9^1 = 1]1000 x 10 x 0.9
\=
9000 Lilybit_’s9000 x 2 x 1.3195^1
\=
23751 Lilybit_’s9000 x 6 x 1.3195^5
\=
215993.53Lilybit_’s
2
[0.9^2 = 0.81]1000 x 10 x 0.81
\=
8100 Lilybit_’s8100 x 2 x 1.3195^1
\=
21375.9 Lilybit_’s8100 x 6 x 1.3195^5
\=
194394.17 Lilybit_’s
3
[0.9^3 = 0.729]1000 x 10 x 0.729
\=
7290 Lilybit_’s7290 x 2 x 1.3195^1
\=
19238.31 Lilybit_’s7290 x 6 x 1.3195^5
\=
174954.76 Lilybit_’s
4
[0.9^4 = 0.6561]1000 x 10 x 0.6561
\=
6561 Lilybit_’s6561 x 2 x 1.3195^1
\=
17314.48 Lilybit_’s6561 x 6 x 1.3195^5
\=
157459.28 Lilybit_’s
5
[0.9^5 = 0.596049]1000 x 10 x 0.596049
\=
5960.49 Lilybit_’s5960.49 x 2 x 1.3195^1
\=
15729.73 Lilybit_’s5960.49 x 6 x 1.3195^5
\=
143047.47 Lilybit_’s
etc… (to mainnet Q4)

**special 3 week calibration & release phase → all other phases are 2 week periods

Continuous Node Service & Point Slashing

Lilypad is seeking to reward node providers who see Lilypad as a long term project with serious potential to disrupt, innovate and grow.

To achieve the goal of incentivising real resource providers to the Lilypad Network, a slashing mechanism has been implemented which will deduct points from nodes that become unresponsive or stop providing resources to the Lilypad Network.

This mechanism disincentives both those actors seeking to farm points on multiple wallets and those actors seeking only to earn valuable early points without making a long term commitment to provide compute power and help build out the Lilypad decentralised compute network.

If a node stops providing compute for the minimum 4 hour window on any one day, their total points accumulated in earlier deployments will be slashed by a factor of 10%. While this number sounds like a lot, if an RP were to come online at the beginning of day 1 of a particular phase, and then remain offline for the remainder of the phase (13 days), they would still have 0.913 = 25% of their earned Lilybit_ points remaining.

For a user offline for a consecutive 24 hours, the slashing calculation is given by

🧮
Rday[j] = (1-S)Rday[j-1]

where

  • S is the percent of points slashed

If you are offline for 24 hours, your points will drop to (1-S) of what they were on the day before, and each consecutive 24 hour period offline results in another S slashing.

NB: This slashing calculation only applies to rewards earned for providing compute to the network and not other participation tasks in the network that are subject to their own mechanisms. So for example if you earned 10000 rewards for contributing compute and 100 for an OSS contribution (for example), only the 10000 Lilybit_’s would be subject to the slashing.

Points Calculation Code

Here’s a simplified pseudo-code example which defines the implementation of the rewards algorithm. The full calculation script will be available in the Lilypad Github Repo shortly (psst - why not star us while you’re there… you never know what rewards may be applied for activity on the Lilypad Network!)

const firstPhase = 0

var currentPhase = detectCurrentPhase()
const phaseMultiplier = 0.9
const pointsPerMegaHashesPerSecond = 10
var basePointsAvailableThisPhase = pointsPerMegaHashesPerSecond * phaseMultiplier

//it's the 4x multiplier for dailyrewards
const clintsConstant = 1.3195

//wallet address is being used as the node id
//BUT, there can be many bacalhau node id's to one wallet address
var walletAddress

const slashPcntPerDay = 10%

func sumOfWalletAddressHashRatesForDay(walletAddress) {
    //sum all hashrates for this walletAddress    

    //only include in the sum of it was part of a contiguous 4 hour sequence of valid PoW submissions

    //hasrate rates not part of a continuous 4 hour sequence don't get counted
}

func getAllPoWSubmissionsForDay(walletAddress) {
    //returns array of ValidPoWSubmissions
    //probably from postgres 
}

//no slashing here yet
func calculateRewardsForDay(walletAddress) {
    4hourWindowCount = countOf4HourWindows(walletAddress)

    if (4hourWindowCount < 1) {

        slashRewards(walletAddress)

    } else {

        rewards = clintsConstant^(4hourWindowCount -1) *
            sumOfWalletAddressHashRate(walletAddress)
    }

}

//no slashing here yet
func saveRewardsToDatabase(walletAddress, rewards) }

/*
 TABLE: rewards_history_per_wallet
 walletAddress | rewards | date | reward_type

 TABLE: total_reward_for_wallet
 walletAddress | total_reward

*/

}

func getSumOfRewardsForWalletAddressSoFar(walletAddress) {
    //get from db
}

func slashRewards(walletAddress) {

    rewards = getSumOfRewardsForWalletAddressSoFar(walletAddress)

    return (1 - slashRatePctPerDay)*rewards 
}

Calculation Model

You can model this calculation yourself using the mathematical model in the Lilypad Github repo here: https://github.com/Lilypad-Tech/tokenomics_modeling

Don’t forget to star us while you’re there - you never know what rewards may be applied for activity on the Lilypad Network!

Get the Pdf here

Caveats

This is the first implementation of the rewards mechanism for the IncentiveNet. Some of the mechanisms that allocate rewards to resource providers may change in future iterations. As much as is possible, these changes will be designed to NOT impact a node in a negative way, however there may be some instances, especially considering that IncentiveNet is validating Lilypad’s underlying protocol logic and code, where this is not the case. Lilypad will do it’s best to ensure that all voices are heard however and strive to keep the allocation of rewards fair.

Lilypad also reserves the right to alter points allocations based on activity suspected of breaking the spirit of the IncentiveNet Program, not operating in good faith or being deliberately malicious

💡
NB: There will also be incentives for cheating the game theory later in incentiveNet- so report the logic bug and Lilypad will be more than happy to apply retroactive points for this service once the game theory testing mechanism is live (we’ll also do our best to mathematically model the impact of not seeing this bug and reward to this effect)!

Did you find this article valuable?

Support Lilypad Network by becoming a sponsor. Any amount is appreciated!