First off, yes miners only send blocks to their eight neighbor nodes, I don't know of any attempts by pools to broadcast more aggressively their blocks, though that may happen in the future. (Since it can lower the -small- chance of another block coming out simultaneously.)
Bitcoin itself doesn't really assume or require low latency in the network. It can handle even a full network split gracefully in most circumstances. And yes, as theymos says, the future is probably a network with larger nodes serving multiple users.
|
|
|
Could someone please point me to a thread with a solution for faster Bitcoin verifications? Not Mybitcoin or Mt Gox Api; Is there a solution for "real-time" (or at least faster) Bitcoin p2p verifications?
If Yes, please help teach me. If No, How are we supposed to develop eCommerce and bCommerce sites?
Accepting a transaction instantly is possible, however there is a risk of a double spend, i.e. a different transaction may make it into the block chain if your customer is trying to rip you off. The chance should be small enough that an insurance company could come along and offer to guarantee your incoming transactions for a fee. Such an insurance company would have several strategies available to lower their costs: - Require a 2-second or so delay before guaranteeing a transaction
- Connect to a large number of nodes and make sure that during the aforementioned delay, no other transaction appears on the network
- Contract with and pay miners to guarantee they only have the transaction you got and will include it if they generate the next block
They could then offer an API to merchants that allows them to automate the process. Theoretically merchants could do this themselves and carry the risk themselves, but it'll likely be much, much cheaper to have specialized companies do it.
|
|
|
Don't forget - eBay GmbH
- eBay Limited, eBay Advertising Group Deutschland
PayPal belongs to eBay I think Very good point. Added.
|
|
|
Those aren't actually their members. They are just listing what payment providers there are. Their members are listed on this page: http://www.bvdw.org/der-bvdw/mitgliedschaft/mitgliedsunternehmen.htmlThe payment providers that are actually members of BVDW are: - eBay (owners of Paypal)
- deal united
- Giropay
- Hi-media Deutschland
- Deutsche Telekom
- SafetyPay
- Payback GmbH
Edit: Added eBay/Paypal - Thanks Nick!! There may be others that are not on the list of payment providers or are on there under a different name.
|
|
|
Note that it's cheap for a miner to rack up fees artificially (using the above terminology) by including a transaction with a large fee in the block he's trying to hash but not distributing it across the network so that other miners can't get the fee if they solve the block first.
You're right. I suppose if you were talking about an entirely new system (i.e. not Bitcoin) you could design rules that require a transaction to be to publicly disseminated for a certain period of time before it can be included in a block.
|
|
|
Interesting. Voting with existing Bitcoins would essentially amount to using past hashing work (Bitcoins) for security instead of or in addition to present hashing work (mining). Reminds me of HashCash and the concept of "reusable proof-of-work" which is one way of looking at Bitcoins. That would strengthen the network against an attacker, but as Nick points out there are a lot of practical and theoretical challenges associated with it. * proof-of-work/mining effort (what Bitcoin currently does) * value or number of coins or solution bits owned by key * number or value of transactions as payor, payee, or both by a key * number or value of transactions weighted by how recent they are * various combinations of the above To add to that list: * number or value of transaction fees as payor, payee, or both by a key Note that this is not the same as the third list item as fees are not always proportional to the transaction amounts. In fact it is fairly cheap to rack up high transaction amounts artificially, whereas it is just as costly to rack up fees artificially as it is to incur them normally. Edit: Actually, miners can rack up fees for free, see ByteCoin's message below.
|
|
|
When you're trying testnet, are you doing so with booo's patch or with vanilla node-bitcoin-p2p? The current master does not contain the necessary changes to the genesis block at all. Booo's patch does contain them but that's still where I'd be looking for problems. booo's error log looks like the blocks he's downloading don't connect with the chain. anyone else has any good tools the know of that I should be using.
Yes, I had actually implemented them myself before I saw booo's patch (I really should be paying closer attention to the issues on github). However, I did notice this statement about testnet from the wiki: "A different value of ADDRESSVERSION field ensures no testnet BitCoin addresses will work on the production network. (0x6F rather than 0x00)" I didn't find anywhere in booo's changes where this was accounted for (maybe I missed it). It's not accounted for. But it shouldn't affect the block chain download. (Addresses aren't used in the p2p protocol.)
|
|
|
That's a great idea, I'll create some with that as well. Any other suggestions?
Maybe "crypto" instead of cryptography. The latter makes the phrase a bit clunky.
|
|
|
Well done Justmoon - very slick ! Now you can go back to betting SC2 GSL...kidding Hey if you have too much money, just send it over - you know I have a 100% win rate so far, right? --- Heads up to everyone wanting to try out node-bitcoin-p2p at the moment. The current HEAD of Node.js breaks module compilation: https://github.com/joyent/node/issues/1102Please wait until fixed or use joyent/node commit 9a3dd754be6531b01c0e when installing Node.
|
|
|
I considered jetting over there and jetting back in time for my Bitcoin talk in Zurich at 7pm. But knowing me it just sounds like such a recipe for disaster. Have fun! Hopefully there will be a next time some day.
|
|
|
I can probably get to the bottom of most of these bugs myself, however the one impacting the use of the test net (where it reports a gibberish error coming back from the creation of the block locator) is probably going to be more difficult (I'm guessing it's an issue in your fork of mongoose...and perhaps in the native code). Let me know if you have any ideas or tips where to look for a fix for that one. I'd really like to be able to use testnet (I know you don't think too highly of it, but losing even a few real bitcoins isn't appealing).
When you're trying testnet, are you doing so with booo's patch or with vanilla node-bitcoin-p2p? The current master does not contain the necessary changes to the genesis block at all. Booo's patch does contain them but that's still where I'd be looking for problems. booo's error log looks like the blocks he's downloading don't connect with the chain. https://github.com/bitcoinjs/node-bitcoin-p2p/issues/8Btw, I've found the cloud9 IDE and node-inspector (for debugging) to be nice tools. I wonder if anyone else has any good tools the know of that I should be using.
Some random recommendations: ack is awesome tool for searching source code. I use Wireshark for debugging the Bitcoin P2P connection as well as the database backend. The latest version even has a filter for MongoDB's protocol, making it a lot easier to debug MongoDB-related problems. And of course BitcoinJ is great when you need another client to run against that is easy to change and customize.
|
|
|
When doing Weusecoins we considered designing a new logo for Bitcoin, but eventually decided it was best to stick with what people were already used to. I'm usually not a fan of crowdsourcing design, but when a logo/symbol emerges victorious again and again whenever the discussion comes up, maybe it's time to chill out and roll with it.
|
|
|
I get this quite frequently (during block download in particular):
Error: Socket is not writable
The p2p client dies (well, in this case I'm running the exit node, but it's dying in writing a message to a connection in the p2p code). Do others get this? I haven't investigated it much, but I'm guessing it's normal network interruptions and that a bit of exception handling to catch and recover (or just discard that connection) is needed and would fix the issue.
Hehe, you seem to be on a mission to re-report all the bugs from our issue tracker: https://github.com/bitcoinjs/node-bitcoin-p2p/issues/15Or perhaps you're just posting here to make me aware - I've now tried to comment on all bugs. At the moment I don't have muchany time to develop, as soon as I do though this stuff will all get fixed swiftly. Unless somebody beats me to it. Also, after downloading a 50 or 60 thousand blocks, the block download seems to stall out. Is that due to some throttling by peers or something? Or is this a bug?
Please refer to the bug tracker: https://github.com/bitcoinjs/node-bitcoin-p2p/issues/13
|
|
|
@justmoon, why did you need to use a forked mongoose with bitcoinjs and why make it a submodule (i.e. why not treat it like as an ordinary module found via NODE_PATH)?
Right now, we're using a hack for adding binary support to mongoose. I've created the necessary classes for a datatype "Buffer" that base64 encodes and decodes everything. In the future we should implement proper support for Buffers to node-mongodb-native and mongoose, i.e. without conversion to base64 since MongoDB itself actually has excellent support for binary types. See: https://github.com/bitcoinjs/node-bitcoin-p2p/issues/6Also, how about setting up a separate forum (maybe a child forum to this one) and IRC channel for bitcoinjs development? Maybe #bitcoinjs or #bitcoin-devjs? Right now I'm focused on my own development. I want to launch Webcoin, mainly to prove to myself and the world that BitcoinJS is actually a viable alternative, after that I'll be focusing more on building a community. If you want to start and moderate an IRC channel, feel free to start one and let me know. I'll gladly join whenever I'm on, but please don't expect too much, it's all a lot to handle for me atm. When running node-bitcoin-exit, I'm getting a lot of this kinds of errors: 22 May 20:47:38 - error: Error while creating block locator: �3�����M�.�ڣ] ����2x
I've not yet managed to successfully debug what's happening, but wonder if it's affecting others. I've got things setup to run on the testnet, so I wonder if that might have something to do with it.
Testnet is not supported yet, please use mainnet. (It shouldn't be difficulty to fix, I've just never needed testnet. It's hash rate is too unstable, ironically making it unsuitable for testing imho.) See: https://github.com/bitcoinjs/node-bitcoin-p2p/issues/8
|
|
|
Link fixed! do both display the same data basically?
Yep. I just made this as a flashier version that I can show after my talk as a little gimmick.
|
|
|
Hey everyone, in preparation for my talk at KPMG on Wednesday I've created a 3D globe showing Bitcoin nodes. Link:To view, you need a WebGL compatible browser. That is Firefox 4 or Chrome 9+ I think. Also your drivers etc all have to be in order. So for a lot of you this won't work. For the rest: LAUNCH 3D GLOBECredits:
Screenshot (click to enlarge):The globe shows the Bitcoin nodes by city. The height and color of the bars denotes the number of nodes from that city. Source code (the part that I wrote) will be posted shortly. Enjoy.
|
|
|
Roger asked us to give it a go: Let's be honest: Transferring money today is a hassle. And on top of it you pay outrageous fees.
That's why thousands of people from all over the world are using a newly emerging standard for online payments.
Bitcoin.
Bitcoin is the first decentralized digital currency. That means that Bitcoins are created at a predictable and limited rate and anyone is free to accept them. No central bank or single corporation is running the show.
With Bitcoin, sending money is as easy as sending an email. And almost as cheap!
Sounds too good to be true? Try Bitcoin yourself, for free at WeUseCoins.org
[WeUseCoins jingle] Let us know what you think, if we get no feedback or positive feedback we'll have Chris record it on Monday. (He's the voice from the video as well.)
|
|
|
Brilliant idea.
In the far future, these pools might not be competitive though due to the costs from every miner having to verify signatures. Maybe there is a solution for that?
Still, that's a ways away and for now it sounds like a great idea.
|
|
|
Fair enough.
So I guess the nonce is made up of a pool-assigned number + offset?
Doesn't need to be, the block also contains the pool's Bitcoin address in the coinbase. That already makes the hashes pool-specific.
|
|
|
|