Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: Mike Hearn on October 07, 2013, 05:07:02 PM



Title: subvers
Post by: Mike Hearn on October 07, 2013, 05:07:02 PM
I modified my node to print out the subVer strings of connecting clients, which it has been doing since the 24th September. Here is the full list of subVers it has seen.

There's no particular point to this post. I just found it interesting and others might too. A few things that jumped out at me:

  • There are some things pretending to be the Satoshi client but aren't. Satoshi:0.8.5 is like this, as is "/Satoshi:0.8.5/" with quotes. Please don't do this. If you're making your own implementation or modifying it, please select an appropriate subVer. Nothing bad will happen.
  • Quite a few people are on old versions of MultiBit or the Android app, although both of them have update alerts. If you're one of these people, please upgrade! Even if there are no new features you want, it's important to keep up with bug fixes and other things in the underlying libraries.
  • blockchain.info is on an old version of bitcoinj - Ben if you see this, please do upgrade once 0.10.2 comes out, it has various important bug fixes over the version you're using.
  • Generally the list is biased towards bitcoinj, but that's probably because clients based on it tend to connect, use the network for a few minutes then disconnect as opposed to holding connections open for a long period of time.
  • Gocoin, libbitcoin, Ufasoft Coin all feature. Neat.
  • Also, Snoopy, Grokked, "Bitcoin Rooster" and btc-dev. Anyone know what these are? I couldn't find any reference to them.
  • SatoshisBukkit seems to be a Minecraft plugin that lets you send money in-game: cool!

Code:
   2115 /BitCoinJ:0.10.1/Bitcoin Wallet:3.21/
   1971 /bitcoin-seeder:0.01/
   1057 /BitCoinJ:0.10.1/MultiBit:0.5.14/
    833 /BitCoinJ:0.10.1/Bitcoin Wallet:3.17/
    543 /BitCoinJ:0.8-SNAPSHOT/DNSSeed:>9000/
    527 /Satoshi:0.8.5/
    524 /Satoshi:0.8.1/
    270 /BitCoinJ:0.9/MultiBit:0.5.13/
    265 /Satoshi:0.8.3/
    210
    162 /BitCoinJ:0.10.1/Bitcoin Wallet:3.19/
    127 /Satoshi:0.8.4/
    106 /BitCoinJ:0.9/Bitcoin Wallet:3.14/
     84 /Satoshi:0.8.2.2/
     73 /BitCoinJ:0.9/MultiBit:0.5.12/
     57 /Satoshi:0.8.0/
     49 /btc-dev:0.1/
     38 /Satoshi:0.7.2/
     37 /BitCoinJ:0.8/Bitcoin Wallet:3.04/
     35 /BitCoinJ:0.8/Bitcoin Wallet:3.08/
     31 Satoshi:0.8.5
     30 /BitCoinJ:0.9/Bitcoin Wallet:3.13/
     30 /BitCoinJ:0.8/MultiBit:0.5.9/
     30 /BitCoinJ:0.8/MultiBit:0.5.11/
     27 /BitCoinJ:0.9/Bitcoin Wallet:3.11/
     25 /BitCoinJ:0.8/Bitcoin Wallet:3.01/
     22 /BitcoinJS:0.2.8/
     22 /BitCoinJ:0.10/Bitcoin Wallet:3.16/
     21 /Satoshi:0.7.1/
     19 /BitCoinJ:0.8/Bitcoin Wallet:3.06/
     18 /BitCoinJ:0.6.1/
     18 /BitCoinJ:0.10/Bitcoin Wallet:3.15/
     16 /Satoshi:0.6.3/
     15 /BitCoinJ:0.5.1/MultiBit:0.4.2/
     15 "/Satoshi:0.8.5/"
     14 /BitCoinJ:0.9/Bitcoin Wallet:3.09/
     13 /Satoshi:0.8.99/
     11 /BitCoinJ:0.8/MultiBit:0.5.10/
      9 /BitCoinJ:0.8-SNAPSHOT/Blockchain:3.6/
      8 /BitCoinJ:0.8-SNAPSHOT/Blockchain:3.58/
      8 /BitCoinJ:0.11-SNAPSHOT/
      8 /BitCoinJ:0.10/ubc.Ubc:1.0/
      7 /BitCoinJ:0.8/Bitcoin Wallet:3.03/
      7 /BitCoinJ:0.10.1/Bitcoin Wallet:3.18/
      6 /Satoshi:0.7.0.3/
      6 /BitCoinJ:0.7.3/Bitcoin Wallet:2.48/
      5 /Satoshi:0.8.5/Grokked:1.02/
      5 /BitCoinJ:0.8/Bitcoin Wallet:3.05/
      5 /BitCoinJ:0.8/Bitcoin Rooster:0.0.2/
      5 /BitCoinJ:0.7.3/MultiBit:0.4.23/
      4 /Ufasoft Coin:0.58/
      4 /Satoshi:0.8.4/Grokked:1.02/
      4 /BitCoinJ:0.9/Bitcoin Wallet:1.0.0/
      3 /Ufasoft Coin:0.74/
      3 /BitCoinJ:0.10/SatoshisBukkit:0.2/
      2 /Satoshi:0.6.2.2/
      2 /Satoshi:0.6.0.6/
      2 /BitCoinJ:0.9/Bitcoin Wallet:3.12/
      2 /BitCoinJ:0.9-SNAPSHOT/Bitcoin Wallet:3.08-bitcoinj0.9/
      2 /BitCoinJ:0.8/TestService:1.0/
      2 /BitCoinJ:0.8/Bitcoin Wallet:3.02/
      2 /BitCoinJ:0.10.1/Bitcoin Wallet:3.17-blackberry/
      2 /BitCoinJ:0.10-SNAPSHOT/Bitcoin Wallet:3.14-bitcoinj0.10/
      1 /libbitcoin:1.0.10/
      1 /Ufasoft Coin:0.72/
      1 /Snoopy:0.1/
      1 /Satoshi:0.8.99/next-test:20130721/
      1 /Satoshi:0.8.2/
      1 /Satoshi:0.7.0.99/
      1 /Satoshi:0.6.2/
      1 /Gocoin:0.7.7/
      1 /Gocoin:0.7.6/
      1 /BitCoinJ:0.8/Bitcoin Wallet:3.08-blackberry/
      1 /BitCoinJ:0.8/Bitcoin Wallet:3.07/
      1 /BitCoinJ:0.7/MultiBit:0.4.21/
      1 /BitCoinJ:0.7/Bitcoin Wallet:2.40-blackberry/
      1 /BitCoinJ:0.7.3/Bitcoin Wallet:2.49/
      1 /BitCoinJ:0.7.1/MultiBit:0.4.22/
      1 /BitCoinJ:0.6/Bitcoin Wallet:2.33/
      1 /BitCoinJ:0.10/
      1 /BitCoinJ:0.10-SNAPSHOT/SendCoinService:1.0/
      1 /BQS:0.0.1/


Title: Re: subvers
Post by: Andreas Schildbach on October 08, 2013, 01:32:33 PM
Very cool, thanks for the statistics!

BitcoinJ is still using the old camelcase spelling.


Title: Re: subvers
Post by: Mike Hearn on October 08, 2013, 02:14:14 PM
I deliberately never changed that in case some people had software that was matching on the prefix in a case sensitive manner. It's not worth breaking such code just for aesthetic reasons.


Title: Re: subvers
Post by: Andreas Schildbach on October 08, 2013, 02:53:08 PM
Fair enough. It just reminds me of the HTTP "Referer" (-:


Title: Re: subvers
Post by: Mike Hearn on October 08, 2013, 03:01:17 PM
Right :) The joy of using strings as computer-meaningful identifiers. Oh well.