Show Posts
|
Pages: [1] 2 3 4 5 »
|
1. When a Client wants to send a Transaction ( Make payment ), how it knows the IP Address of the Network to which it has to send. Is there any DNS Server managed? The Bitcoin Network is a peer-to-peer (P2P) network. Any client or node in the network can be connected to any number of other nodes. They (in principle) all relay transactions, so just being connected to 1 is enough. That said, if you are just starting your client for the very first time after downloading it, how do you find that first contact in the network? This "bootstrap problem" is common to all decentralized networks. The solution chosen for the main Bitcoin client is simply to hardcode the address of a server (technically an IRC server where other nodes join, backed up by a hardcoded list of "known good" nodes). 2. Where the transacation are stored before they are included in a Block. The transactions are stored in the memory pools of the miners who are trying to complete the next block of the block chain. Most bitcoin clients will also resend the transaction if it isn't included for some reason. 3. How and where the nodes can check the Transactions which have to be included in the Block No transaction HAS to be included in a block. The miners are free to chose which transactions they want to include and which they don't. As for validating a transaction, that is simply a matter of verifying the cryptographic signatures. The information required to do that is contained in the block chain. 4. If a new Miner wants to add a node, How the Miner can get the IP address of the Network to which his/her Node can be added. Any node can mine. Any node can submit a block solution to the network and it will become the next block in the block chain if valid (simplified a bit). This question seems to overlap with question 1 and appears rooted in some misconceptions. For the detailed process about getting something to mine, you could look up getwork ( https://en.bitcoin.it/wiki/Getwork ), but that's probably more than you're asking for.
|
|
|
a service which can execute transactions when given a private key will be very needed!
What? Keep your private keys private (hence the name).
|
|
|
Something tells me that title is going to result in a takedown request sooner rather than later.
|
|
|
Thanks, great answer.
Is there a bitcoin function list online somewhere that expalins how these things work?
Andy
You mean like a wiki dedicated to Bitcoin? https://en.bitcoin.it/wiki/Main_Page
|
|
|
1. What are the systems the BitCoin Network contains and who are managing those systems.
The preferred spelling is bitcoin, with Bitcoin being used to refer to the protocol or network (but not the actual value). BitCoin is not used. The Bitcoin network is a decentralized, fully peer-to-peer network. That means anyone can run a Bitcoin server and function as a node in the network. Nodes relay transactions. 2. I think any body can work as a Minor if he/she uses a PC/Laptop to add a transacation in a Block. If no minor is doing this mining work, will the receives still receives his Bitcoin ( if a sender sends ). Can you explain how the receiver can receive the BitCoins. Yes, anyone can mine. In the early days, any computer was sufficient to mine a block. These days, However, powerful, specialized equipment is recommended. The total mining power is insane, so the issue of "no one mining" is not relevant. Since the function of mining is to process transactions, Bitcoin wouldn't work if no one was mining. So, no, the receiver would never get his bitcoins. I would recommend reading up on the "blockchain". That concept is fundamental to understanding how Bitcoin works. Very roughly, a person doesn't actually "receive" bitcoins. Everything is recorded in the blockchain. When someone says they have some bitcoins, what they actually have is the cryptographic (private) key that allows them to transfer bitcoins associated with a specific public key (address). 3. How the sender and receiver knows the transactions are Confirmed. Will they get any information. The wallet software handles this, although anyone with knowledge of the transaction could look it up on the blockchain (e.g. using blockchain.info).
|
|
|
how do the large exchanges connect the bitcoin client with their database and process automated transactions (deposit / withdrawal)? Do they have an own customized clients or is there a feature in the official one?
How? "Very poorly" is the flippant answer. Mt. Gox ran what was in effect a custom client. The problem with that approach is that you don't get the updates that go into the regular client. As for the glue between a bitcoin client and the internal systems of an exchange, that's not terribly difficult (security, on the other hand, is). The exact approach differs depending on the way the exchange is set up. For an exchange dealing in fiat, there would similarly need to be some glue between that side and the internal systems.
|
|
|
So no solutions have been proposed to this problem?
What problem? Blockchain growth is capped by max block size, but blocks aren't getting anywhere near that on average, so the real growth is much slower.
|
|
|
I read the scalability article in the wiki and i understand that most clients will be SPV in the future. but none of that answers my original question of how new full nodes will be bootstrapped in the future.
1TB can be downloaded in about 24 hours on a 100 Mbps line. If we're only talking a minority of nodes, it would make sense that they would have a decent connection. And it's not like 100 Mbps is exotic right now and we're only at 15 GB total for the blockchain.
|
|
|
There are several reasons this cannot happen. Primary among them is that the current max block size is 1 MB. Since there is 1 block every 10 minutes on average, that caps the increase in blockchain size.
|
|
|
From what i understand when bitcoin reaches 7000tps each block will be around 1GB in size. how will then new nodes be boot strapped from scratch? by the time the node finished verifying every transaction since bitcoin's inception the block chain would have already expanded by many new blocks ![Huh](https://bitcointalk.org/Smileys/default/huh.gif) The max block size is currently a thousandth of that and only rarely do blocks even approach that size. Even so, there are already numerous development efforts aimed at reducing the blocksize and speeding up bootstrapping of new clients. Looking up "pruning" would be a good start if you are interested in more details.
|
|
|
My watch-only Electrum wallet still has it pending in transactions history.
When, and how, will I know that those coins are again in my sending address and I'm able to spend them in another transaction?
It will take a little while for the miners to drop the transaction from their mempools. When it does, it should stop being pending in your wallet. There's always the chance it will go through still, of course.
|
|
|
I was wondering how does a pool split this computationally difficult task into smaller tasks while at the same time preventing any individual miner to claim the reward if he happens to be the one hitting the correct solution? dbbit covered the latter part and we both alluded to the former. However, let me try to be a bit clearer: The task of calculating the hash is not difficult (it is so easy miners do hundreds of millions, even billions, of these every second). What the pool needs is proof that a participating miner is trying and how hard. It's not enough to simply look at hashes that actually produce a valid block, since these will be too few and far between. Instead, the pool sets a much lower difficulty and miners submit all hashes they produce that match this lower difficulty (i.e. the hash value can have fewer zeros). From the number of contributed low-difficulty hashes, the pool has proof positive that the miner is trying to find a valid hash and a good estimate of how much work the miner is doing. Depending on how one looks at it, the argument could be made that miners who don't find a hash that is valid for the high difficulty, don't actually contribute anything. None of the work they perform is used in any way. However, that's the nature of mining pools. Instead of playing the lottery (solo-mining), miners share the rewards equally (well, according to workload) regardless of who finds the "solution". To take an analogy, imagine a group of people searching a field for a missing diamond. You can either reward the person who finds the diamond, or you can reward everyone who participates in the search with a share of the diamond according to how hard they are looking (easier to quantify when it's a miner).
|
|
|
1. One has no way of predicting what a hash function will spit out, that's why you add nonce to transactions and voila you are the winner if you get a hash below certain number. Now the question is: Is it possible for every nonce coupled with transactions to produce a number greater then required? What happens then? The nonce isn't the only thing that can be varied (e.g. extraNonce), so the practical answer is probably "not possible", but I'm not aware of any theoretical proof. 2. It's often cited that if you don't include transaction fee the miners won't include the transaction for a long time and if you do include the fee it will get 1 confirmation every 10 minutes. How do miners "know" that transaction fee is included if they work on hashes of transactions? Solominers and pools can see the transactions and select the ones they wish to include. They are completely free to chose which and how many to include. 3. How does pool mining work? I understand that each individual miner is handed a piece of the puzzle to solve. That's not an accurate way to look at it. There is no "part of the puzzle". Only "the puzzle". The name of the game is to get a hash that starts with a some number of zeros (higher difficulty -> more zeros). In a pool, each participant sends in answers to the puzzle that are of some much easier difficulty. This allows the pool to gauge how much work they are doing and give out rewards in accordance with that.
|
|
|
1.In the transaction, when the receiver receives Bitcoin and how the receiver knows that he/she receives Bitcoin
Transaction are submitted to the Bitcoin network and are then included in the a block in the blockchain by miners. The first block that contains the transaction results in the transaction having 1 confirmation. Each subsequent block mined after than is another transaction. The receiver of bitcoins in a transaction (and everyone else) will know about it once the first confirmation is there. For reasons that are probably beyond the scope here, it is recommended to wait for 6 confirmations before considering the transaction "final". If the person wanted to, he could even probe the network and know once the (unconfirmed) transaction hit. 2. What will happen if there are no Minors in the network.
Bitcoin will die.
|
|
|
2) in the meanwhile, that tiny btc amount is someway freezed? Am I able to spend them again (i.e. to use them from the same "unspent output" I picked them in order to build a new transaction)? Or they already belong to the new address and I will be able to spend them only from that new address and only if and when the transaction will be confirmed?
Not until some time has passed and nodes drop it out from their memory pools. Otherwise they won't accept another transaction that spends the same outputs and they will not relay it further. You can of course try until it succeeds. Most wallet software will continue to try submitting the transaction to the network, so it would not simply disappear from memory pools.
|
|
|
wallet > account > address > input
Inputs are what the blockchain works with. For each input, there are rules governing how it can be spent. A typical rule would be that a specific private key has to be used, indicated by an address. Multiple inputs can have the same "address" and thus be claimed with the same private key.
Accounts are a construct that solely exists in the wallet software. It's a way of segregating addresses into separate portions.
|
|
|
Keep your ad hominem attacks out of it please. I asked kindly for technical comments. I think you misunderstand what an ad hominem attack is. If gmaxwell had called you are blithering fool, that would qualify. As it were, he pointed out that your posts have been incorrect and confused, and then backed it up with specifics. That's not attacking the man, that's attacking the content (which was full of errors and confused). You might try answering gmaxwell's assertion that ratelimiting is, in fact, not an issue instead of merely stipulating that it is insoluble. For my own part, I would question that there is a non-ephemeral identification of participants, namely by requiring the inputs first. The inputs would serve as an identification and if any problems were subsequently to arise, they could be blacklisted.
|
|
|
So I'm right that miners only validate transactions sent by pool to validate?
Yes. A pool is just a collection of miners with varying rules governing how they operate. The pool is effectively just one big miner as seen by the bitcoin network, so sometimes the word "miners" is used to mean pools. Miners/pools can include whatever transactions they want in a block. Some won't include ANY transactions that don't have a fee, while some will. Some will include very, very few transactions, while others include quite a lot. The transactions miners include have typically been submitted to the bitcoin network, but they could easily include their own or have a "back channel" agreement with e.g. a payment processor to include their transactions without those ever being submitted to the network (i.e. without being relayed).
|
|
|
|