W3C home > Mailing lists > Public > public-interledger@w3.org > March 2016

Re: Thoughts on Discovery

From: Melvin Carvalho <melvincarvalho@gmail.com>
Date: Tue, 29 Mar 2016 14:42:51 +0200
Message-ID: <CAKaEYhLhwhNNcQfdoPf1GN0727kWbHhfaiA8Wh3djZaTm7fBtQ@mail.gmail.com>
To: Adrian Hope-Bailie <adrian@hopebailie.com>
Cc: Interledger Community Group <public-interledger@w3.org>
On 29 March 2016 at 13:01, Adrian Hope-Bailie <adrian@hopebailie.com> wrote:

> Is acct: lookup really a problem?
>

I would say so.  But well, why even use acct: in the first place?


>
> It depends on the context in which you encounter the identifier. If the
> context suggests that this is an Interledger account identifier then the
> next step would be to normalize it into an acct: URI and then resolve the
> ledger URL from that using WebFinger (or WebFinger 2.0 with JSON-LD)
>

Yes, that would be out of band information contained in the inter ledger
protocol spec.  It requires organic growth, rather than, bootstrapping what
we have already.


>
> I hear you say that an xxx@yyyy identifier could be misinterpreted as a
> mailto: or xmpp: or sip: URI but why would a piece of software that is
> specifically trying to take an identifier and find meta-data about ledgers
> and accounts for the purposes of sending an ILP payment normalize that
> identifier to anything but an acct: URI?
>

So what if I want to send money to an email address, or xmpp account.  I
can do this already, ILP cant.  So I would say there's some major
scalability issues introduced.


>
> On 29 March 2016 at 12:53, Melvin Carvalho <melvincarvalho@gmail.com>
> wrote:
>
>>
>>
>> On 29 March 2016 at 12:40, Adrian Hope-Bailie <adrian@hopebailie.com>
>> wrote:
>>
>>>
>>>
>>> On 29 March 2016 at 08:50, Melvin Carvalho <melvincarvalho@gmail.com>
>>> wrote:
>>>
>>>>
>>>>
>>>> On 28 March 2016 at 12:58, Adrian Hope-Bailie <adrian@hopebailie.com>
>>>> wrote:
>>>>
>>>>> There have been some good discussions around the correct technology
>>>>> for the discovery of a receiving account (ledger).
>>>>>
>>>>> The current proposal is to to use WebFinger (
>>>>> https://tools.ietf.org/html/rfc7033) which is the basis for discovery
>>>>> in a variety of web based protocols such as OpenID Connect.
>>>>>
>>>>> There has been a proposal to use JSON-LD however it is unclear at this
>>>>> stage how this would be done as JSON-LD is not a protocol, it is a data
>>>>> format for linked data.
>>>>>
>>>>> There have also been suggestions to explore other existing lower level
>>>>> discovery protocols such as DDDS based on DNS.
>>>>>
>>>>> I've been having this debate for about 10 years in various groups
>>>>> related to payments, identity and other more obscure use cases. The reality
>>>>> is that there is no one discovery protocol appropriate for all use cases.
>>>>>
>>>>> In an ideal world there would be an entirely decentralised registry
>>>>> (noting that DNS is not) that could be used as the primary source of truth
>>>>> for resolving a human readable identifier into something that can be used
>>>>> by a machine to accomplish some specific goal.
>>>>>
>>>>> I don't believe it's the goal of this group to solve this problem but
>>>>> if we feel the current proposal of Webfinger is inappropriate for resolving
>>>>> an account@ledger identifer into a ledger address then let's find a a
>>>>> better alternative.
>>>>>
>>>>> But, before we get into a religious debate about the choice of
>>>>> technology I'd suggest we agree on what the requirements and design goals
>>>>> are for this discovery protocol.
>>>>>
>>>>
>>>> By the way I dont think we really have religious debates.  I think what
>>>> happens is that we have varying degrees of having read, understood and
>>>> implemented technologies, and processes of education during the drafting of
>>>> specifications.
>>>>
>>>
>>> It sounds like you are saying "some of us know what we're talking about
>>> and others don't so it's not a debate it's just us waiting for the rest to
>>> catch up". I disagree. Simply having the best understanding of a technology
>>> doesn't mean your opinions on that technology are always right.
>>>
>>> The purpose of a group like this is to get wide and varied input and not
>>> to be dismissive of other peoples ideas or opinions.
>>>
>>> I think the best way to get a point across in this context is to write
>>> some code and submit it as a patch against the existing reference
>>> implementations OR point the group to it for review.
>>>
>>
>> Totally agree, I spend most of my time writing code.  But I will
>> participate in mailing lists too if I think I can explain stuff.
>>
>>
>>>
>>> I don't think anyone is afraid of taking a non-standard approach and
>>> using it if it's the best technical solution but when it comes to solving
>>> non-core problems I'd favor existing standards with existing
>>> implementations.
>>>
>>>
>>>>
>>>> I think I understand webfinger pretty well (my name is on the spec) and
>>>> well we made it as good as it could be, but it still has limitations.  It's
>>>> not a discovery protocol for user@host, thought that is what the
>>>> original motivation was.  It's a discovery protocol for URIs.  In
>>>> particular, it evangelizes the organic growth of the new URI scheme
>>>> acct:user@host.  This was always going to be a big ask, because as we
>>>> tend to find out in the proceeding years, organic growth is hard.  The
>>>> other limitation is that the serialization, JRD, is quite restrictive, and
>>>> doesnt play well with anything other than itself.
>>>>
>>>
>>> The only problem I have with WebFinger is JRD. It's a weird
>>> serialization format that doesn't appear to be used anywhere else.
>>>
>>
>> JRD is not only weird it has several limitations.  You can only have one
>> literal as an object.  When URIs are objects they must be ordered by
>> preference, without any clear guide as to what preference means, which is
>> an interop nightmare, and implementation burden.  It treats numbers as
>> strings.  I think there's a few other things that I've forgotten.  Net
>> result is that it ends up too complex for people to implement correctly.
>> At least every single time I looked at an implementation there was one
>> point or other that didnt align with the spec.
>>
>>
>>>
>>> That said, WebFinger gives us exactly what we need for the Open Web
>>> Payments Scheme discovery. I have an account identifer in the form xxx@yyyy
>>> and I am able to resolve at least two URL's from that, one pointing to a
>>> ledger and one pointing to an actual account.
>>>
>>> That's the requirement and WebFinger addresses the requirement.
>>>
>>>
>>>>
>>>> The important word in JSON LD, is not JSON, but rather, LD.  Linked
>>>> Data is simply a tweak of HTTP to allow discovery.  This is the so-called
>>>> "follow your nose" pattern that people experience every day.  You go to a
>>>> URL, you find links and you click on them to 'discover' more information.
>>>> Linked data simply lets machines do this the same way humans do.  There is
>>>> no new protocol, only HTTP.  The JSON part shows you how to parse the
>>>> links.  But the same applies in other serializations including HTML.  When
>>>> you paste a link into facebook it will show you the image, caption and
>>>> headline.  That uses Linked Data discovery to fetch those items.  It isnt
>>>> something new, it's something that is very widely deployed on the web
>>>> already.
>>>>
>>>> So, I dont think there's a debate going on, just explaining stuff.  It
>>>> only becomes a debate when the education process goes wrong, often for
>>>> human reasons.
>>>>
>>>
>>> I don't think we agree on whether or not WebFinger solves the problem we
>>> are trying to solve or if there is a standardized protocol for doing this
>>> that is a good alternative. So I'd still call this a debate. I am waiting
>>> to be shown a better alternative, at which point I'd happily concede the
>>> debate :)
>>>
>>
>> I think we have lots of people on various stages on a journey, and we're
>> all learning from each other.
>>
>>
>>>
>>> If you said to me, the basics of WebFinger are okay but let's use
>>> JSON-LD instead of JRD I'd agree that's a good approach but would want to
>>> spec it out so that we have some level of confidence that we're creating a
>>> dependency on something that will be standardized in and of itself (maybe
>>> as WebFinger 2.0) soon.
>>>
>>
>> That would work.  But you still have the acct: lookup problem.
>>
>>
>>>
>>>>
>>>>
>>>>
>>>>>
>>>>> This discovery protocol is intended to be simple and form part of a
>>>>> basic application layer payments protocol we're developing called OWPS
>>>>> which also has a stated design goal of being simple and addressing only a
>>>>> select set of use cases.
>>>>>
>>>>> As I have stated in a separate thread, nothing prevents us from taking
>>>>> the plunge and trying to develop a far richer application layer protocol
>>>>> that incorporates more complex systems of discovery.
>>>>>
>>>>> Finally, if there are alternative proposals to WebFinger please let's
>>>>> see them in action. All of the Interledger code is being developed in the
>>>>> open so it should be possible to fork the project you're interested in and
>>>>> implementing an alternative proposal for everyone to review.
>>>>>
>>>>>
>>>>
>>>
>>
>
Received on Tuesday, 29 March 2016 12:43:21 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 29 March 2016 12:43:22 UTC