-
Notifications
You must be signed in to change notification settings - Fork 38.7k
Implement BIP 14 : separate protocol version from client version #707
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
IMO, CLIENT_NAME should not vary if/if-not GUI. It's the same network logic. If a problem arises where other network peers must test for a problematic bug, they have twice as many CLIENT_NAMEs to check for one bug. Might be a privacy issue too? Gives attackers obvious server-or-client decision point. |
|
CLIENT_NAME is now always "bitcoin-qt" |
Implement BIP 14 : separate protocol version from client version
Implement BIP 14 : separate protocol version from client version
|
NACK :) It's a great idea when there is only one development team for bitcoin, but in the future I expect to see multiple development teams as part of bitcoin's decentralization, and then there will need to be a more non-linear to nodes communicating their capabilities. Does BIP 9 not already provide the functionality this is hoping to achieve? |
|
@rebroad Uh, what are you talking about/doing? This is a change that was made and merged in 2011, and does the opposite of what you seem to be thinking it does... |
|
@luke-jr Yes, I realise this is a very old one hence the smiley, but it seems that with various other bitcoin nodes out there, for example, Unlimited are using Protocol Version >80000, which means that Core will assume it provides services such as compact blocks, SegWit, etc when it does not. I am thinking that the PROTOCOL_VERSION ought not to be relied upon as developers are moving away from it for reasons that need to be better understood. I suspect those reasons are that it doesn't suit multiple development teams as it enforces a level of linearity (i.e. all developers are expected to provide functionality before they can bump their version number) but not on a "level playing field". I.e. some developers might not want to add SegWit, but might want to add XThin - what should the protocol version be in that scenario? |
|
Add clientversion.h to guiutil.cpp
…end amount message 9add5a8 Fix feature_pak.py in light of bitcoin#706 (Gregory Sanders) 817ebcd sendtomainchain_pak: Fix minimum send amount message (Gregory Sanders) Pull request description: backport of bitcoin#706 Tree-SHA512: a1f16636210eb28c221a442c113a609da906079b3688dc1dc53e33d0409096638a48036032ba7349257a4d599342272df40dd9335bbc9ac1008c439602a94f8a
Fixing some typos
This replaces VERSION with PROTOCOL_VERSION (defined in serialize.h) and CLIENT_VERSION (defined in main.h).
I also define CLIENT_NAME as either "bitcoind" or "bitcoin-qt" in main.h.
The getinfo() RPC command returns CLIENT_VERSION as "version" (same as before) and PROTOCOL_VERSION as "protocolversion" (new).
CLIENT_VERSION is recorded in the wallet.dat as "version".
And PROTOCOL_VERSION is used for all the network serialization stuff.
There is a TODO here related to the CAlert feature, but doing it will require more thought/work. And I've got another change to CAlert (give testnet its own alert keypair) that'll be a good time to change it.
I decided against new command-line arguments / bitcoin.conf options to make it really easy to override the CLIENT_NAME or CLIENT_VERSION reported to peers; those would be easy-to-add-later features.