Bitcoin Forum
October 16, 2018, 04:35:16 AM *
News: Make sure you are not using versions of Bitcoin Core other than 0.17.0 [Torrent], 0.16.3, 0.15.2, or 0.14.3. More info.
 
   Home   Help Search Donate Login Register  
Pages: [1]
  Print  
Author Topic: How each node discriminate legitimate peers?  (Read 82 times)
wsxdrfv
Newbie
*
Offline Offline

Activity: 266
Merit: 0


View Profile WWW
March 07, 2018, 12:18:18 AM
 #1

Bitcoin is constantly updated, so client also changed.

So lets say there 5 nodes,

A is version 0.1

B is version 0.11

C is version 0.15

D is version 0.16 but changed by local person without bad intention but just small test

E is version 0.16 but changed by local person with bad intention for his profit


So how each nodes can detect D and E and deny them?

What changes is reason for denial? Every change even tiny one like image modification or just add comment to script is also be recognized by other nodes for different revised node?

Then, how A, B, C each other recognize each others are legitimate updated nodes by official?
1539664516
Hero Member
*
Offline Offline

Posts: 1539664516

View Profile Personal Message (Offline)

Ignore
1539664516
Reply with quote  #2

1539664516
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1539664516
Hero Member
*
Offline Offline

Posts: 1539664516

View Profile Personal Message (Offline)

Ignore
1539664516
Reply with quote  #2

1539664516
Report to moderator
DannyHamilton
Legendary
*
Offline Offline

Activity: 2198
Merit: 1381



View Profile
March 07, 2018, 02:11:54 AM
 #2

There are no "legitimate" peers or "not legitimate" peers.

Anybody can make any change they want.  There is no "official" software.

Clients will accept any transactions and any blocks that do not violate the consensus rules. It doesn't matter what software created the transaction or the block.  If a client is connected to a peer and the transactions or blocks from that peer are invalid, then the peer gets disconnected and blocked.  If the transactions or blocks from that peer are valid, then the peer is not disconnected and not blocked.

So, D will never be denied (as long as the small test does not create invalid transactions or blocks), and E will also not be denied until the person creates and sends an invalid transaction or block.

Anti-Cen
Member
**
Offline Offline

Activity: 196
Merit: 25

High fees = low BTC price


View Profile
March 07, 2018, 02:25:23 PM
 #3

Anybody can make any change they want.  There is no "official" software.

I addressed this point but apparently it was deemed off topic and got deleted


Mining is CPU-wars and Intel, AMD like it nearly as much as big oil likes miners wasting electricity. Is this what mankind has come too.
wsxdrfv
Newbie
*
Offline Offline

Activity: 266
Merit: 0


View Profile WWW
March 07, 2018, 11:16:31 PM
 #4

There are no "legitimate" peers or "not legitimate" peers.

Anybody can make any change they want.  There is no "official" software.

Clients will accept any transactions and any blocks that do not violate the consensus rules. It doesn't matter what software created the transaction or the block.  If a client is connected to a peer and the transactions or blocks from that peer are invalid, then the peer gets disconnected and blocked.  If the transactions or blocks from that peer are valid, then the peer is not disconnected and not blocked.

So, D will never be denied (as long as the small test does not create invalid transactions or blocks), and E will also not be denied until the person creates and sends an invalid transaction or block.
Thanks. Then what factors divide "valid" / "invalid" transaction and blocks?
DannyHamilton
Legendary
*
Offline Offline

Activity: 2198
Merit: 1381



View Profile
March 07, 2018, 11:59:43 PM
 #5

Thanks. Then what factors divide "valid" / "invalid" transaction and blocks?

The consensus rules implemented in the client software.

For example...

Any transaction such that the sum of the values of the outputs is greater than the sum of the values of the inputs, is an invalid transaction.
Any transaction such that the outputs being spent by the inputs don't exist, is an invalid transaction.
Any transaction such that the concatenation of the Txin-script and the Txout-script don't resolve successfully, is an invalid transaction.

Any block which contains an invalid transaction, is an invalid block.
Any block which does not result in a hash value that is lower than the difficulty target when hashed with SHA256d, is an invalid block.
Any block which has a timestamp outside the allowed range, is an invalid block.
Any block which pays to large of a block reward, is an invalid block.
Any block that exceeds the block size (or block weight) limits, is an invalid block.
Any block that does not have a previous block hash which matches an existing block in the blockchain, is an invalid block.

I'm sure I'm overlooking some rules, but those are the ones that immediately come to mind.

wsxdrfv
Newbie
*
Offline Offline

Activity: 266
Merit: 0


View Profile WWW
March 08, 2018, 01:05:33 AM
 #6

Thanks. Then what factors divide "valid" / "invalid" transaction and blocks?
I'm sure I'm overlooking some rules, but those are the ones that immediately come to mind.

Thanks, then what if some major group of developers want to change those [consensus]?

Is that become so called Hardfork?
DannyHamilton
Legendary
*
Offline Offline

Activity: 2198
Merit: 1381



View Profile
March 08, 2018, 01:36:39 AM
 #7

Thanks, then what if some major group of developers want to change those consensus?

Is that become so called Hardfork?

If they want to change the rules in a way that old versions of the software will still accept the transactions or blocks, then it is a soft fork.

If they want to change the rules in a way that old versions of the software will NOT accept the transactions or blocks, then it is a hard fork.

For example...

If a block WAS limited to a maximum of 1 megabyte, and the new change limits it to a maximum of a half megabyte, then it is a soft fork. This is because a half megabyte block is still valid to the old software (it is still less than 1 megabyte). Since the blocks that are created by the new software are still accepted by the old software, you only need 50% or more of the hash power to switch to the new rules. Everyone will accept the new blocks, and any miners that create blocks bigger than the new rule will have their blocks rejected.  Since the new rules are run by more than 50% of the hash power, their chain will remain longest, and any chain created by someone with the old software will have their blocks orphaned.

If a block WAS limited to a maximum of 1 megabyte, and the new change limits it to a maximum of a 2 megabytes, then it is a hard fork. This is because a 2 megabyte block is NOT valid to the old software (it is more than 1 megabyte). Since the blocks that are created by the new software are rejected by the old software, you need everyone (miners, peer-nodes, merchants, exchanges, users, etc) to ALL switch to the new rules. If anyone continues to run the old software they will reject every bigger block and will operate on their own chain that does not include any of those blocks.The chain will fork and those running the new software will only see the new bigger blocks while those running the old software will only see the smaller blocks that are created by any miners that don't switch to the new software.




wsxdrfv
Newbie
*
Offline Offline

Activity: 266
Merit: 0


View Profile WWW
March 09, 2018, 09:37:50 PM
 #8

Perfect, then what is 'consensus'? what is not?
Pages: [1]
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!