You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently we only enforce timeout limits, which are however bypassed if all players made a move.
After analysing game theoretic risks in our paper, we need to add additional security constraint: ranking instance should have a time constant parameter added which sets minimal time that game must last in order to mint a competence token.
In order to achieve this we need to modify contract initialization parameters:
Add principalCost parameter which will be the baseline of what game must collect from participants
Add principalTimeConstant parameter which will be minimal time required to finalize tournament
Move joinGamePrice parameter to createGame function and store it within IRankifyInstanceCommons.RInstance
Move minPlayerSize parameter to createGame function
Move maxPlayerSize parameter to createGame function
Add minGameTime parameter to createGame function
Move RInstanceSettings.gamePrice to RInstance
Move RInstanceSettings.minPlayerSize to RInstance
Move RInstanceSettings.maxPlayerSize to RInstance
Add gamePrice parameter to RInstanceSettings
Add principalTimeConstant parameter to RInstanceSettings
Add minGameTime parameter to RInstance
Remove RankifyInstanceGameOwnersFacet facet from ArguableVotingDistribution.sol , delete facet file & related tests
Create game price for a creator is calculated as a difference between principal cost and what will minimal participants will pay: abs(minPlayerSize*joinGamePrice - gamePrice
Require that minGameTime is in range of [1/8th...x8] of principalTimeConstant to avoid boundary cases.
Require principalTimeConstant % minGameTime == 0 (or minGameTime % principalTimeConstant == 0 if minGameTime > principalTimeConstant) to avoid division errors.
record joinGamePrice to RInstance.joinGamePrice
record minGameTime to RInstance.minGameTime
When players joining the game
get joinGamePrice from RInstance for a specific gameId
get minPlayerSize from RInstance for a specific gameId
get maxPlayerSize from RInstance for a specific gameId
When game began:
Record game start timestamp
closeGame function reverts ifLibTBG.GameInstance.turnStartedAt + RInstance.minGameTime > block.timestamp
The text was updated successfully, but these errors were encountered:
peersky
changed the title
Games must have minimum time
ACID instances (rankify games) must have time constraint on ability to quickly mint reward tokens
Sep 11, 2024
peersky
changed the title
ACID instances (rankify games) must have time constraint on ability to quickly mint reward tokens
Rankify Instances should have principal game cost & time parameters
Sep 30, 2024
peersky
changed the title
Rankify Instances should have principal game cost & time parameters
principal game cost & time parameters
Sep 30, 2024
Currently we only enforce timeout limits, which are however bypassed if all players made a move.
After analysing game theoretic risks in our paper, we need to add additional security constraint: ranking instance should have a time constant parameter added which sets minimal time that game must last in order to mint a competence token.
In order to achieve this we need to modify contract initialization parameters:
principalCost
parameter which will be the baseline of what game must collect from participantsprincipalTimeConstant
parameter which will be minimal time required to finalize tournamentjoinGamePrice
parameter tocreateGame
function and store it withinIRankifyInstanceCommons.RInstance
minPlayerSize
parameter tocreateGame
functionmaxPlayerSize
parameter tocreateGame
functionminGameTime
parameter tocreateGame
functionRInstanceSettings.gamePrice
toRInstance
RInstanceSettings.minPlayerSize
toRInstance
RInstanceSettings.maxPlayerSize
toRInstance
gamePrice
parameter toRInstanceSettings
principalTimeConstant
parameter toRInstanceSettings
minGameTime
parameter toRInstance
RankifyInstanceGameOwnersFacet
facet fromArguableVotingDistribution.sol
, delete facet file & related testsWhen creating a game
gamePrice = principalCost * (principalTimeConstant / minGameTime)
.abs(minPlayerSize*joinGamePrice - gamePrice
minGameTime
is in range of [1/8th...x8] ofprincipalTimeConstant
to avoid boundary cases.principalTimeConstant % minGameTime == 0
(orminGameTime % principalTimeConstant == 0
ifminGameTime > principalTimeConstant
) to avoid division errors.joinGamePrice
toRInstance.joinGamePrice
minGameTime
toRInstance.minGameTime
When players joining the game
joinGamePrice
fromRInstance
for a specificgameId
minPlayerSize
fromRInstance
for a specificgameId
maxPlayerSize
fromRInstance
for a specificgameId
When game began:
closeGame
function reverts ifLibTBG.GameInstance.turnStartedAt + RInstance.minGameTime > block.timestamp
The text was updated successfully, but these errors were encountered: