LinkPool Development Update — 31/12/17

Jonny Huxtable
LinkPool
Published in
6 min readDec 31, 2017

This development update will demonstrate all the progress which has been made this year on LinkPool.

Back on December 13th, I wrote an article here which outlined the solution of LinkPool, what it’s trying to achieve and how. I can happily say that at the point of that article being written, development had long since started and the realisation of the solution was pretty much already achieved.

If this is your first time reading about LinkPool, feel free to register for interest on our website and follow us:

Contract Progress

Over the past two months we’ve been refactoring an early alpha-version of the contract into a production-ready contract that is easily upgrade-able. The main goal of this task was to separate the logic of the platform away from the data, so that the logic can be updated without any need to re-map the data. Without that, it makes contract migrations expensive and laborious.

That development milestone has been hit recently (hurrah!), so we have a working contract which manages staking/withdrawing and shares within the platform that is production ready. Here’s a screenshot of the current LinkPool test-suite:

LinkPool Contract Test-Suite

Based on that, I’d like to take this opportunity to talk about how all these actions will work, and how you as a user will use LinkPool when it is released.

Since LinkPool will be a dApp, how you interact with it will be very similar to other dApp’s, for example EtherDelta (*cough* just without the DNS hacks *cough*). This means that all your interactions will be done through a nice, simple UI. This UI will allow you to stake your LINK, keep track on them and withdraw them when needed.

Staking

When you want to stake your hard-earned LINK tokens within LinkPool, you’ll have to visit our website. When you’ve landed on our dApp homepage, it will show you a list of all the Chainlink nodes which are currently stake-able. Along side showing the node itself, it will show you the following information for that node:

  • Current total of LINK staked on the node
  • Staking limit of that node
  • The amount of LINK that node has returned back to the stakers
  • The amount of current active stakers on that node

Based on the information which is displayed, you as a user can make an informed decision on which node you’d like to stake on. Once you’ve made that decision, you’ll be able to select that node and then specify how much LINK you’d like to stake and then actually staking it.

Once you’ve staked, you’ll be given a normal Ethereum transaction ID for you to trace through your LINK tokens to that node. Once the transaction has completed, you will be able to see your LINK tokens on that node address, easily visible through Etherscan. You’ll also receive a confirmation on the UI and see your LINK tokens added against that node.

There is no limits to how much LINK you can stake or how many nodes you can stake on, as long as it’s within the staking limit of a node.

Passive Payments

Since the whole incentive of LinkPool is for you as stakers to earn passive income from your LINK tokens, it’s important that we show how much LINK is being earned clearly.

The action of adding shares of the earned LINK back to the stakers will be performed once every X days. The frequency of how often this action will be ran yet hasn’t been fully decided on yet. This is due to it being a balance between the GAS used in adding the LINK back to the stakers, and the benefit to the end-user. Although, you can expect this to be along the lines of between every 1 to 7 days.

When this action is ran, the LinkPool contract queries a nodes current balance, and then checks that against the amount staked on the node. If the current balance of the node is greater than the amount staked on the node, it means the node has earned LINK in node operation. If that’s the case, the contract loops through all the stakers on the node and then proportionately adds those shares back to the stakers. So for example:

  • Staker A has 10,000 LINK on Node A
  • Node A has a total of 50,000 LINK staked
  • Node A makes 1,000 LINK (after makers fees)

Result:

  • Staker A earns 200 LINK and now has 10,200 LINK staked on Node A

Note: Numbers used here are just an example of how earned LINK will be distributed to stakers.

Once those shares have been added back to your staked balance, they’re yours. They are free to be withdrawn from the platform at any time.

The amount which has been added to your balance will be shown on the LinkPool website, and you’ll be able to see all your historic shares payments from since you’ve staked.

Withdrawing

Withdrawing will be as simple as depositing. When you browse to the LinkPool website, you’ll see the nodes you’re staked on and then be able specify how much you want to withdraw and withdraw it.

There’s two processes for withdrawal which will happen behind the scenes, they both result in getting your tokens back safely, but the time it takes is different between the two.

  • Process One: Instant withdrawal through the LINK hot-wallet.
  • Process Two: Delayed withdrawal of the node directly sending the tokens back to you.

Firstly, to explain the two processes, I need to explain how Chainlink nodes manage LINK tokens. When you start-up a Chainlink node, it creates you a normal ETH wallet which is the same address in which your LINK needs to be stored against. This creates a problem for us. Since the LINK is managed in a normal wallet, this means the contract doesn’t have authority to withdraw those tokens out of the nodes wallet, only the node does.

So we developed a solution!

Process One
The main revenue for us as LinkPool is our makers fees. These fees are our only source of revenue to build and expand the platform over-time. These makers fees will be taken from the earned shares of LINK. This means that staking will be completely free, and we won’t take a percentage cut of your tokens on initial stake.

Note: The percentage of the makers fee from the shares earned hasn’t been fully decided yet.

These makers fees will be sent to a LINK hot-wallet in our contract. This LINK wallet is owned by the contract which means it has full authority to do what it wants with them. This is the wallet your LINK will come from on withdrawal, and it will be instant (excluding the ETH network transaction duration).

This process will be the main way of withdrawals on the platform. Once the hot-wallet has enough LINK to cover the withdrawals, the hot-wallet will send all of the LINK tokens to stakers on withdrawal request.

Process Two
This delayed process will only be used when the hot-wallet doesn’t have enough LINK to cover the withdrawal. In reality, this will only be in the early stages of the platform, as over-time the hot-wallet balance will continue to increase the more the network is active.

This process works by creating withdrawal requests. Once you click the button to withdraw on our website, it will check whether the hot-wallet has enough to cover the withdrawal. If that wallet doesn’t have enough, it will then create a withdrawal request to the node, which then the node will pick up and action.

The reason this process is delayed is because the action of the node checking whether any withdrawal requests are present will be in a routine activity which is executed every 15 minutes or so. Although, when the node does run that activity, it will instantly transfer the LINK directly back from the node to your wallet (excluding ETH network transaction duration).

Summary

I hope this article has shined some light on what we’re building and how it’ll work for you as the end-user. Since our philosophy is to create an easy, fair-for-all passive income platform, we hope this article has proven to you that what we’re building will be easy-to-use pillar of the Chainlink community and network for years to come.

I can’t wait to share more around the website itself, platform and the release of it when we have it.

--

--