Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Andrew Gates
    @andrew-g-za
    this.generalizedTimeFormatter = new DateTimeFormatterBuilder()
        .appendValue(ChronoField.YEAR, 4)
        .appendValue(ChronoField.MONTH_OF_YEAR, 2)
        .appendValue(ChronoField.DAY_OF_MONTH, 2)
        .appendValue(ChronoField.HOUR_OF_DAY, 2)
        .optionalStart()
        .appendValue(ChronoField.MINUTE_OF_HOUR, 2)
        .optionalStart()
        .appendValue(ChronoField.SECOND_OF_MINUTE, 2)
        .optionalStart()
        .appendFraction(ChronoField.MILLI_OF_SECOND, 3, 3, true)
        .optionalStart()
        .optionalEnd() //millis
        .optionalEnd() //seconds
        .optionalEnd() //minutes
        .optionalStart()
        .appendOffset("+HHmm", "Z")
        .parseDefaulting(ChronoField.OFFSET_SECONDS, 0)
        .toFormatter();
    :(
    yuck
    Michiel de Jong
    @michielbdejong
    @adrianhopebailie yes, another thing I thought is interesting for the Java project is https://github.com/michielbdejong/ilp-frog - it means you only have to implement the http calls which we've already worked on during the Berlin workshop, and gives you access to five-bells-ledger, xrp-escrow, and any other ledger for which a JavaScript plugin exists. Plug it into a frog, and you have a microservice which your Java application can talk to on localhost
    Andrew Gates
    @andrew-g-za
    Hi @sappenin sorry I wont
    Make today's call

    Some feedback - the rfc changes to address the time format problem has been accepted, so we know what to do for the codec. I already have a working implementation.

    I also looked at how we could support sequences in oer, long story short i don't think it's doable because of the type erasure - we just don't know which oer type to deserialze. I'll implement the sequence of liquidity points directly in the liquidity curve quote codec, if we find a generic way we can come back and fix it.

    Michiel de Jong
    @michielbdejong
    for the Java implementation, would it be easier if the RPC protocol used by ilp-plugin-virtual would evolve from JSON to OER?
    or would you prefer it stays as JSON?
    I'm also going to have to decide on a server-to-server protocol for components that run on the testnet-of-testnets, would be cool if some of those components would be written in Java.
    Michiel de Jong
    @michielbdejong
    @andrew-g-za would you agree with @sappenin's remarks in https://github.com/interledger/rfcs/issues/249#issuecomment-318084843 ?
    David Fuelling
    @sappenin
    interledger/rfcs#251
    Andrew Gates
    @andrew-g-za
    @michielbdejong yes I totally agree. OER support in java seems to be non-existent, and i've yet to find solid, clear documentation on it in one place - it took me many hours to find anything on what an OER GeneralizedTime object looked like 'on the wire'. This presents an obstacle to adoption for sure. If the argument for moving to binary is around performance then perhaps OER is a reasonable choice, but it certainly not winning any awards for ease of use. In the end choosing OER means that we must provide a rock-solid OER serializer/deserialzer that implementers can use out the box.
    Michiel de Jong
    @michielbdejong
    hm, maybe we can write a proxy that rewrites OER to JSON and back
    Michiel de Jong
    @michielbdejong
    maybe we can define ILP and LLL in ASN.1 and then still use JSON on the wire
    David Fuelling
    @sappenin
    @michielbdejong What is LLL? I assume something to do with the Ledger RPC API?
    HA - just saw the name on 251 -- never saw the word "lotocol" till now. LLL FTW!
    Michiel de Jong
    @michielbdejong
    yes, its binary version.
    It's a pun on PPP :)
    David Fuelling
    @sappenin
    Ah, that makes me feel a bit better - I was thinking it was some meme I hadn't heard of before, like "hodl on" (https://www.reddit.com/r/Bitcoin/comments/2b8t78/whats_hodl/)
    Michiel de Jong
    @michielbdejong
    :)
    Andrew Gates
    @andrew-g-za
    @sappenin - i wont be able to make tomorrow's call. The only thing that i had wanted to discuss was interledger/java-ilp-core#70 - i've left some comments, let me know what you think
    David Fuelling
    @sappenin
    @andrew-g-za sounds great - I'm hoping to get some time tomorrow morning early before work to look at various ILP Java issues - hoping to share some more thoughts then
    David Fuelling
    @sappenin
    Hey @/all - I can't make the Java call today - I'll leave the bluejeans open if anyone wants to still participate. Apologies for the late notice!
    Andrew Gates
    @andrew-g-za
    Hi @sappenin , i just joined and get the sinking feeling the calendar didnt get the time zone thing right again
    the invite is for 17:00 GMT+2
    im guessing its an hour late?
    David Fuelling
    @sappenin
    Nope - you have the right time / I'm just running a minute behind
    Andrew Gates
    @andrew-g-za
    happy days :)
    Michiel de Jong
    @michielbdejong
    I wanted to join so we can talk about Java and the testnet
    Michiel de Jong
    @michielbdejong
    @earizon hi! how's it going? I was wondering if there's anything I can help with in the Java implementation, for instance, are there any plans to implement the new version of the PluginVirtual RPC protocol? We changed it from JSON to OER and gave it a more official name: 'Bilateral Transfer Protocol'
    Enrique Arizón Benito
    @earizon

    @michielbdejong Hi Michiel, I interpret the "JSON" (protocol) can be considered deprecated right now. That was the protocol I was using for the java ledger (https://github.com/earizon/java-vertx-ledger/tree/master/src/main/java/com/everis/everledger/handlers) -that actually is not java but kotlin using the java-ilp-core package -.

    Is there any code to check how the new binary protocol is being used in NodeJS?. I'm thinking something similar to the five-bells-ledger/tests I used to develop the java/kotlin ledger.

    My intution says that porting from JSON to OER must be a matter of "re-encoding" the messages, so it must not be really difficult.

    Michiel de Jong
    @michielbdejong
    Hi @earizon actually, we had some more discussion last week, let me discuss it now, and give you an answer!
    Enrique Arizón Benito
    @earizon
    +1
    By the way, the main branch is using an in-memory ledger so balances it's reseted on each reboot. The earizon-ethereumBackend branch used an Ethereum node (or network) as persistent backend. Bassically it keeps the five-bells-ledger protocol to interact with Ethereum (just in "PoC" version with the pre-defined accounts defined in the ./wallet subdirectory)
    Enrique Arizón Benito
    @earizon
    (balances are reseted)
    Michiel de Jong
    @michielbdejong
    five-bells-ledger api or ledger-plugin-interface?
    Evan Schwartz
    @emschwartz
    Hi @earizon, we're replacing the HTTP + JSON protocol with the Websockets + OER one in the trustline implementation (https://github.com/interledgerjs/ilp-plugin-payment-channel-framework/blob/master/src/lib/plugin.js). Are you building a ledger or an ILP client?
    (Note I'm talking about the plugin RPC / trustline and payment channel protocol. The Five Bells Ledger API is staying as it was, but we've been prioritizing the bilateral protocols over that one)
    Enrique Arizón Benito
    @earizon
    @michielbdejong five-bells-ledger actually. Since there was no persistent database for the ledger, I just choosed to use ethereum accounts. Actually any back-end storage implementing the https://github.com/earizon/java-vertx-ledger/blob/earizon-ethereumBackend/src/main/java/com/everis/everledger/ifaces/account/IfaceLocalAccount.java must work.
    @emschwartz , Actually this was a PoC ledger trying to replicate five-bells-ledger in java. Bilateral protocols and (ideally a java connector) was next on my list. (Historically I developed it just to get used / trained with Interledger)
    Evan Schwartz
    @emschwartz
    Got it. Then I wouldn't change anything for that
    My recommendation for where to get started with an interledger implementation is to implement a sending client like https://github.com/interledgerjs/ilp that uses the Bilateral Transfer Protocol (BTP) for transfers
    I'm doing that in Rust at the moment. I'm cleaning up the code now and I should have it on github this week