(quoted post by nixoid)
Hi people. I’m interested in decentralized currency and going to either participate in development of this one or develop my own version. Before making a decision i want to clarify few technical aspects, which is not clear from documentation. Partially this is just because english is not my native language, but anyway Smiley.
- Is it necessary to run a node if i want to have a wallet? Is it necessarily attached to some exact node or i can keep my wallet on flash drive for example and use it with any node? Where and in which form my account balance is stored?
- Do i need to download whole network transactions log to be able to validate received coins?
- How user protected from potential situation when some node is hacked(or modified) and using his id (public key) to send money from his account? It looks possible when everything is sychronyzed between everybody.
- Which data exactly passed between 2 nodes during transaction? (or just show me place in source code where to look)
- Can somebody please write more details about transaction fee: why is it needed, how and in which cases it’s used and so on.
- Is there any any plans on decentralizing node list (i have figured out from irc that bitcoin is currently not really decentralized, because nodes getting in touch by joining irc channel on freenode).
- Do i correctly understand that after some point in time nobody will have ability to generate new coins? we’ll just use fixed amount of existing ones.
Thanks for you answers.
I’ll try to answer what I can:
Quote from: nixoid on June 10, 2010, 08:38:13 PM
0) Is it necessary to run a node if i want to have a wallet? Is it necessarily attached to some exact node or i can keep my wallet on flash drive for example and use it with any node? Where and in which form my account balance is stored?
You either have to run a node or trust somebody else (like MyBitcoin.com) to keep a wallet for you.
Your account balance is stored in a Berkeley DB file called ‘wallet.dat’ (what directory depends on your operating system; on my Mac it is ~/Library/Application Support/Bitcoin/wallet.dat, on linux it is ~/.bitcoin/wallet.dat, not sure about PCs).
The only application that can read wallet.dat is the bitcoin code, and the database structure isn’t documented anywhere besides the bitcoin C++ source code. Theoretically, no, but the code to do lightweight validation hasn’t been written. Satoshi is planning on encrypting the wallet database, so you’d need to enter a password to read it. (and they need to get your private keys to generate transactions— those are what are stored in the wallet.dat) Dunno. There’s another thread about this in these forums; maybe we should start a “Satoshi’s TODO list” thread and get folks to volunteer to help out. Fewer and fewer coins will be created over the next N years (where N is— what, 20?). That’s a feature, not a bug…
RE: developing your own version: are you thinking of creating a second bitcoin implementation that is compatible with the existing C++ one (good idea, in my opinion)? Or creating a similar-but-not-the-same system (bad idea, in my opinion)?
I second that one. My fear is that the transaction fee won’t scale nicely. Hopefully this is unfounded.
Quote from: nixoid on June 10, 2010, 08:38:13 PM
4) Can somebody please write more details about transaction fee: why is it needed, how and in which cases it’s used and so on.
Transaction fee is needed to give an incentive to generate blocks after many years from now, when the block value has grown low. Also, if many nodes stop recording transactions into the blocks they generate (because of the small generation speed benefit gained), you can apply transaction fee as an incentive.
There will probably always be nodes that include your transactions into their blocks for free, but you might have to wait for a few blocks if many nodes don’t.
- Nothing, if sending by bitcoin address
- It is decentralised. After you have connected to the network the first time, you no longer need IRC.