Tellor Developer Call May 9th 2022 

Tellor Developer Call May 9th 2022 

By Tamsay | Tellor | 24 May 2022


Links 

Youtube link: https://www.youtube.com/watch?v=SWhyw5xtaAc 

Official links: https://linktr.ee/ 

 

Summary 

Team status. Tally went over the Tellor oracle implementation on the Algorand blockchain. 

 

Whole call  

Nick: All right, short weekend but the hackathon kicked off big one hack money has officially started we're sponsoring it you guys can go start building the project I'm building a cool one Tally was telling me he's building a cool one you know Tim's building a cool one so yeah, a lot lots of us are building so it's some steep competition for that prize, so anyway go build should be fun other things posting a video today I did the global divide talk why oracles will be bigger than your L1 should be should be a fun talk up on YouTube other things we're working on this week the big news today we're closing the vote on the treasury what time did we kick that off Brenda I think it was two okay so we'll close that today at two and then 24 hours after that we'll mint the new treasury so it should look good yeah so that's what we'll do this afternoon other than that I have to I have to fix the data feed that went down so we'll see if I have to ping Josh some something's happening weird there and then I'm going to be working on some 360 stuff so we'll be okay I kind of have like the initial structure and everything set up so just put in some logic. I'm doing the part where I just remove code and then I'm going to make sure it doesn't break so yeah and then I'm reaching out to I reach out to some auditors going to get some quotes find an audit for it should be good all right so. Tally besides the presentation what you're doing? 

Tally: I know this weekend I well so last week we were troubleshooting Algorand deployment to main net make that less the contracts more the scripts and we patched we actually did we made a small patch of the contract so that the scripts are smoother and I think should we do it today, Brenda. 

Brenda: Yeah, let's get it just trying. 

Tally: Two o'clock? 

Brenda: Well at two we're doing maybe 230? 

Tally: Very nice okay the gas price oracle is on I guess I mentioned that last time but it's summary could be I think that's it yeah. 

Nick: Okay cool all right, Akrem? 

Akrem: Made some changes to the tip listener after own suggestions switched some of the old tests to use ethe brownie I'm going to I guess do some more tests to switch them over to eve brownie tests and work on the Tellor360for the autopay changes. 

Nick: Cool yeah so what when do you guys think the tip listener is going to be merged probably this week right? 

Akrem: Today i think today okay yeah. 

Nick: I want to look at it just to make sure then yeah cause once you guys get it up and running, we'll have Spuddy we'll do a release have sweaty pull the newest version and then we'll probably break it you'll have some more so just be ready for that sure we'll find something but all part of the process so and then what happened with like Ampl this weekend everything seems to be good now right. 

Akrem: Yeah, someone submitted a price the same exact time so kind of like the both the airflow and the person that submitted use the same nuns so i guess they reached they were able to submit right before us and our transaction failed because the nuns was the same but instead of submitting we just pushed whatever price they had submitted okay so yeah that works is that automated did you just manually do it now push the way you have a setup is that if we submit the submit trigger our submit success triggers the push so since the submit failed I had to trigger it manually okay yeah. 

Nick: So, maybe add like an if statement in there. 

Akrem: I think you wanted to see if the range that was submitted was yeah it was a little bit more than an if statement because you have to. 

Nick: Yeah no I'm just wondering like because I don't I know this time we got lucky because you like could be at your computer actually from the phone okay yeah but you know you could do it but like ideally like we don't rely on like manual right yeah. 

Akrem: I will definitely try to add some logic to check after a failure that you know I guess check the price that was submitted and see if it's within range of what the apis are wanting to submit and then we'll see from there yeah that's like it's still. 

Brenda: On the timestamp.  

Nick: That's that sorry to make sure the timestamp is within range too yeah okay cool, Tim? 

Tim: Yeah, so right now I'm working on fixing a bug in the playground looks like Diva found I guess an edge case when they were testing, I think it has to do with we're simulating giving people time-based rewards and tips in the submit value function and it looks like that's where it's tripping up so I'm getting rid of that. 

Nick: Yeah, just get rid of that completely yeah. 

Tim: Yeah so, I'm fixing that and then moving on to adding the cli part of the rng so someone can actually put in a command to submit a random number and yeah that's those are my main things today cool. 

Nick: Yeah, I was in an internet battle on reddit with somebody who was shilling API3s rng, that's the dumbest thing ever. It's like they use is that the the newish one quantum computing rng yeah, it's like it's super cool and super random except you have to rely on api3 to push it on chain. 

Tim: Yeah you have to trust some off-chain yeah nobody could nobody can ever corrupt this unless of course the one company in derivative pushing this goes down yeah it's like you can't verify it yeah like I don't get that but i did do more of a deep dive into ChainLinks rng and I mean besides the whole s center censorship issues their biggest things is so like it's based on the one whoever reports it the private key of the node so like any node can give you a random number but since there's no slashing or no liveness guarantee of it the rng is actually based on their private key so they can see the random number before they put it in you can prove that it's random based on their private key but there's nothing that says they have to submit it so like there's sort of like a selection bias problem there. Because like yeah they could draw the random number and they can't change it but they can just not submit it if they don't like it, and then hope somebody else submits a different one so like you kind of have an issue there especially since there's only a limited number of them if there's any sort of collusion they like just don't have to push one for you. 

Spuddy: But you can trust their nodes. 

Nick: Yeah, exactly so like it's yeah it's one of those things where like you know if you can roll the dice and you need it under three you can't control what number shows up on the dice but you can tell throw away the dice yeah you can throw you can say like it looks like we're not playing anymore yeah so. 

Tim: It's like a reroll. 

Nick: Yeah, it's kind of not fair so like that there is some bias there where it's not quite perfectly random I guess you could say if the nodes have any sort of self-interest in where it's going so anyway so ours maps to one specific random number yeah like ours works like yeah the only the only reason ours would be bad would be like if you somehow if your contract was so valuable that it would make sense for somebody to mine both the bitcoin and the Ethereum block in the same hash and if they did that then you can break our rng but like we should since we're talking about this can you do like a background of how it works you just take the hash of the bitcoin block the bitcoin hash and the ether block hash at a given time stamp and then that's your random number so like the only way you control the block hash is if you mine the value and like so if you can submit both so if you at the exact same time if you're for a given time stamp you are the minor for bitcoin and the miner for Ethereum so the mining the mining pool that that wins the bitcoin block and the mining pool that wins the Ethereum block you have to collude they could collude well and then you could also just do it like if you wanted to increase the security of your app you could just take like two random numbers so you would take like the rng at this time so you could do like the bitcoin block stamp at this time and then you could do it five minutes later or 10 minutes later for a bitcoin so then you would assume that they would have to do it twice which is like. 

Spuddy: I mean it's really safe to assume that those two companies are not going to collude to break the Tellor random number. 

Nick: Right well and I mean if you do like if it gets to the point of you know like you're securing 10 billion dollars yeah sure you're going to have to come up with some new solution but like it's not going to don't worry about it. Yeah, different issues for sure like once you hit like that those billion-dollar marks of where it like makes sense to break the L1s it's like just yeah, the game theory and security gets really weird so anyway I like ours so all right, Lauren? 

Lauren: Hello I'm going to be testing out the disputable values monitor to see if I was able to fix the timeout error too because I was getting one slightly different to the ones buddy originally documented so there's some stuff I got to play around with on that and then I got to respond to Owen's feedback on the Telliot core api stuff and see if I can get the test to run on that now that I've made some changes and then start thinking about a hackathon project because I signed up for it. 

Nick: Cool I have ideas and ideas, Quentin? 

Quentin: Yeah I worked on the sample contract for the reporter I added some only owner checks and added some extra tests to it then I formatted the zodiac module made it all pretty and also updated to readme for it to use Tellor instead of the reality oracle yeah and lastly I adjusted the data specs for snapshot so it's now using a Boolean value instead of those arrays of numbers yeah cool and then you saw that if you can make changes you can make a pr for the front end right yeah but I have to wait on you know you were going to review it first so. 

Nick: You can like tee up the changes on the front end because I'm guessing that doesn't actually. 

Quentin: Yeah I already wrote sweet appeal for that but I haven't submitted it. 

Nick: Okay cool yeah so Brenda and I zodiac changes today for Quentin so all right no I'll push that through and is there a pr in the sample recorder fail yeah there is okay that's what I figured cool thank you all right are you looking for something to do then Quentin? 

Quentin: Yeah exactly. 

Nick: Do you know react? 

Quentin: No I know no I don't know react I know angular. 

Nick: All right so you're our third best reactor so no I was going to see if you wanted to fix the data feed but I guess not all right I'll send you something though here shortly but thank you and anybody else have anything Brenda all right. 

Tally: I forgot to mention I'd fix this buddy bug on Telliot it's a less crashing but yeah that's it there's more there's more okay I'll take a look. 

Nick: But he says there's more did he make him choose I think so he usually does so this week. 

Brenda: I'm actually going to be going through our documentation like I'm actually going to try and follow the steps for the monitors Telliot Algorand and using Tellor I'm guessing algorithm we should do today he should be done but expect some questions for me I mean unless the documentation is so great that I just and it'll be great. 

Nick: Yeah have you done a tele-feed example for snapchat Quentin yeah actually I was I wrote it but I'm having issues with running the tests okay yeah try and fix those and then did you update it you updated it to Boolean yeah I did okay cool all right have you added a new chain to Telliot it by the way a chain in what way like a new EVM chain really I don't think so we need somebody who has done that or if you want to give it a shot that's another thing so like right now and that's the only piece of our documentation that has a coming soon so we need to fix that so you can try adding like some test net or some random EVM chain okay let's check that out yeah and then we need documentation on that but that's in the documentation section so all right now without further ado why do you have anything I don't think so okay. 

Spuddy: I don't have any documentation for Brenda yet on my machines that runs the Telliot reporters so I should probably prioritize that is that something that you guys need. 

Nick: Documentation is always good yeah so all right so without further ado let me give you Tally can you enable screen sharing enabled okay. 

Tally: Browser here's my presentation on our re-implementation of a re-implementation of Tellor on Algorand so in other words it was sort of two-prong and this is the sort of recap of the second prong i guess for community members I'm going to go over like a recap on Algorand on a high level and then the design that we implemented for re-implementing Tellor on the AVM and then finally just some final thoughts me reflecting on the process al grand is alt L1 I only said all it's because Ethereum is very popular but it's like a fully functioning like very like self-sufficient like layer one blockchain they have a very unique and I'd say like among all to l1 like the most successful project that has a completely like unique and revolutionary consensus mechanisms so they use pure proof of stake which is different from when we think of proof of stake we think of what they call delegated proof of stake which is where either delegated or a staking or yeah delegated proof of stake which is where you have to like put your token somewhere else in order to like gain the right to do things like take part in consensus and vote on block selection and things like that but in Algorand actually just this year possession of so if you have a node and you have algo tokens you participate in block selection on a high-level which has a completely different set of implications for game theory and for decentralization especially and with that h on in terms of contracts so all grant is a blockchain but it is also a smart contract platform and they have a different virtual machine than we use on Ethereum and for people who are more non-technical the virtual machines are sort of like the base layer the base language that you can write smart contracts in and so they have a completely different paradigm for writing smart contracts given that they have a completely different paradigm for smart contracts there are some things that we kept and then some things that we i guess modulated just to adapt to the different system and so I think like the basics of Tellor we wanted to keep in mind so like the paradigm of the oracle that's like the marketplace for information where we sort of take a step back and just put the protocol out there we wanted to definitely keep the same so like tipping is maintained reporting and so staking and reporting as like a activity to put data on chain is still a mechanism apply in disputes as well all this token gated but using the algo token instead of TRB we updated a few really sort of smaller parts i think in some ways it was additive and somebody's attractive one thing we added was a mandatory medianizer just for the sake that given the given a sort of property of the AVM like there's this piece of the AVM that says well if we can increase speed and speed decentralization you know this sort of they sort of hacked the scalability trilemma but when we think about it more broadly one thing they had to sacrifice is store is storage and like the flexibility of their virtual machine system their smart contract system so in the in our deployment we were sort of like guided by the AVM to adopt a system where one contract would be one reporter you can even tell people i mean like what were the storage limitations like there's no mappings yeah no mappings no arrays right and like when you think about Tellor on solidity i mean Tellor on yeah solidity or EVM or any EVM chain between Ethereum and polygon and all of that which we essentially just copy paste to different chains broadly we and I think anything between Tellor a Uniswap or really any any smart contract that's trying to negotiate like is trying to do the same deal between different customers very like b2b is basically impossible on with without without mappings and without arrays right because like you take something like a token balance like you need to know you need to have an ability to say that for every address you can map that to their balance and something like that would be technically impossible on Algorand and yet we made it work so what we did to adapt around that was rather to this is why we factored in a medianizer so in the system we have five feeds given for something like BTC/USD a very common or ETH/USD or ALGO/USD very common price feeds we instantiate and deploy five feeds each with their own reporter and then they all connect to a medianizer in an effort to manage downtime or bad actors and with that we also implemented because it's not possible to manage the maintenance of multiple data feeds in one contract and one like literal algorithm contract in one feed contract we actually modulate and in other words isolate the different data feeds into different sort of like these six contract systems of five in one five feed contracts and one medianizer and with that like it led me to a lot of thoughts about sort of like these the bold experiment to like challenge the EVMand so first i think like on that note as i mentioned about the scalability trilemma between speed size and decentralization like algorithm actually manages to to ace that but i think like given that paradigm like there's actually a lot more that is that that can be compromised on and that can be missed especially as we move like i mean we're almost honestly years past like a bitcoin essential paradigm like like a paradigm of blockchains that's all about bitcoin so in this age of like smart contracts and especially in the world where like youth gasps ethnic gas prices are completely unaffordable for like new projects there's sort of like we we almost take for granted like the flexibility of the evm and like how much computation it can handle so i think like you take something like algorithm that really handles like the layer one essentials of this the the scalability trilemma for an l1 like remarkably well in a way that beats almost every other chain i can think of including eth mainnet and bitcoin we come to see that like for product development there are really some like other essential sacrifices that can get in the way especially like this network effect problem that like the developers in the space like know the evm so well to the point that like there's an ethereum stack exchange right like there's no algorithm stack exchange and for any other um for any other virtual machine that's challenging the EVMthere's no stack exchange you're you will most likely be going to the discord and talking to their dev relations um so with that being said and without being too critical I think I had a really good time taking on this task but um that's sort of the nutshell there is that development on these the I think like these other chains have like lots of uphill battles to do just like us and just like Ethereum and really every startup in the space and trade-offs I'll leave with that but yeah that's this is this is. 

Nick: Yeah so, I mean if I can like I think I know a little bit more than other people but to actually explain how Tellor works like correct me if I'm wrong because like I've only gone over it like briefly too like so you have you have a contract like an oracle so if i was going to be one of the oracles i would come i would deploy my own smart contract, I would stake you have sake ALGO token because there's no bridge to bridge TRB over yeah so you would you would have to stake I'll go token and then and then i can start reporting the data feed so i would start say recording i i would say put make this basically it would correspond to one query id right by the smart contract we've corresponded one query id and i would start recording it now it actually can't store historical values or how many historical values can you store in it? 

Tally: Short answer one. 

Nick: One yeah like because there's just no storage in it so like arrays so like on yeah on our Ethereum you can have an array of values but that's not possible here right so like every time if it's a bitcoin price every time you update it, you're basically just overwriting the previous one yeah and obviously like this is a bad oracle because you're reliant on one guy and how does that work? So, what you do is you have basically a bunch of people can create those and then you have a medianizer contract now in in my oracle contract anybody can dispute me so they can dispute me it pauses my contract and then it goes to a vote or to a governance contract as far as whether or not he lied and but the medianizer I guess the hard part about that is choosing which contracts I guess to include in your media and coming around there but so it is a little bit different of a paradigm than Tellor a main neck because it's sort of not quite as trustless just due to data storage so like ideally for each user what they would want to do is probably set up set up one of these medianizer contracts for their query id and then select people based upon who they think are going to stay up and running and obviously they can dispute them and they're sort of crypto economically you know it's not completely reputation based but then at the same time if you dispute everyone in your network or they were colluding you'll like have a pause and you'll have to replace them and you'll have to have some governance process for replacing those oracles in your medium correct okay i think that's so the big things that we're hoping I guess for the future would be what working on some governance structures for people over in Algorand I mean that's more on them like you know we don't we're not the pioneers of governance technology and then yeah ideally if there was some other way to store more data it would make it better because it's just really you know even like you can't store like if you if you wanted like multiple reporters in the contract like I think we hit that issue about you just can't actually store the data of multiple reporter addresses yeah so yeah it's super tricky and going over with Telliot and chromebook did a great job kind of working within these limitations to build the best we could over there so any other questions on it guys I've got a lot of dumb ones no please can you go for it. 

Spuddy: As a reporter I've got my reporter contract I got my oracle contract that I can report data to can I report BTC/USD and other values is just the one value you would have a different contract for different companies different contract for bitcoin okay so there's medianizer contract there would be a medianizer for each of those as well but there would be like a bitcoin medianizer that I would have like if you were it would take in your reporter value Brenda’s reporter value Lauren’s reporter value Tim's reporter value medianize all of them said if one of you went down it's not a big deal. 

Spuddy: Can you select random reporters? 

Nick: Yeah, I mean that that would be like part of the front-end process or like the selection process you would like whenever you would set it up you would like go and you would have to pick so you would want like who do you pick it's interesting that it's almost like there's a reflection of the consensus mechanism of the algorithm blockchain in the way that that in some ways yeah go with what you can. 

Spuddy: That's what you can do because that's what it that's the way that blockchain works. 

Nick: Yeah in some ways no it's definitely tricky for sure but it sort of reminds me a lot like if you guys want to go look way back there's the old Zap oracle zap was like an oracle in like 2016 and they would have like where you would create a contract that was like a price feed and people would subscribe to it and pay you and that was like how their model would work but they never like took off but it's like very similar to that in a lot of ways. Any other? 

Spuddy: You can like so you could have data types some a lot of the discussion about a Tellor oracle on Algorand was about bridging too so bridging would just it would take data from the Ethereum blockchain and write it to the algorithm blockchain that would be disputable okay it was incorrect. 

Nick: Yeah and I mean you could also like since you're over there like we have it sort of hard coded in but it's trivial too to like change the staking requirements so like if you were doing some crazy large bridge since it's like staking an algo you could theoretically just jack up the staking cost make it secure that way you know if everyone's taking 10 million dollars it's probably okay bridging over you know sure half a mil so all right well tally holy yeah thank you very much it's super cool I'm glad you enjoyed working on another environment we're going to have some time. I'm sure we'll be deploying on other non-EVM chains as well so but it's a cool structure. So, thank you all right anything else guys? Cool see you next week. 

 

 

 

 

How do you rate this article?

0



Tellor
Tellor

In this blog I will post transcriptions of videos made by the Tellor team.

Publish0x

Send a $0.01 microtip in crypto to the author, and earn yourself as you read!

20% to author / 80% to me.
We pay the tips from our rewards pool.