Inspiration

RediYeti is inspired by wanting to strengthen the Avalanche validator network by encouraging the widest distribution of nodes. Kit Sturgeon had the inspiration for RediYeti as he thought of how to encourage AVAX hodlers to delegate their AVAX to his own validator node. He knew that his node enhanced Avalanche's distributed nature since it was running on a computer in his house--not in the cloud--yet because of this, he was unable to hit the same uptime numbers as cloud-based (and therefore more centralized) nodes.

What it does

RediYeti enables Avalanche validator node operators to guarantee to those who delegate AVAX to their node that they will receive their staking reward no matter what.

This strengthens the Avalanche network by encouraging delegation to more distributed but perhaps less reliable nodes that do not reside on centralized cloud-based virtual servers. With the RediYeti guarantee, now a node with 90% uptime looks just as good to a potential delegator as one with 99.9% uptime.

How we are building it

RediYeti is under development. We have taken the Chainlink hackathon as an opportunity to kick off the project. We needed to build a Chainlink adapter because Avalanche does not yet provide the needed capability to query the P-chain from the C-chain, but with a Chainlink adapter for avalanchego, this would be possible. So we built one!

We also needed a webapp, a series of solidity smart contracts, and some code to automatically engage the smart contracts as new delegators join the network. You can see how these work together in our design document. We chose to build the webapp using Vue and Vuetify since Avalanche uses these tools. Similarly, we are writing the delegator-watcher module in Golang since it will run on the same computer as avalanchego.

Since this is a commercial product, we have worked to create strong branding with a mascot that that links our company name, red·dev, with the snow theme of Avalanche. The central idea is that the Redi Yeti will keep your AVAX safe, and that is why it is holding an AVAX coin.

Challenges we ran into

The biggest challenge when working with brand new systems is that documentation can be thin--both for Avalanche and Chainlink. Both teams have made noble efforts to document how their systems work. However we recommend to both organizations that you double down on these efforts, as providing excellent documentation for developers is key to building a community, and you cannot yet depend on a deep pile of StackOverflow articles to help us along. That said, the videos presented during the Hackathon were excellent help, especially the one on dapp development in Avalanche.

Accomplishments that we're proud of

We're super-proud to have learned how to work with both platforms as we think both are the future. We're also proud of our growing brand identity and of fitting these disperate pieces together into one cohesive product that will help make Avalanche even stronger.

What we learned

OK this is one of the things that if you know, you know, and it won't seem that spectacular. But as new Avalanche developers, we were faced with the daunting problem of needing to find out the associated addresses of someone else's wallet since a delegator has a known P-chain address, but all of our dapp code is on the C-chain which can't talk to the P-chain. How then could we assure that payouts go to the right person?

After much ripping-of-hair figuring out how to use avalanche.js to find historical atomic swaps between chains, etc. we finally figured out that if you know someone's P-chain address, you also know a valid X-chain address for that same user just by swapping out the "P-" for an "X-"! Then we can ask the wallet owner to sign a message containing their C-chain address with that X-chain address that we know they own, proving that they own the C-chain address as well. Then we can safely send their payout to that C-chain address, right into their wallet.

This is but one example of many lessons for us that one can only learn by doing.

What's next for rediyeti-avax-delegation-guarantor

We have about six more weeks of development and testing, and then we will go live. Hopefully by then the Avalanche-Chainlink connector will be up, and then we can be one of its earliest adopters.

Built With

Share this project:

Updates

posted an update

You can try our adapter out by deploying this smart contract to the Ethereum Rinkeby test network: https://gist.github.com/DAlperin/dbe69b8056e2006328157e2abe614ce7 at remix.ethereum.org.

Fund it with a few LINK, and then call the requestCurrentAvaxSupply function with the params "0x0f89be6da047bd43f5b395d1015e4a1a037ae87d","0b5944552be9482dbc280cc718af9aac" This will use our custom adapter to retrieve the current AVAX supply on the Avalanche Fuji testnet. About a minute or so after the requestCurrentAvaxSupply function is called, check the value of the public 'supply' variable, where you will find the current AVAX supply.

Log in or sign up for Devpost to join the conversation.