Bitcoin Forum
May 08, 2024, 10:00:01 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: Question about bitcoin nodes  (Read 1529 times)
redigaffi (OP)
Member
**
Offline Offline

Activity: 142
Merit: 13


View Profile
June 27, 2017, 07:46:06 AM
 #1

Hello people,

i have a question, so in theory in there is no "central node" or "central server" where all transaction go through.

When a transaction is created, it will broadcast through all bitcoin users, right?

but without a central server, how can this transaction know what clients are available to go through? should there not something like a masternode with a list of all people using bitcoins?

Thanks!!

Earn Money With Skill while having fun, Answer this 6 questions and get a bonus when the project get's launched:

https://docs.google.com/forms/d/e/1FAIpQLSdCRubC4wu4seHYdDqiZDFsXizqaViUnOtE5sZcx3spjGc84A/viewform
1715162401
Hero Member
*
Offline Offline

Posts: 1715162401

View Profile Personal Message (Offline)

Ignore
1715162401
Reply with quote  #2

1715162401
Report to moderator
1715162401
Hero Member
*
Offline Offline

Posts: 1715162401

View Profile Personal Message (Offline)

Ignore
1715162401
Reply with quote  #2

1715162401
Report to moderator
"With e-currency based on cryptographic proof, without the need to trust a third party middleman, money can be secure and transactions effortless." -- Satoshi
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1715162401
Hero Member
*
Offline Offline

Posts: 1715162401

View Profile Personal Message (Offline)

Ignore
1715162401
Reply with quote  #2

1715162401
Report to moderator
1715162401
Hero Member
*
Offline Offline

Posts: 1715162401

View Profile Personal Message (Offline)

Ignore
1715162401
Reply with quote  #2

1715162401
Report to moderator
1715162401
Hero Member
*
Offline Offline

Posts: 1715162401

View Profile Personal Message (Offline)

Ignore
1715162401
Reply with quote  #2

1715162401
Report to moderator
achow101
Moderator
Legendary
*
expert
Offline Offline

Activity: 3388
Merit: 6631


Just writing some code


View Profile WWW
June 27, 2017, 07:50:32 AM
 #2

When a transaction is broadcast, your node sends the transaction to all of the nodes that it is connected to. Then those nodes will send the transaction to all of the nodes that they are connected to. And so on and so forth until every node has heard the transaction. Your node is not actually broadcasting the transaction to everyone.

redigaffi (OP)
Member
**
Offline Offline

Activity: 142
Merit: 13


View Profile
June 27, 2017, 07:57:04 AM
 #3

When a transaction is broadcast, your node sends the transaction to all of the nodes that it is connected to. Then those nodes will send the transaction to all of the nodes that they are connected to. And so on and so forth until every node has heard the transaction. Your node is not actually broadcasting the transaction to everyone.

Hey Thanks,

but to whom get i connected?

To a central node? or to other peopple?

And for example, at the beggining of using bitcoins, when i download a wallet it should connect somewhere to get a list of nodes, right? a masternode or central server?

If not how do i get
"all of the nodes that it is connected to" ?

Earn Money With Skill while having fun, Answer this 6 questions and get a bonus when the project get's launched:

https://docs.google.com/forms/d/e/1FAIpQLSdCRubC4wu4seHYdDqiZDFsXizqaViUnOtE5sZcx3spjGc84A/viewform
achow101
Moderator
Legendary
*
expert
Offline Offline

Activity: 3388
Merit: 6631


Just writing some code


View Profile WWW
June 27, 2017, 08:13:26 AM
 #4

Hey Thanks,

but to whom get i connected?

To a central node? or to other peopple?

And for example, at the beggining of using bitcoins, when i download a wallet it should connect somewhere to get a list of nodes, right? a masternode or central server?

If not how do i get
"all of the nodes that it is connected to" ?
Peer discovery (the process of finding nodes to connect to) is a fairly complicated process.

When a new node starts up, it first connects to multiple DNS servers. These servers (there are 6 of them all run by different people) will provide the node with a couple of IP addresses for it to try to connect to. Those DNS servers are not necessarily nodes and do not provide a definitive list of all nodes on the network. They just operate crawlers which gather the IP addresses for many Bitcoin nodes.

If the DNS servers are unavailable, there is also a hard coded list of ~1000 nodes which the node software will go through to find connections. That list of nodes is gathered from the DNS servers by going through the list of all nodes that the server knows about and picking those nodes with the highest uptime.

Once a node has a connection to another node, it will begin building a database of available nodes. This is done by asking each node that it is connected to for a list of IP addresses that those nodes know about. That list is then added to a local database. From then on, every time the node starts, it will first go through its database of nodes trying to find some to connect to.

Lastly, a node may not necessarily use the IP addresses sent by the DNS seeders except for maybe 1 or 2 connections. This is because it will receive the IP addresses of other nodes from the first couple of connections and can then use that information to establish connections to other nodes which the DNS seeder did not give out.

redigaffi (OP)
Member
**
Offline Offline

Activity: 142
Merit: 13


View Profile
June 27, 2017, 08:43:53 AM
Merited by ABCbits (1)
 #5

      Ohh, thank you. So basically:
      when a new node connects, it connects to a "master list server" (or many), requesting nodes, this will return a node list with many nodes? or one?
      Then the transaction will broadcast to another node, and than this another node broadcast this transaction to other, and so on, right?
    
      And how many times a transaction go through nodes?
      And who updates this "master list server", everytime a new node connects there the "master server list" saves it as a new node?

Thank you very much!!

Earn Money With Skill while having fun, Answer this 6 questions and get a bonus when the project get's launched:

https://docs.google.com/forms/d/e/1FAIpQLSdCRubC4wu4seHYdDqiZDFsXizqaViUnOtE5sZcx3spjGc84A/viewform
achow101
Moderator
Legendary
*
expert
Offline Offline

Activity: 3388
Merit: 6631


Just writing some code


View Profile WWW
June 27, 2017, 04:55:08 PM
 #6

Ohh, thank you. So basically:
when a new node connects, it connects to a "master list server" (or many), requesting nodes, this will return a node list with many nodes? or one?
It is a list with a couple of nodes. IIRC it's something like 5 or 6 nodes.

Then the transaction will broadcast to another node, and than this another node broadcast this transaction to other, and so on, right?
Yes.    

And how many times a transaction go through nodes?
It goes through once. Each node will only broadcast the transaction once. This means that if a new node join the network after a transaction has been broadcast to all nodes, they won't receive the transaction until it is confirmed.

And who updates this "master list server", everytime a new node connects there the "master server list" saves it as a new node?
I'm not sure how often the DNS seeders are updated, but IIRC they use a bot (each server has its own bot) to connect to nodes, request some IP addresses from them, and connect to those and repeat. This way they can tell who is still online and build up a large list of potential node IP addresses.

redigaffi (OP)
Member
**
Offline Offline

Activity: 142
Merit: 13


View Profile
June 27, 2017, 05:42:36 PM
 #7

So, let me clarify, a node = blockchain, right?

And, blockchain = where all the balances of the users lives and all the transactions

So what i understand is, that a node can only be connected to a node, not to many? If i had 4 nodes, A, B, C, D, it would look like this:

A->B->C->D , or can a node be connected to more nodes? like this:

A->B
A->D
B->D
B->C

Then for example, if i would create a cryptocurrency, and i only have a node A, i could modify all balances and transactions? because there is only one blockchain, right?

And if another person runs a node B, this node would download the blockchain data from node B, and if i again modify a transaction or balance it would check this in node A and node B and it see that this transaction is incorrect and would not verify it, right?

And if another node C gets connected, would it download the blockchain from A and B? or only from one of the 2, or from A ?

Also, if i have for example 500 nodes, the transaction would go through all 500 nodes to check this transaction right?

And i only 1 node is available this transaction would go only through 1 node?

So if i have only 1 node i could edit all the data and fake all?

So in teory, if i only had one node, this would be the master node untill more nodes will be connecte, right ?

And between, in which point would enter the miner? I imagine before replicating each the transaction in each node (Blockchain) right?

Thank you very much !!


Earn Money With Skill while having fun, Answer this 6 questions and get a bonus when the project get's launched:

https://docs.google.com/forms/d/e/1FAIpQLSdCRubC4wu4seHYdDqiZDFsXizqaViUnOtE5sZcx3spjGc84A/viewform
achow101
Moderator
Legendary
*
expert
Offline Offline

Activity: 3388
Merit: 6631


Just writing some code


View Profile WWW
June 27, 2017, 08:21:02 PM
 #8

So, let me clarify, a node = blockchain, right?
No. A node is a computer that is connected to other computers and sends and receives data to those other computers. All nodes on the Bitcoin network use the same blockchain.

And, blockchain = where all the balances of the users lives and all the transactions
Yes.

So what i understand is, that a node can only be connected to a node, not to many? If i had 4 nodes, A, B, C, D, it would look like this:

A->B->C->D , or can a node be connected to more nodes? like this:

A->B
A->D
B->D
B->C
A node can connect to many nodes simultaneously.

redigaffi (OP)
Member
**
Offline Offline

Activity: 142
Merit: 13


View Profile
June 28, 2017, 06:16:02 AM
 #9

So, there is only 1 Blockchain, and all nodes connect to this?

I thought that every node download a copy of the blockchain

Earn Money With Skill while having fun, Answer this 6 questions and get a bonus when the project get's launched:

https://docs.google.com/forms/d/e/1FAIpQLSdCRubC4wu4seHYdDqiZDFsXizqaViUnOtE5sZcx3spjGc84A/viewform
achow101
Moderator
Legendary
*
expert
Offline Offline

Activity: 3388
Merit: 6631


Just writing some code


View Profile WWW
June 28, 2017, 06:53:39 AM
 #10

So, there is only 1 Blockchain, and all nodes connect to this?
The blockchain is not something that nodes connect to.

I thought that every node download a copy of the blockchain
Yes, every node downloads a copy of the same blockchain. Everyone's copy of the blockchain updates basically at the same time as they receive new blocks. Blocks are transmitted in the same way that transactions are.

When a node downloads the blockchain, it does not do so from a central server either. Once it establishes connections to other nodes, it begins requesting blocks from all of the nodes that it is connected. When it receives a block, it will validate each block according to the built in consensus rules before it accepts the block. If conflicting blocks are received, the node will choose the block that corresponds to the blockchain with the most work.

redigaffi (OP)
Member
**
Offline Offline

Activity: 142
Merit: 13


View Profile
June 28, 2017, 08:03:36 AM
 #11

So, then every node has it's own blockchain attached, right?

So, what would happen if only one node is available? I could modify all and fake all, right?

And what would happen in this scenario: there are 3 nodes:
A, B ,C

I modify the same transaction in A and B, faking it, what would happen in the C node?

And other scenario:

An transaction ("block") comes with an id, which is an increment of the last block, what would happen if 2 nodes emit the same block with the same ip, a 2 transactions made in the same time?

Thank you very much!

Earn Money With Skill while having fun, Answer this 6 questions and get a bonus when the project get's launched:

https://docs.google.com/forms/d/e/1FAIpQLSdCRubC4wu4seHYdDqiZDFsXizqaViUnOtE5sZcx3spjGc84A/viewform
ranochigo
Legendary
*
Offline Offline

Activity: 2968
Merit: 4168



View Profile
June 28, 2017, 09:16:19 AM
Last edit: June 28, 2017, 10:33:44 AM by ranochigo
Merited by ABCbits (1)
 #12

So, then every node has it's own blockchain attached, right?
Yes.
So, what would happen if only one node is available? I could modify all and fake all, right?
Modify what? If you are in control of every node in the network, you cannot modify the blockchain easily. Clients do not trust what your nodes are saying. You have to get at least 51% of the network hash to modify your OWN previous transactions after the checkpoint. You cannot change anyone's balance. Read my response below.
And what would happen in this scenario: there are 3 nodes:
A, B ,C

I modify the same transaction in A and B, faking it, what would happen in the C node?
Huh? Can you elaborate?
And other scenario:

An transaction ("block") comes with an id, which is an increment of the last block, what would happen if 2 nodes emit the same block with the same ip, a 2 transactions made in the same time?

Thank you very much!

The network will temporarily be split into half. Lets say block A and block B have the same block height and similar transactions inside.

The block will be propagated throughout the network and miners will start working on whichever block they see first. If I am a miner and I saw Block A first, I'll start working on it. If I mine Block A1 based on Block A, the network will recognise Block A1 and Block A as the valid block in the mainchain and will orphan the other block. If someone else mines Block B1 that is based on Block B, the network will recognise Block B1 and Block B as the valid block in the main chain and orphan the other block. The other block will be forgotten.

Bitcoin blocks doesn't come with an ID. They have the merkle root which has the hash of the previous block. If Block A and Block B have the same hash of the previous block in the merkle root, the above will happen.

.
.HUGE.
▄██████████▄▄
▄█████████████████▄
▄█████████████████████▄
▄███████████████████████▄
▄█████████████████████████▄
███████▌██▌▐██▐██▐████▄███
████▐██▐████▌██▌██▌██▌██
█████▀███▀███▀▐██▐██▐█████

▀█████████████████████████▀

▀███████████████████████▀

▀█████████████████████▀

▀█████████████████▀

▀██████████▀▀
█▀▀▀▀











█▄▄▄▄
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
.
CASINSPORTSBOOK
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀▀█











▄▄▄▄█
redigaffi (OP)
Member
**
Offline Offline

Activity: 142
Merit: 13


View Profile
June 28, 2017, 09:30:30 AM
 #13

Thank you very much.

But i mean, if i would develop a cryptocurrencie, and only one node is available, what would happen if i modify the data in that blockchain?
if onlye one is available?

Earn Money With Skill while having fun, Answer this 6 questions and get a bonus when the project get's launched:

https://docs.google.com/forms/d/e/1FAIpQLSdCRubC4wu4seHYdDqiZDFsXizqaViUnOtE5sZcx3spjGc84A/viewform
ranochigo
Legendary
*
Offline Offline

Activity: 2968
Merit: 4168



View Profile
June 28, 2017, 10:32:34 AM
Merited by ABCbits (1)
 #14

Thank you very much.

But i mean, if i would develop a cryptocurrencie, and only one node is available, what would happen if i modify the data in that blockchain?
if onlye one is available?
You will need 51% of the mining hashrate to modify the past blocks. A block has to be valid for the client to add it into their own copy of Blockchain.

Anyways, if you were to delete half of the blockchain, half of the transaction will be gone. If the blocks are missing, the transaction history will also be missing. Since you are the only person that has a copy of the Blockchain, you can easily delete the blocks and transaction history will be gone. Take note that this will only work if you are deleting the last X block, not blocks in the middle. If the blocks in the middle are missing, everything after that will also be invalid.

No, you still cannot steal coins from others if you are the sole owner of the Blockchain.

.
.HUGE.
▄██████████▄▄
▄█████████████████▄
▄█████████████████████▄
▄███████████████████████▄
▄█████████████████████████▄
███████▌██▌▐██▐██▐████▄███
████▐██▐████▌██▌██▌██▌██
█████▀███▀███▀▐██▐██▐█████

▀█████████████████████████▀

▀███████████████████████▀

▀█████████████████████▀

▀█████████████████▀

▀██████████▀▀
█▀▀▀▀











█▄▄▄▄
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
.
CASINSPORTSBOOK
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀▀█











▄▄▄▄█
redigaffi (OP)
Member
**
Offline Offline

Activity: 142
Merit: 13


View Profile
June 28, 2017, 11:18:27 AM
 #15

It's not my intention, i just want to view different "angles" because it's a hard concept and i can't really imagina this "decentralized" money system, in reality, the first node would be the master node,  also the "central" server, atleast for the next nodes.

Earn Money With Skill while having fun, Answer this 6 questions and get a bonus when the project get's launched:

https://docs.google.com/forms/d/e/1FAIpQLSdCRubC4wu4seHYdDqiZDFsXizqaViUnOtE5sZcx3spjGc84A/viewform
DannyHamilton
Legendary
*
Offline Offline

Activity: 3388
Merit: 4653



View Profile
June 28, 2017, 12:34:06 PM
Merited by ABCbits (4)
 #16

It's not my intention, i just want to view different "angles" because it's a hard concept and i can't really imagina this "decentralized" money system, in reality, the first node would be the master node,  also the "central" server, atleast for the next nodes.

The first node won't be a "master node", it will be the ONLY node.

The first node is only a "central server" for the second node, and it is only the "central server" until the second node has a full copy of the existing blockchain.  Once it has the blockchain the second node can start mining, and if it does then the first node and the second node will be equal peers.  Neither will be "master".

Every "full node" has its own copy of the blockchain.

There are no balances in the blockchain, ONLY transactions (and a header for each block).

You are also missing the purpose of mining.

A node that is not mining new blocks cannot modify anything in the blockchain, it can only receive new blocks (and transactions) from peers, check if those blocks (and transactions) are valid, add the valid blocks to its own copy of the blockchain (and share those blocks and transactions with other peers).

Each full node downloads and stores an entire copy of the blockchain from its peers.

If you create a new bitcoin-like currency, and you are the only one that knows about it, then you can start mining and create a blockchain.  You can send transactions to yourself, and you can send transactions to burn-addresses.  You can NOT send transactions to anybody else, since nobody else is using your system yet.  If you don't like some of the blocks you have mined, you can start at the most recently mined block and delete blocks working backwards until you get to the most recent block that you want to keep.  Then you can mine new replacement blocks and just never tell anybody about the previously mined blocks.

Once you have at least 1 peer, and you have shared your current copy of the blockchain with them it becomes more difficult to modify the history in the blockchain.  This is because your peer will refuse to accept any modified blocks that you create unless/until you mine enough blocks to exceed the total proof-of-work that the peer already has.

If peers start mining, it will become MUCH more difficult for you to modify the history in the blockchain.  The is because the blockchain that your peers already have will be growing while you are trying to modify your copy.  You will be chasing a moving target when it comes to total proof-of-work of the blockchain.

If the sum of the hash power of all the mining peers exceeds your personal hash power, then it will become impossible for you to modify the history in the blockchain.  The is because the blockchain that your peers already have will be growing faster than you can grow your copy.  You will be chasing a moving target when it comes to total proof-of-work of the blockchain. And that target will be moving faster than you.  You wion't be able to catch up.

Nodes that aren't mining will check to make sure that a transaction is valid before they relay it to any peers.  They will also check to make sure that a block is valid and is built on top of the greatest proof-of-work chain before they add it to their own blockchain or relay it to any peers. As such, a node with a huge amount of hash power will not be able to force the network of nodes to accept invalid transactions or invalid blocks.

Modifying a transaction that is NOT yet in the blockchain would require you to get enough hash power to accept that replacement transaction such that the next block mined includes the replacement transaction instead of the original.

Modifying a transaction that IS in the blockchain would require that you to get enough hash power to replace (re-mine) EVERY block that has been created after that original transaction was included in the blockchain.  You would have to exceed the total proof-of-work of the blockchain that everyone else is using, And if you are not the only miner, then you'd have to exceed that blockchain as it is still growing.

The number of nodes that have modified blockchains doesn't matter.  Only the validity of that chain and its total proof-of-work.

In your example where you just "modify the same transaction in A and B, faking it", the C node would refuse to accept your modified blockchain, either because the block wouldn't be valid, or because your blockchain would have less proof-of-work than the blockchain that C already has.

redigaffi (OP)
Member
**
Offline Offline

Activity: 142
Merit: 13


View Profile
June 28, 2017, 06:02:23 PM
 #17

Hey, thanks all for the help.

And what type of blocks are available?  i though the only "block" is a transaction of bitcoins (?)

recently i've seen an implementation of a blockchain with nodejs, called naiveChain, my question is that the class block haven't any btc input and ouputs, why? what different types of blocks are there?

https://github.com/lhartikk/naivechain/blob/master/main.js

Between, a "full node" doens't mine or does it?

Earn Money With Skill while having fun, Answer this 6 questions and get a bonus when the project get's launched:

https://docs.google.com/forms/d/e/1FAIpQLSdCRubC4wu4seHYdDqiZDFsXizqaViUnOtE5sZcx3spjGc84A/viewform
achow101
Moderator
Legendary
*
expert
Offline Offline

Activity: 3388
Merit: 6631


Just writing some code


View Profile WWW
June 28, 2017, 06:10:48 PM
 #18

Hey, thanks all for the help.

And what type of blocks are available?  i though the only "block" is a transaction of bitcoins (?)
In Bitcoin, there is only one type of block. Blocks are a collection of transactions, not a transaction themselves.

DannyHamilton
Legendary
*
Offline Offline

Activity: 3388
Merit: 4653



View Profile
June 28, 2017, 06:25:17 PM
Merited by ABCbits (2)
 #19

Hey, thanks all for the help.

And what type of blocks are available?  i though the only "block" is a transaction of bitcoins (?)

recently i've seen an implementation of a blockchain with nodejs, called naiveChain, my question is that the class block haven't any btc input and ouputs, why? what different types of blocks are there?

In Bitcoin, a block is a set of one or more valid transactions with an 80 byte header.

The header consists of:
  • Version number (4 bytes)
  • Hash of the previous block in the chain (32 bytes)
  • Merkle root of the list of transactions (32 bytes)
  • Timestamp (4 bytes)
  • Difficulty target (4 bytes)
  • Nonce (4 bytes)

Between, a "full node" doens't mine or does it?

It is possible to be a full node on the peer-to-peer network without mining.  In that case you:
  • Receive transactions
  • Receive blocks
  • Check the validity of transactions
  • Check the validity of blocks
  • Store blocks locally to provide to peer nodes on request
  • Relay transactions to the peer nodes you are connected to
  • Relay blocks to the peer nodes you are connected to
  • Maintain a list if IP addresses of nodes on the network that you have either connected to or hear about from peer nodes

If you are solo-mining (the only way to mine originally), then you need to have a full node so that you can receive transactions, blocks, and build valid blocks.

Mining is now commonly broken into two parts.  A mining pool that is running a full node builds blocks of transactions and the associated header, then the pool sends the block header to participants that do the hash work on the header to find a valid nonce.  The hashing participants don't need to have a full node.  The mining pool is effectively just renting the hash power from the hashing participants.
redigaffi (OP)
Member
**
Offline Offline

Activity: 142
Merit: 13


View Profile
June 29, 2017, 01:09:32 PM
 #20

Thank you, i think i'm better understanding now.

So, if i made a transaction, send it to a node, this node checks if the transaction is correct, and broadcast it to other nodes, right?

And in which moments the miner comes in? Should the miner not mine it first before a node broadcast this transaction?

How do the miner know that there is a new block? is the miner connected to all nodes?

Earn Money With Skill while having fun, Answer this 6 questions and get a bonus when the project get's launched:

https://docs.google.com/forms/d/e/1FAIpQLSdCRubC4wu4seHYdDqiZDFsXizqaViUnOtE5sZcx3spjGc84A/viewform
Pages: [1] 2 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!