Skip to content
This repository has been archived by the owner on May 26, 2021. It is now read-only.

Releases: tellor-io/TellorCore

Tellor v2.6

02 Feb 19:44
4ab20bf
Compare
Choose a tag to compare

Tellor v2.6 was Tellor's second improvement proposal for a on-chain update.

Updates implemented:

  • Change the difficulty adjustment to be based on slots 1-4.
  • Exclude slot 5 from the difficulty retargeting algorithm.

Vote outcome:

  • The vote passed (the voting period ended on 1/19/2021)
  • 12 % of total TRB supply voted
  • The proposed Tellor contract was implemented on 1/20/2021

More information can be found under TIP 6

Tellor V2.5

28 Oct 18:16
b110fcb
Compare
Choose a tag to compare

Tellor V2.5 was Tellor's first improvement proposal for a on-chain update.

Updates implemented:

  • Staking reduced from 1000 TRB to 500 TRB
  • Current miner reward changed from 1 TRB + tips/2 to 1 TRB + tips/2 + timeSinceLastMineValue/5Min
    *tips/2 = half the total tips since half are burned

Vote outcome:

  • The vote passed (the voting period ended on 10/23/2020)
  • 18 % of total TRB supply voted
  • The proposed Tellor contract was implemented on 10/25/2020

More information can be found in this medium article: https://medium.com/tellor/tellor-v2-5-9a4d63cb0612

Tellor V2

28 Sep 15:46
1c0fb5a
Compare
Choose a tag to compare

Tellor V2 included a variety of updates to better serve our customers and future expected demand. Updates included in Tellor V2 10x output, further secure the system, and improve efficiency.

For more information on Tellor V2 release and update please go to https://medium.com/tellor/tellor-v2-is-live-5ae7dee1ad36

TLDR:
Scalability:
• Increase number of data points added per block to 5
• Increase speed 2x(Reduce the 10 min difficulty target to 5 min)
Security:
• Limiting Rewards per Miner (1 per 15 minutes)
• No Time Limit on Disputes
• Multiple Round Disputes
• Change to disputing cost calculation (official values are more costly to dispute)
• Allow Tips of Current ID Being Mined
• Others
General code improvements
• Automatic selection of next challenge
• Removal of Onchain Request Data
• Token Fee Burning

Secondary Dispute Update

13 Nov 20:41
1382040
Compare
Choose a tag to compare

One change was made to TellorDispute.sol:

One if/else statement was added to the function TellorDisputes.tallyVotes to return dispute fees to disputers where the disputed miner was found guilty on a previously disputed value and have already been slashed.

Old

            if (disp.tally > 0) {
                //Changing the currentStatus and startDate unstakes the reported miner and allows for the
                //transfer of the stakeAmount
                stakes.currentStatus = 0;
                stakes.startDate = now - (now % 86400);

                //Decreases the stakerCount since the miner's stake is being slashed
                self.uintVars[keccak256("stakerCount")]--;
                updateDisputeFee(self);

                //Transfers the StakeAmount from the reporded miner to the reporting party
                TellorTransfer.doTransfer(self, disp.reportedMiner, disp.reportingParty, self.uintVars[keccak256("stakeAmount")]);

                //Returns the dispute fee to the reportingParty
                TellorTransfer.doTransfer(self, address(this), disp.reportingParty, disp.disputeUintVars[keccak256("fee")]);

New

            if (disp.tally > 0) {
                //if reported miner stake has not been slashed yet, slash them and return the fee to reporting party
                if (stakes.currentStatus == 3) {
                    //Changing the currentStatus and startDate unstakes the reported miner and allows for the
                    //transfer of the stakeAmount
                    stakes.currentStatus = 0;
                    stakes.startDate = now - (now % 86400);

                    //Decreases the stakerCount since the miner's stake is being slashed
                    self.uintVars[keccak256("stakerCount")]--;
                    updateDisputeFee(self);

                    //Transfers the StakeAmount from the reporded miner to the reporting party
                    TellorTransfer.doTransfer(self, disp.reportedMiner, disp.reportingParty, self.uintVars[keccak256("stakeAmount")]);

                    //Returns the dispute fee to the reportingParty
                    TellorTransfer.doTransfer(self, address(this), disp.reportingParty, disp.disputeUintVars[keccak256("fee")]);

                //if reported miner stake was already slashed, return the fee to other reporting paties
                } else{
                    TellorTransfer.doTransfer(self, address(this), disp.reportingParty, disp.disputeUintVars[keccak256("fee")]);
                }

Mainnet Release Update-Difficulty, name, symbol and decimals fx's

27 Sep 14:43
75a1ee8
Compare
Choose a tag to compare

Two changes were made to help further stabilize the difficulty adjustment and three functions were added for users to be able to read the name, symbol and decimals.

Change 1: TellorLibrary line 151

New line 151:

_change = (int256(self.uintVars[keccak256("difficulty")]) * (int256(self.uintVars[keccak256("timeTarget")]) - _change)) / 4000;

Old line 151:

_change = (int256(self.uintVars[keccak256("difficulty")]) * (int256(self.uintVars[keccak256("timeTarget")]) - _change)) / 1000;

Change 2: Tellor.sol lines 176-195 were added to give users readability of the name, symbol and decimals.

/**
* @dev Allows users to access the token's name
*/
function name() external pure returns (string memory) {
    return "Tellor Tributes";
}

/**
* @dev Allows users to access the token's symbol
*/
function symbol() external pure returns (string memory) {
    return "TRB";
}

/**
* @dev Allows users to access the number of decimals
*/
function decimals() external pure returns (uint8) {
    return 18;
}

Mainnet Release Update-Difficulty stability

14 Sep 19:05
89d7dea
Compare
Choose a tag to compare

Three changes were made to improve difficulty stability, be compatible with decentralized exchanges, and accurrately reflect our intentions for the dispute timeperiod.

Change 1:
TellorLibrary.NewBlock function lines 121-131 were changed to improve difficulty stability.

New lines 121-138:

        int _change = int(SafeMath.min(1200,(now - self.uintVars[keccak256("timeOfLastNewValue")])));
        _change = int(self.uintVars[keccak256("difficulty")]) * (int(self.uintVars[keccak256("timeTarget")]) -_change)/1000;

        if (_change < 2 && _change > -2){
            if (_change >= 0){
                _change = 1;
            } 
            else {
                _change = -1;
            }
        }

        if( (int(self.uintVars[keccak256("difficulty")]) + _change) <= 0){
            self.uintVars[keccak256("difficulty")] = 1;
        }
        else{
            self.uintVars[keccak256("difficulty")] = uint(int(self.uintVars[keccak256("difficulty")]) + _change);
        }

Old lines 121-131:

        int _newDiff = int(self.uintVars[keccak256("difficulty")]) + int(self.uintVars[keccak256("difficulty")]) * (int(self.uintVars[keccak256("timeTarget")]) - int(now - self.uintVars[keccak256("timeOfLastNewValue")]))/100;
        if(_newDiff <= 0){
            self.uintVars[keccak256("difficulty")] = 1;
        }
        else{
            self.uintVars[keccak256("difficulty")] = uint(_newDiff);
        }
        
        //Sets time of value submission rounded to 1 minute
        uint _timeOfLastNewValue =  now - (now % 1 minutes);
        self.uintVars[keccak256("timeOfLastNewValue")] = _timeOfLastNewValue;

Change 2:
TellorTransfer.Approve function line 55 "require(allowedToTrade(self,msg.sender,_amount));" was removed to be compatible with decentralized exchanges.

Change 3:
TellorDispute.beginDispute function line 36 "require(now - _timestamp<= 1 days);" was changed from "require(block.number- _request.minedBlockNum[_timestamp]<= 144);" to accurrately reflect our intentions for the dispute timeperiod.

Initial Mainnet Release

14 Sep 18:42
c41b93c
Compare
Choose a tag to compare

Initial Mainnet Release audited by Certik