public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: Richard Moore <me@ricmoo.com>
To: Matt Whitlock <bip@mattwhitlock.name>
Cc: "bitcoin-dev@lists.linuxfoundation.org"
	<bitcoin-dev@lists.linuxfoundation.org>
Subject: Re: [bitcoin-dev] RFC - BIP: URI scheme for Blockchain exploration
Date: Sat, 29 Aug 2015 15:24:12 -0400	[thread overview]
Message-ID: <F03EBBCA-21BB-4F22-9018-54D416646553@ricmoo.com> (raw)
In-Reply-To: <205843673.xtKUGbbkqt@crushinator>

I apologize, you are correct, I should not have used the word "real". 

However, if you look at section 3 of the RFC, the first hierarchal level (which in http is used to describe hosts) can be any "authority", not necessarily a hostname.

So, you could use tx, block, address, etc. as the authority for their paths.

RicMoo

Sent from my self-aware iPhone

.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸><(((º>

Richard Moore ~ Founder
Genetic Mistakes Software Inc.
phone: (778) 882-6125
email: ricmoo@geneticmistakes.com
www: http://GeneticMistakes.com

> On Aug 29, 2015, at 1:19 PM, Matt Whitlock <bip@mattwhitlock.name> wrote:
> 
> bitcoin:12345 *is* a "real" URI. It's just not an absolute, hierarchical URI (a.k.a. a URL); rather, it's an opaque URI.
> 
> And your suggestion is actually in violation of the URI spec, since "blockhash", "txid", "block", and "address" are not host names.
> 
> More correct would be:
> 
> blockchain:?blockhash=00000000000000001003e880d500968d51157f210c632e08a652af3576600198
> blockchain:?txid=3b95a766d7a99b87188d6875c8484cb2b310b78459b7816d4dfc3f0f7e04281a
> blockchain:?block=189000
> blockchain:?address=1RicMooMWxqKczuRCa5D2dnJaUEn9ZJyn
> 
> You should read the URI syntax RFC: https://tools.ietf.org/html/rfc3986
> 
> 
>> On Saturday, 29 August 2015, at 12:31 pm, Richard Moore via bitcoin-dev wrote:
>> I like the idea of having a standard for this, that all explorers (and even core, eventually) would understand.
>> 
>> I would recommend 2 changes though. First, using a real URI scheme, blockchain:// so that we can just use normal URL parsing libraries. The bitcoin: thing leads to additional code to mutate it into a proper URI before passing it to URL parsing. And I think it would be fine to include the type looking up. For example:
>> 
>> blockchain://blockhash/00000000000000001003e880d500968d51157f210c632e08a652af3576600198
>> blockchain://txid/3b95a766d7a99b87188d6875c8484cb2b310b78459b7816d4dfc3f0f7e04281a
>> blockchain://block/189000
>> blockchain://address/1RicMooMWxqKczuRCa5D2dnJaUEn9ZJyn
>> 
>> I think this would help the URI be more human understandable as well as give the explorers the ability to optimize a bit what they are looking for when hitting various databases.
>> 
>> A possible future path could also include blockchain://tx/123000/4 for block height, tx index... Another possibility could be blockchain://version which would return a list of supported paths, version of the BIP supported, etc.
>> 
>> The BIP should also specify little endian searching. I'm not sure, but would it also make sense for this BIP to include what the return results should look like? Maybe another, related BIP.
>> 
>>> On Aug 29, 2015, at 7:48 AM, Marco Pontello via bitcoin-dev <bitcoin-dev@lists.linuxfoundation.org> wrote:
>>> 
>>> Hi!
>>> My first post here, hope I'm following the right conventions.
>>> I had this humble idea for a while, so I thought to go ahead and propose
>>> it.
>>> 
>>> BIP: XX
>>> Title: URI scheme for Blockchain exploration
>>> Author: Marco Pontello
>>> Status: Draft
>>> Type: Standards Track
>>> Created: 29 August 2015
>>> 
>>> Abstract
>>> ========
>>> This BIP propose a simple URI scheme for looking up blocks, transactions,
>>> addresses on a Blockchain explorer.
>>> 
>>> Motivation
>>> ==========
>>> The purpose of this URI scheme is to enable users to handle all the
>>> requests for details about blocks, transactions, etc. with their preferred
>>> tool (being that a web service or a local application).
>>> 
>>> Currently a Bitcoin client usually point to an arbitrary blockchain
>>> explorer when the user look for the details of a transaction (es. Bitcoin
>>> Wallet use BitEasy, Mycelium or Electrum use Blockchain.info, etc.).
>>> Other times resorting to cut&paste is needed.
>>> The same happens with posts and messages that reference some particular
>>> txs or blocks, if they provide links at all.
>>> 
>>> Specification
>>> =============
>>> The URI follow this simple form:
>>> 
>>> blockchain: <hash/string>  
>>> 
>>> Examples:
>>> 
>>> blockchain:00000000000000001003e880d500968d51157f210c632e08a652af3576600198
>>> blockchain:001949
>>> blockchain:3b95a766d7a99b87188d6875c8484cb2b310b78459b7816d4dfc3f0f7e04281a
>>> 
>>> Rationale
>>> =========
>>> I thought about using some more complex scheme, or adding qualifiers to
>>> distinguish blocks from txs, but in the end I think that keeping it simple
>>> should be practical enough. Blockchain explorers can apply the same
>>> disambiguation rules they are already using to process the usual search
>>> box. 
>>> 
>>> From the point of view of a wallet developer (or other tool that need to
>>> show any kind of Blockchain references), using this scheme mean that he
>>> can simply make it a blockchain: link and be done with it, without having
>>> to worry about any specific Blockchain explorer or provide a means for the
>>> user to select one.
>>> 
>>> Blockchain explorers in turn will simply offer to handle the blockchain:
>>> URI, the first time the user visit their website, or launch/install the
>>> application, or even set themselves if there isn't already one.
>>> 
>>> Users get the convenience of using always their preferred explorer, which
>>> can be especially handy on mobile devices, where juggling with cut&paste
>>> is far from ideal.
> 


  reply	other threads:[~2015-08-29 19:24 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-29 11:48 [bitcoin-dev] RFC - BIP: URI scheme for Blockchain exploration Marco Pontello
2015-08-29 16:31 ` Richard Moore
2015-08-29 17:19   ` Matt Whitlock
2015-08-29 19:24     ` Richard Moore [this message]
2015-08-29 18:07   ` Andreas Schildbach
2015-09-01 14:33     ` Marco Pontello
2015-08-29 18:58   ` Btc Drak
2015-08-29 19:01     ` Matt Whitlock
2015-08-29 20:10       ` Jorge Timón
2015-08-30  2:02         ` Chun Wang
2015-08-30  2:20           ` Jorge Timón
2015-09-01 22:56             ` Btc Drak
2015-09-01 14:49         ` Marco Pontello
2015-09-01 21:16           ` Matt Whitlock
2015-09-01 21:25             ` Esteban Ordano
2015-09-01 21:38             ` Marco Pontello
2015-09-01 21:42               ` Matt Whitlock
2015-09-01 21:43                 ` Marco Pontello
2015-09-01 22:46             ` Jorge Timón
2015-09-01 23:25               ` Matt Whitlock
2015-09-01 16:12         ` Danny Thorpe
2015-09-01 22:59           ` Btc Drak
2015-09-01 23:57             ` Jorge Timón
2015-08-29 19:28     ` Richard Moore
2015-09-01 14:51       ` Marco Pontello
2015-11-15  2:14 ` Marco Pontello
2015-11-15 11:42   ` Jorge Timón
2015-11-16  0:59     ` Marco Pontello
2015-11-16 14:43       ` Jorge Timón
2015-11-16 22:10         ` Marco Pontello
2015-11-18 11:29           ` Jorge Timón
2015-11-18 12:31             ` Marco Pontello

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=F03EBBCA-21BB-4F22-9018-54D416646553@ricmoo.com \
    --to=me@ricmoo.com \
    --cc=bip@mattwhitlock.name \
    --cc=bitcoin-dev@lists.linuxfoundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox