[AMA] Everything iCKB

Hey all~ I’m the developer of iCKB, I’m so glad to see so many new & old Nervos fans!

I have a long running Discord thread where I usually post updates about iCKB and discuss publicly any related question.

Then again Discord is a closed platform while Nervos Talk is open and it’s gaining more and more popularity :chart_with_upwards_trend:

Also iCKB is getting closer and closer to mainnet deployment!

So here we are, ask me anything you want to know about iCKB!!

Phroi

7 Likes

Hi Phroi, I didn’t realise you had that thread on the Nervos Discord, I’ll keep an eye on that now.

But anyway, I just wanted to see if you can give us a general update on things are progressing with iCKB and I know timeframes are really hard to give, so I won’t hold you to anything :smile:, but do you have approximate time when you are hoping to have it on mainnet?

3 Likes

Hey @Yeti, nice to see you here!

We are pretty close actually, two weeks ago I deployed a prototype on testnet, while mainnet deployment could be just two / three months away. Bot is at a MVP level, but I still have to polish a bit some inner workings and create its interface. While the iCKB DApp has the components in place to interact with iCKB protocol, but the website itself has still to be designed completely. I have a few interesting ideas on that tho.

A possible delay may come from integrating with CoBuild protocol as just recently it was brought to my attention and I may have to change a few things all around to start supporting it. Then again it’s a step in the right direction to improve Nervos L1 interoperability, so it makes sense to delay a bit for it.

Let me know if you have any other iCKB related question!

4 Likes

Hi Phroi, thanks for the update, great to hear things are coming along well.

2 Likes

Congrats on on all the progress that you’ve made. Been following things as best as I can on discord. I think I’ve seen you mention some use cases like ISPOs or even throwing around the idea that maybe ickb could power a chain like Godwoken. What do you see currently as the most impactful use cases. What can we do as a community to help advance any of those ideas forward?

2 Likes

Hey @Digitaldoyle, nice to see you here!! :hugs:

What do you see currently as the most impactful use cases?

Glad you ask!! A few things changed since the inception of iCKB. Let’s get an updated overview:

  • ISPO is a really nice model, but currently Nervos has already a Community Fund. So I’d say the need has already been addressed. Developing an ISPO now may provide different paths & rules for accessing funding.
  • Switching from pCKB to iCKB would give free interests to any CKB holder on Godwoken, then again feels like Godwoken never really found its use case.
  • In the short term the most impactful iCKB result will be that more users will feel comfortable in stacking into NervosDAO by using iCKB. So we’ll see more and more CKB locked into NervosDAO, which is an achievement in itself.
  • In the long term we’ll see more and more decentralized finance protocols integrating iCKB. So users will be able to enjoy the interests payed out by both these protocols and NervosDAO.

What can we do as a community to help advance any of those ideas forward?

Letting your friends know your passion for Nervos, iCKB and future DApps, enjoy the ride together!!

2 Likes

Let’s recap what’s happening in the iCKB world:

  • iCKB was on its merry way to deployment when CyberOrange suggested me to take a look at CoBuild and xUDT :exploding_head::exploding_head::exploding_head:
  • CoBuild will bring Nervos L1 to a new era by introducing metadata to transactions and showing a clear path towards OTX.
  • CoBuild OTX has forced me to re-evaluate iCKB from the contracts up as both iCKB logic and limit orders are not CoBuild OTX ready.
  • As for Limit Order, CoBuild will make witnesses handling more complex for the right reasons.
  • Looking at Omnilock there are ways to piggyback on Admin Mode for adding a custom Domain Logic unlocking for implementing Limit Order. In this direction I opened a Feature Request on Omnilock for P2SH by type Auth.
  • As for iCKB Logic, since I have to modify the contract anyway for making it OTX ready, I’m evaluating to switch from sUDT to xUDT.
  • Switching to xUDT would drop the requirement of a owner lock cell and just depend on owner type cell aka receipt at iCKB minting time. More importantly this would allow to split the receipt logic in two pieces: deposit receipts and withdrawal request receipt.
  • All these changes to the L1 scripts don’t really change much for my typescript code. The real issue is how CoBuild OTX support will affect it, which I’m still evaluating.
2 Likes

I updated the iCKB proposal, switching from sUDT to xUDT: Support xUDT · ickb/proposal@f6ff3de · GitHub

4 Likes

I completed updating the iCKB contracts to be CoBuild OTX ready as described in the updated proposal :tada::tada: :tada:

On-chain CoBuild Action validation is a future step, for now I’ll focus on bringing up to speed the front-end :man_technologist:

4 Likes

TLDR: I updated the L1 LO script to dual ratio orders and fully updated the typescript Utilities for interacting with all iCKB Scripts, so that’s completed! :tada::tada::tada:

While implementing the Limit Order utils, I realized that the transition to the LO final state (Fulfilled) was difficult to enforce and it was causing issues. At the same time I realized that there are use cases where an advanced user may want to specify two different exchange ratio: one for CKB to UDT and one for UDT to CKB. These dual ratio orders can be referred as liquidity provider orders.

Shortly, liquidity provider orders have two practical use cases:

  1. Express the change cells of the bot. This way even when the bot is not active his capital is available for others and so it can gain fees. A win-win situation.
  2. In the future implementation of dCKB Rescuer we’ll likely need a low effort way to provide capital. Liquidity provider orders make this easy.

For the web interface, I chose a stack that seems best for the long term maintainability:

Now I’ll focus on updating the bot, test everything and develop a minimal web interface :muscle:

5 Likes

The new L1 scripts are now deployed on testnet and they can be interacted with using the followings:

In the coming seven days I’ll focus on developing a minimal Web interface :muscle:

2 Likes

For a long time I noticed something was wrong with withdrawals on bot testnet as they were taking too long, but everything was fine on devnet and I had not a single hard error of this issue. A few days ago my interface deposit withdrawal requests got slapped with a hard validation error (AmountMismatch on iCKB Script) and I had no idea what was happening as on devnet everything worked smoothly. Only after downloading and forking testnet locally I was able to understand the underlying issue.

Here a short postmortem: [FR] Add XUDT testnet reference by `data1` · Issue #735 · ckb-js/lumos · GitHub

I updated the iCKB script with the stricter script and redeployed it. I also updated all iCKB related libraries to the latest version. Feel free to update bot and tester.

1 Like

With that out of the way, the DApp is functionally complete. Now it’ll take a bit more work to just add the logo (as ideated by Ahrom) in the homepage, add a bit more information and explanation about what’s going on.

Since the interface is 100% static and it can be hosted on any static webserver, I’m thinking about working in public for this very last phase. So that anyone can try it out and give feedback.

Right now I’m thinking about hosting it on Gihub Pages while still in testing phase on testnet. If anybody has a better hosting suggestion, feel free to let me know!!

3 Likes

Here the testnet DApp, still a work in progress: iCKB Testnet DApp

Any feedback is more than welcomed!! :sunny:

3 Likes

Thanks for all the efforts you have poured into this so far! Seeing this in practice makes it way easier to understand.
You will always get less ickb than what you exchanged. That’s because the lifetime earnings of the dao are baked into the ickb you receive correct? Looks like around 13%.
Is there a wait to exchange ickb back to CKB?
Thanks again, can’t wait for the AMA.

3 Likes

Your support @Digitaldoyle means a lot to me, thank you!! :hugs:

Actually this very feedback is crucial, very appreciated!! Please, let me reply to you by updating the DApp. Once I feel that the DApp should be able to answer your question, I’ll let you know!

By the way, I created a document with all the feedback received to keep track of the things to do.

Back to coding, cheers!

3 Likes

Feel free to try out again the interface. Does it answer your questions now?

It does thanks. Saw the ckb <> ickb conversion amounts yesterday, the description around order, number of withdrawal requests and the network fees is a nice addition as well!

1 Like

That’s good to hear, I’m trying to share just the right amount of information, not too much, not too little.

It’s okay also to be more critical, if something in particular comes to mind that you would like to see, let me know!

Cheers, Phroi

2 Likes

In these years @janx and the core team helped iCKB in a lot of different ways. Additionally, in these days some of his team members are conducting an internal audit on iCKB Scripts. We are happy to report that (so far) not a single vulnerability has been discovered! :partying_face::tada::tada:

That said, they are providing us quite a few suggestions on how to improve the code and we are really grateful to them. They are happy to help iCKB by providing extra eyes to make some bugs shallow. That said, we cannot possibly ask them to take responsibility for any undiscovered bug.

That’s why an internal audit is never gonna be enough. Especially since the contracts are (likely) not gonna be deployed in upgradable manner. That’s why we want to run a Community DAO proposal for funding a formal external audit, possibly with TrailOfBits.

This is the first time we really need your help. As of now we are asking your vocal support of iCKB!

Support the coming Community DAO proposal for the iCKB Audit!!

Support iCKB!!!

Love & Peace, Phroi

1 Like