I have a eth fork chain that i want to connect with ILP. I already have a connector working with one peer, however, the available tutorials on ILP are outdated / incomplete / not working. My question is: how do I link my chain to the ILP? What is the best approach to make it happen? Where can I find updated documentation? I mean, cmon! The ILP idea is amazing, but the documentation is really really bad. For instance, there are no tutorials on how to connect ILP on a private chain.
Thank you!
Documentation was a topic discussed at the ILP summit, so hopefully the docs get better. Everyone has been investing in KTLO so docs have been backlogged.
Regarding requirements, I believe you will need an uplink. Iâm pretty sure @karzak and @kincaid have some experience building uplinks, including ETH. Maybe they can offer some guidance.
You might also take a look at the uplinks that others have made. Try googling âmoneyd uplinkâ and you should find several repos. The XRP uplink might be a good template to use since XRP is used by most if not all connectors on the ILP and is probably the best maintained.
Hey Luis! Thanks for the comment. Myself along with a few other individuals are starting a working group focused on building out better documentation for the ILP community. Please keep an eye out early next week for some information on how to contribute if interested. Also, please let me know if there is anything in particular youâd like to see from documentation as we try to figure out the best way to go about creating this working group.
ILP is trying to attract devs to join ledgers, so I think we need a tutorial thatâs just step by step, how do you go from never having used ILP to connecting a chain onto the livenet.
Totally agree!!! We need step by step tutorials
I would love to contribute, but I need to understand the basics first. I and my team are really excited about the ILP possibilities, however we are struggling with the documentation. Another thing is that javascript seems a little bit strange for this kind of stuff. Would be better to have Python or Go interface for most of the backend engineers.
@Luis_Eduardo_Boiko Sorry the documentationâs been giving you such trouble!
Weâre working on Rust and Java implementations of the protocol stack, as well as giving those HTTP APIs that will be easier to implement Python, Go, etc client libraries against. Hopefully thatâll start to be usable within a couple of weeks.
Weâre also in the midst of an overhaul of how we integrate with ledgers, which is why there isnât a great how-to on that right now. The previous integration method (âledger pluginsâ) had to be written in Javascript and tightly coupled the communication method used between peers (initially only a Websocket-based protocol) with the settlement-related messages. The approach weâre working on now (âsettlement enginesâ) is decoupled and will allow you to write a ledger integration in any language and have it interact with connector implementations written in different languages.
Moneyd uplink ETH was a possible tool to send a payment, but to my knowledge it is not working at the moment.
You can use @kavaLabs âSwitch APIâ.
https://github.com/Kava-Labs/ilp-sdk/blob/master/README.md
However at this point, to my knowledge, it is not making atomic payments but stream. For example, to transfer a total amount of 20 ETH it would make many subsequent very fast small payments of 0.0XY ETH. The transfer of the total amount is still quick, so from an outsiderâs perspective I think it can be assimilated to an atomic payment. If I am not mistaken, I think I read somewhere they are considering implementing atomic payments though.
It still uses plugins which need to be configured, so is compatible with the js âreferenceâ connectors. So you can hit the ground running with it.
You will need to deploy Machinomy contract on the ETH chain.
Thank you @emschwartz! Is it dificult to setup a PoC with ILP linking to a private chain (eth based) with the current tech? Our company need to allows interoperability between our private chains and Iâm thinking about using ILP, but I need to convince the âmoney guysâ. It would be really good if you or one of the guys from the dev team can help us with this task. Thanks!
I agree. Not that javascript is bad but providing interface with Go, Python or Java(Actually all 3 would be awesome ) would catch more eyes. Since Js implementation is already available, I donât think itâs that hard to port right! (just thinking over my head). I would personally involve myself if required, but itâs really hard at this point for me to understand lot of stuff thatâs going on here. I am new to this , making as much time as I can to go through available reference links.
Hey @Luis_Eduardo_Boiko!
The JavaScript Ethereum plugin is pretty hardened and should support using your own private chain. Some requirements:
- Deploy the Machinomy payment channel contract to the local node (the bytecode for the contract is here)
- Change the chainId for the local node to 3, 4 or 42 in order for the plugin to work properly
- Configure the
ethereumProvider
property of the plugin with an Ethers provider that can connect to your local node
Unfortunately, right now there arenât many tutorials or docs describing how all the pieces of the stack fit together â hopefully we can improve this soon!
With respect to using other programming languages such as Go or Python, as Evan noted, weâre moving the plugins to an HTTP-based API soon, which should make them much easier to use.
Also, if you want examples for running a multi-currency connector or sending cross-currency payments, check out the configuration weâre using for our live connector, and the SDK we developed for swaps between BTC, ETH and XRP.
Let me know if you have any questions!
Correction: the ETH plugin doesnât allow specificing a custom address for the Machinomy contract, so that might not work. Iâll make sure thatâs added in the next update!