Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: mikegogulski on November 22, 2010, 02:31:47 AM



Title: Request for Comments: Adopt "bitcoin" as the Bitcoin URI scheme
Post by: mikegogulski on November 22, 2010, 02:31:47 AM
Friends,

As discussed at http://bitcointalk.org/index.php?topic=55.msg23464#msg23464, Bitcoin needs a URI scheme.

<PROPOSAL:>

I propose that Bitcoin's URI scheme be "bitcoin". I also propose that this matter be left open through the end of 2010 for comments and discussion.

</PROPOSAL>

Background:

A "URI scheme" is an extremely simple thing. RFC 3986 (http://tools.ietf.org/html/rfc3986#page-17) defines a URI Scheme in ABNF as

scheme      = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )

IANA maintains the official registry of (officially registered) URI schemes. The current list is at http://www.iana.org/assignments/uri-schemes.html.

BCP35 (http://tools.ietf.org/html/bcp35) lays out the criteria and process for officially registering a URI scheme with IANA. I'll cheer the day when that happens. Meanwhile, looking at the IANA registry of current official URI schemes (http://www.iana.org/assignments/uri-schemes.html) immediately shows that there are many familiar ones in widespread use that are not "officially registered", such as magnet:, ed2k: skype:, callto:, aim:, freenet: and so on.


Title: Re: Request for Comments: Adopt "bitcoin" as the Bitcoin URI scheme
Post by: Anonymous on November 22, 2010, 03:36:48 AM
+10

this seems to be an acceptable standard.


Title: Re: Request for Comments: Adopt "bitcoin" as the Bitcoin URI scheme
Post by: Gavin Andresen on November 28, 2010, 03:52:14 PM
So... 8 years ago some bittorrent folks came up with the magnet: URI scheme.
And yet I don't run across many magnet links as I browse the web.

As I browse the web I run into exactly three URI schemes:  http, https, and mailto.

I think a bitcoin mime type (http://bitcointalk.org/index.php?topic=1056.0) will be easier to implement and is likely to be more successful.


Title: Re: Request for Comments: Adopt "bitcoin" as the Bitcoin URI scheme
Post by: ribuck on November 28, 2010, 05:38:35 PM
As I browse the web I run into exactly three URI schemes:  http, https, and mailto.

Hey, you forgot about FTP!

And point your Firefox at this one:
gopher://gopher.docfile.org/1/world/monitoring/uptime

But, flippancy aside, I take your point.


Title: Re: Request for Comments: Adopt "bitcoin" as the Bitcoin URI scheme
Post by: jgarzik on November 28, 2010, 07:02:28 PM
So... 8 years ago some bittorrent folks came up with the magnet: URI scheme.
And yet I don't run across many magnet links as I browse the web.

As I browse the web I run into exactly three URI schemes:  http, https, and mailto.

I agree that those three URI schemes are very popular, but I do run into magnet links all the time on torrent sites.  And all major torrent software does support magnet links.


Title: Re: Request for Comments: Adopt "bitcoin" as the Bitcoin URI scheme
Post by: Cdecker on November 28, 2010, 07:55:34 PM
Not to mention the ed2k links on filesharing sites. I guess all these schemas have a right to exist in their communities and sometimes a schema becomes ubiquitous. As for the Mime idea, it sounds a lot like the VCF cards that were meant to be used to exchange contact information but they are rarely seen today, whereas microformats can be found all over the web.

So +1 on the bitcoin uri schema.


Title: Re: Request for Comments: Adopt "bitcoin" as the Bitcoin URI scheme
Post by: mikegogulski on November 28, 2010, 09:08:30 PM
@AdrianAtari: Yes, we should be discussing how Bitcoin handles the URI scheme. But that's a separate discussion :)

@Gavin: I don't see the sense of a Bitcoin MIME type. A URI scheme describes a resource. A MIME type binds a document type to a handler. Implementing a "click to send Bitcoins" capability using a MIME type would require that the website on which the payment link was embedded send a new document to the client browser. Seems needlessly complicated to me.

See also the discussion at http://bitcointalk.org/index.php?topic=1840.msg24927#msg24927 for how to register URI scheme handlers, at least on Windows systems.


Title: Re: Request for Comments: Adopt "bitcoin" as the Bitcoin URI scheme
Post by: zipslack on November 29, 2010, 05:32:12 PM
I propose that Bitcoin's URI scheme be "bitcoin".

I vote yes.


Title: Re: Request for Comments: Adopt "bitcoin" as the Bitcoin URI scheme
Post by: Gavin Andresen on November 29, 2010, 09:07:51 PM
@Gavin: I don't see the sense of a Bitcoin MIME type. A URI scheme describes a resource. A MIME type binds a document type to a handler. Implementing a "click to send Bitcoins" capability using a MIME type would require that the website on which the payment link was embedded send a new document to the client browser. Seems needlessly complicated to me.
From the previous thread (http://bitcointalk.org/index.php?topic=1056.0):
Quote
But a bitcoin: URI has problems, too:
 1. It is hard to implement-- every browser has a different way of registering protocol handlers.
 2. If you don't have the protocol handler installed, clicking on the link doesn't give you any help on what to do to make it work.  (try it here (http://skypaint.com/btcpay/t.html))
 3. Looks like some software (like this forum) don't like bitcoin URIs: Donate to the Faucet (http://bitcoin:15VjRaDX9zpbA8LVnbrCAFzrVzN7ixHNsC) (that URI is bitcoin:15VjRaDX9zpbA8LVnbrCAFzrVzN7ixHNsC, the forum software is truncating it and adding http://).

Implementing something that won't even work on our own forums would be a bad idea, in my humble opinion.


Title: Re: Request for Comments: Adopt "bitcoin" as the Bitcoin URI scheme
Post by: mikegogulski on November 30, 2010, 12:54:52 PM
@Gavin:

Your #2 objection is right on. Not much to say on that score.

To #3... well, that's problematic. Two items: Is that a use case that demands heavy attention (in comparison to embedding links on pages where the page owner has full control of the rendered HTML)? Also, here's a link to an SMF mod to handle ed2k: links: http://mods.simplemachines.org/index.php?mod=96

On #1 at least for Windows and Mac OS X I've determined this is not a per-browser setting but can be done at the OS level.
  • Windows: Registry key (see link above to how NSIS scripting is used to install URI scheme handlers in Pidgin)
  • On Mac OS X Tiger or later there's an API functioned called LSSetDefaultHandlerForURLScheme for registering handlers.
  • For Gnome desktop it appears that gconf can be used to set /schemas/desktop/gnome/url-handlers/(whatever)/(command|enabled): http://developer.pidgin.im/viewmtn/revision/file/1849f0c8ec3f3ea583476f1a13cdd83e3abff25f/libpurple/gconf/purple.schemas.in ... Not really sure how that works.


Title: Re: Request for Comments: Adopt "bitcoin" as the Bitcoin URI scheme
Post by: Bruce Wagner on December 04, 2010, 07:35:39 PM
Questions.

1.  Why not have both?   The market will decide which one people choose to use most.  One might be used more at first, then later as browsers are updated, site owners might later switch to the other.   But....  Are they mutually exclusive??

2.  What's stopping us?   Let's just implement them BOTH immediately.   We obviously have the knowledge and expertise to get the job done.   Let's just get the job done already.


Title: Re: Request for Comments: Adopt "bitcoin" as the Bitcoin URI scheme
Post by: kiba on December 04, 2010, 07:45:41 PM
2.  What's stopping us?   Let's just implement them BOTH immediately.   We obviously have the knowledge and expertise to get the job done.   Let's just get the job done already.


For some reason, we lack programming manpower.

Nobody is doing an android client, for example.


Title: Re: Request for Comments: Adopt "bitcoin" as the Bitcoin URI scheme
Post by: Bruce Wagner on December 04, 2010, 08:20:23 PM
Gavin and Mike...   You've both already done lots of research and put lots of thought into each of the two methods.    What more would it take to simply implement them?   Is it simply a matter of agreeing on what it should look like, how it should function, etc...  then create the standard...   then submit it to...?    What's the roadblock at this point -- with each of the methods, if there is one?


Title: Re: Request for Comments: Adopt "bitcoin" as the Bitcoin URI scheme
Post by: mikegogulski on December 07, 2010, 06:46:12 AM
Well, what's stopping me is that I don't have the necessary expertise with C++ (which, unimportantly, I consider an atrocious language) to implement either handler type in Bitcion. I've also got no experience with Mac OS X programming, or with programming for the Linux desktop environment.

That leaves me only able to do the NSIS scripting for installing the bitcoin handler on Windows. I haven't tested it, but this oughtta work:

Code:
  DetailPrint "Registering Bitcoin URI Handler"
  DeleteRegKey HKCR "bitcoin"
  WriteRegStr HKCR "bitcoin" "" "URL:bitcoin"
  WriteRegStr HKCR "bitcoin" "URL Protocol" ""
  WriteRegStr HKCR "bitcoin\DefaultIcon" "" "$INSTDIR\bitcoin.exe"
  WriteRegStr HKCR "bitcoin\shell" "" ""
  WriteRegStr HKCR "bitcoin\shell\Open" "" ""
  WriteRegStr HKCR "bitcoin\shell\Open\command" "" "$INSTDIR\bitcoin.exe --protocolhandler=%1"

The "--protocolhandler=%1" bit would need consideration.


Title: Re: Request for Comments: Adopt "bitcoin" as the Bitcoin URI scheme
Post by: konaya on December 07, 2010, 08:05:03 PM
I vote yes to a Bitcoin URI. The only reservation I have is a minor one: are we sure that this economic system will be called "bitcoin" forever? IMHO, for that reason alone a more generic (like "payto:", similar to "mailto:") or for that matter a more obscure (like "x-btc:") URI name would be better.

The MIME type idea is good. Not for describing payment addresses; for that, a MIME type is quite a crappy idea indeed, and a URI scheme is more suitable. But eventually, we will want to develop a simple scripting language for recurring payments (see my other post (http://bitcointalk.org/index.php?topic=55.msg27727#msg27727)), and that would benefit from having its very own MIME type.


Title: Re: Request for Comments: Adopt "bitcoin" as the Bitcoin URI scheme
Post by: ribuck on December 07, 2010, 08:53:54 PM
The only reservation I have is a minor one: are we sure that this economic system will be called "bitcoin" forever?

If the economic system has a different name, then "bitcoin:" will serve as a generic identifier like "mailto:".


Title: Re: Request for Comments: Adopt "bitcoin" as the Bitcoin URI scheme
Post by: konaya on December 08, 2010, 03:57:26 PM
The only reservation I have is a minor one: are we sure that this economic system will be called "bitcoin" forever?

If the economic system has a different name, then "bitcoin:" will serve as a generic identifier like "mailto:".

So wouldn't it be better to have a more generic name on a generic identifier?


Title: Re: Request for Comments: Adopt "bitcoin" as the Bitcoin URI scheme
Post by: ribuck on December 08, 2010, 04:37:54 PM
So wouldn't it be better to have a more generic name on a generic identifier?

What's more generic than bitcoin? Coins represented by digital bits.