[bitcoin-dev] RFC - BIP: URI scheme for Blockchain exploration

Richard Moore me at ricmoo.com
Sat Aug 29 19:28:17 UTC 2015


Yes! Good point, network should be encoded. Not sure I like this format yet, but what if it was part of the authority, like block:testnet. Like http uses port 80 by default, you could have block by default refer to block:mainnet.

Eg.
blockchain://tx:testnet3/3b95a766d7a99b87188d6875c8484cb2b310b78459b7816d4dfc3f0f7e04281a

I will read the RFC over more thoroughly tomorrow to get an idea of what types of things make more or less sense.

RicMoo

Sent from my self-aware iPhone

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

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

> On Aug 29, 2015, at 2:58 PM, Btc Drak <btcdrak at gmail.com> wrote:
> 
> What about supporting different networks? What if I want to look up
> testnet for example?
> 
> blockchain://mainnet/txid/3b95a766d7a99b87188d6875c8484cb2b310b78459b7816d4dfc3f0f7e04281a
> blockchain://testnet/txid/3b95a766d7a99b87188d6875c8484cb2b310b78459b7816d4dfc3f0f7e04281a
> 
> or
> 
> blockchain://txid/3b95a766d7a99b87188d6875c8484cb2b310b78459b7816d4dfc3f0f7e04281a
> blockchain://txid/3b95a766d7a99b87188d6875c8484cb2b310b78459b7816d4dfc3f0f7e04281a?network=testnet
> 
> On Sat, Aug 29, 2015 at 5:31 PM, Richard Moore via bitcoin-dev
> <bitcoin-dev at lists.linuxfoundation.org> 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.
>> 
>> RicMoo
>> 
>> Sent from my self-aware iPhone
>> 
>> .·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸><(((º>
>> 
>> Richard Moore ~ Founder
>> Genetic Mistakes Software Inc.
>> phone: (778) 882-6125
>> email: ricmoo at geneticmistakes.com
>> www: http://GeneticMistakes.com
>> 
>> On Aug 29, 2015, at 7:48 AM, Marco Pontello via bitcoin-dev
>> <bitcoin-dev at 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.
>> 
>> 
>> _______________________________________________
>> bitcoin-dev mailing list
>> bitcoin-dev at lists.linuxfoundation.org
>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>> 
>> 
>> _______________________________________________
>> bitcoin-dev mailing list
>> bitcoin-dev at lists.linuxfoundation.org
>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>> 


More information about the bitcoin-dev mailing list