5 ms·
I have read the whitepaper and followed discussions about the protocol for quite some time, but never looked into the actual software landscape. Bitcoin Core i
by TekMol 3y ago
I have read the whitepaper and followed discussions about the protocol for quite some time, but never looked into the actual software landscape.
Bitcoin Core is a "Node", right? A software you run if you want to have the whole history of all Bitcoin transactions of your own hard drive? Therefore I would think it is only used by researchers and analysts?
- seniorivn 3y agoisnt it necessary to run full node to mine bitcoin?
- eru 3y agoAt least one party in a mining pool has to do so, I guess, but not everyone (nor every computing device) who participates.
- BenoitP 3y agoYou want to be mining at the tip of the blockchain, otherwise you risk losing the block you're mining as others will not include its digest in their header (and not base the blockchain through your block. it'd be just a leaf in the chain). So you need at least to be aware of the latest blocks. I believe this is achievable with client only. You'd get the block reward, but not the fees. If you want the fees, you need to be aware of potential transactions; and also verify that these are valid (at pain of seeing your block be seen as invalid). So you need to receive that information. Also if you want to publish a block you found, you need to not only listen to information but also publish it to others as well. So yeah, you kind of need to run an up-to-date full node to get both reward and fee. Now, this does not mean that your miners need to be full nodes. These only need the block to be mined (digest of previous block, header, transactions, your public address to giver the reward to) and then they can vary the nonce at the end to start mining. But this block information has to be up quite to date, otherwise you're mining aimlessly. I've read that while switching to a new block, miner setups send block data empty of transactions to be mined: so as not to waste the few tenths of seconds it takes to upload new block data to miners. So you can run an operation with a single central full node that sends blocks to individual miner devices.
- beaned 3y agoIt's run by anyone who wants to support the consensus mechanism with more decentralization. I run it on my laptop.
- TekMol 3y agoI have read that before, that nodes are a force in keeping the Bitcoin ecosystem stick to the rules. But I never understood it. What does running a node on your laptop achieve? If two parties out there agree to call some roll of toilet paper a "Bitcoin", how will your laptop stop them from doing so? One of the two will hand the other one the roll, the other one will say "Thanks for the Bitcoin" and thats it, right? Why would they send TCP/IP packets to your laptop and ask for permission?
- figassis 3y agoYou can call an avocado a Dollar, and someone might accept exchanging it for an actual dollar, but try to walk into a shop and pay for your beer with that. That’s what consensus is for.
- deleted 3y ago[deleted]
- rivosto 3y agoIt is only when receiving money you can affect the validity of that payment, you can refuse to send them the alpaca socks they "paid" for using invalid address outputs.
- TekMol 3y agoThat makes sense. When you accept Bitcoin payments and run your own node, you vote for the rules that your own node enforces. But to me it looks like people think just running a node is like voting for the rules on that node. Even if you do not do any business.
- imtringued 3y ago>Therefore I would think it is only used by researchers and analysts? The idea is that every single user, even Grandma buying groceries, has a full copy of the Blockchain to buy her groceries. So no, it is supposed to be used by everyone. This is the reason why the block size is kept small. If it grows too big it is no longer decentralised.
- cedilla 3y agoHow is the block size relevant for that? Grandma won't carry around half a terabyte of block chain, and it doesn't help that the blocks are tiny at all.
- tromp 3y agoOnce you've verified the half TB tx history, you can stop carrying it around and just keep the much smaller and fully verified UTXO set of spendable coins, which is all you need to verify future blocks.
- npoc 3y agoIf the block size was made substantially bigger, you'd begin to need very expensive equipment to be able to verify transactions yourself. Grandma is probably able to trust her grandchildren's nodes, but with bigger blocks her grandchildren wouldn't be able to afford a node and would have to trust someone else (who is rich) and the definition of the network would become more and more centralised amongst the richest as the size of the block chain grew exponentially faster than the £/HW is reducing.
- npoc 3y agoYour node (or the node you choose to connect to) defines what is bitcoin, according to you. Everyone gets a vote on what bitcoin is, but the definition of bitcoin that you vote for is that defined by the code running on the node you choose to connect to the network through. Running your own node let's you speak for yourself. If you connect to someone else's node you're effectively saying "I vote for whatever they're voting for". The two parties calling toilet roll "bitcoin", are not actually using the bitcoin network. They're using the "toilet roll" network and simply calling it bitcoin. Their transaction would not appear on my node, or the vast majority of any other bitcoin nodes and therefore it's not bitcoin by consensus. If you don't run your own node, you're trusting that the node you're connecting to isn't actually running the "toilet roll" network and you didn't just sell your car for a 6 pack of Andrex. With Bitcoin you never have to trust - you are always able to (and encouraged to) verify, and this is what running your own node allows: verification, with no trust required.
- TekMol 3y agoThe way I understand it: If another person's node connects to your node, your node can stop relaying certain blocks to them. And if everybody stops relaying those blocks to them, then those blocks will not reach them. So in a way, your node can do something a bit similar to "voting" in this situation. But does a node on a lonely notebook have any real world impact? Do actors who accept Bitcoin payments connect to random nodes? If so, what prevents someone from running one million nodes on a single laptop and "encircle" such an actor? There is no proof of work involved in running a node, right? So what gives a node any meaning or voting rights?
- npoc 3y agoIf someone some how manages to encircle your node with a million of their own (i.e. your node is only connected to theirs) then what are they going to do? If they try to filter blocks or tamper with blocks then your node will detect that and disconnect from them. Ultimately, your node is hard coded with a list of IP addresses, so that if all else fails when trying to obtain good connections with other node (DNS etc) then it can connect to those. Regarding the impact of a single node on the network, that node is a way that _you_ can vote on what bitcoin is. You could equally shut it down and vote by connecting through someone else's node, but then you'd be trusting that their node defines bitcoin the way you want to. In other words, the people decide what bitcoin is, not individual nodes, but the nodes that people connect through define what they are voting for. If you want to be _sure_ that your vote isn't being misdirected, that what the node is reporting as bitcoin really is bitcoin then connect to the network through your own node.