MrJoshua (OP)
Member
Offline
Activity: 76
Merit: 12
|
|
August 06, 2011, 02:04:05 AM |
|
Is is possible to run multiple bitcoind instances on a single machine?
I'm trying to develop some web services. One of those services needs the ability to process unique wallet files / private keys for each user. Currently this is impractical because the amount of time it takes to flush and relaunch bitcoind with rescan to load unique wallets. Even though this takes time, it could be somewhat manageable if I can run a bitcoind for every active user session. I can use multiple servers, but I'd like to be able run more then one bitcoind per server instance to make more effective use of each server's resources.
I suspect dynamic wallet switching directly in bitcoind is still a bit far off right?
Thanks, j
|
The value of bitcoins is not a theory, predictions of it's failure are what is theoretical.
|
|
|
2112
Legendary
Offline
Activity: 2128
Merit: 1073
|
|
August 06, 2011, 02:19:01 AM |
|
Is is possible to run multiple bitcoind instances on a single machine?
Yes. Each one has to be under a different account and use "-rpcport" (documented) and "-port" (undocumented) or "-nolisten". The overhead can be stupendous though.
|
|
|
|
Furyan
|
|
August 06, 2011, 10:12:38 AM |
|
Is is possible to run multiple bitcoind instances on a single machine?
Yes. Each one has to be under a different account and use "-rpcport" (documented) and "-port" (undocumented) or "-nolisten". The overhead can be stupendous though. Instead of "-port" you can use -connectnode and have it connect to an already-running bitcoin to do the peer communication. And you don't have to run them on a different account, you can just use the -datadir flag to point the second instance to a different folder. It will rebuild its own block chain, or you can copy over the existing one to that data dir. They'll have separate wallets though. See Gavin Andresen's instructions here: https://bitcointalk.org/index.php?topic=589.0
|
|
|
|
payb.tc
|
|
August 06, 2011, 01:07:24 PM |
|
The overhead can be stupendous though.
You mean as in ram usage or are you talking about something else? i was able to get 2 running successfully for a while on a test server. I wonder what the record is for the most amount of bitcoind instances running together successfully... anyone running 3 or more?
|
|
|
|
Furyan
|
|
August 06, 2011, 01:26:40 PM |
|
The overhead can be stupendous though.
You mean as in ram usage or are you talking about something else? i was able to get 2 running successfully for a while on a test server. I wonder what the record is for the most amount of bitcoind instances running together successfully... anyone running 3 or more? I heard of someone running 8. I never did hear how that worked out
|
|
|
|
2112
Legendary
Offline
Activity: 2128
Merit: 1073
|
|
August 06, 2011, 01:59:08 PM |
|
You mean as in ram usage or are you talking about something else?
RAM doesn't seem to be a problem. The worst are: disk access queues and disk space usage. Then there's a CPU use spikes and network traffic spikes during operation when separate daemons duplicate their work. Last but not least is the outgoing network connectivity which gets close to launching a non-distributed DoS on the servers when your multi-bitcoind machine restarts after maintenance. Overall it isn't pretty and it would be hard to maintain and troubleshoot.
|
|
|
|
payb.tc
|
|
August 06, 2011, 02:06:05 PM |
|
so i guess the solution is to modify bitcoind so that it can perform the functions of multiple bitcoind instances?
run several wallets at the same time, separately, all from the one binary and one set of ports.
|
|
|
|
2112
Legendary
Offline
Activity: 2128
Merit: 1073
|
|
August 06, 2011, 02:45:33 PM |
|
so i guess the solution is to modify bitcoind so that it can perform the functions of multiple bitcoind instances? run several wallets at the same time, separately, all from the one binary and one set of ports.
I think I responded to you in the PHP thread. Your only hope is that libbitcoin development group delivers something useable. The core development team is actively working against this goal. What you have here is the essence of using obfuscated C++ code for the purpose of guerrilla warfare amongst the competing software development teams. Satoshi is/was a grand-master of it.
|
|
|
|
payb.tc
|
|
August 06, 2011, 03:05:09 PM |
|
so i guess the solution is to modify bitcoind so that it can perform the functions of multiple bitcoind instances? run several wallets at the same time, separately, all from the one binary and one set of ports.
I think I responded to you in the PHP thread. Your only hope is that libbitcoin development group delivers something useable. The core development team is actively working against this goal. What you have here is the essence of using obfuscated C++ code for the purpose of guerrilla warfare amongst the competing software development teams. Satoshi is/was a grand-master of it. which goal? what's wrong with one instance of bitcoind managing multiple wallets?
|
|
|
|
markm
Legendary
Offline
Activity: 3010
Merit: 1121
|
|
August 06, 2011, 04:41:18 PM |
|
The overhead can be stupendous though.
You mean as in ram usage or are you talking about something else? i was able to get 2 running successfully for a while on a test server. I wonder what the record is for the most amount of bitcoind instances running together successfully... anyone running 3 or more? Even my quite old machines are not having any problems running multiple *coind instances all at once and all on the same user account. (bitcoind botcoind britcoind cdnbitcoind czbitcoind devcoind gmcbitcoind grfbitcoind groupcoind multicoind namecoind unbitcoind ...) -MarkM-
|
|
|
|
Furyan
|
|
August 06, 2011, 08:46:16 PM |
|
so i guess the solution is to modify bitcoind so that it can perform the functions of multiple bitcoind instances? run several wallets at the same time, separately, all from the one binary and one set of ports.
I think I responded to you in the PHP thread. Your only hope is that libbitcoin development group delivers something useable. The core development team is actively working against this goal. What you have here is the essence of using obfuscated C++ code for the purpose of guerrilla warfare amongst the competing software development teams. Satoshi is/was a grand-master of it. which goal? what's wrong with one instance of bitcoind managing multiple wallets? I, too, am curious what motivated that comment. I would think if the core devs were going to work against a goal, it would be mining pools. Mining pools were NEVER what Satoshi had in mind and de-democratize the mining process. They also concentrate computing power in attackable entities, and if a large pool goes down even for a few hours it takes a huge chunk of the available computing power with it (unless a large portion of the miners have fallback settings, but it doesn't appear to be widely used). The GetWork function was intended for testing, but is the single method by which mining pools are even possible. If they wanted to work against a goal - mining pools - they'd need only to disable that single function. They haven't done so. I tend to think the project is far beyond working against specific goals at this point and only working toward very focused ones.
|
|
|
|
2112
Legendary
Offline
Activity: 2128
Merit: 1073
|
|
August 06, 2011, 10:22:26 PM |
|
which goal?
The goal of having multiple compatible implementations of the same protocol. The longer they have an effective control over the whole network in the hands of about 6 people the more time they have to monetize their investment of time into this project. It is quite amazing to watch an open source project that had successfully prevented any competing groups from developing a compatible implementation despite the source being in the open. Subtle changes in protocol, using corner cases of exception handling to prevent running the Linux client on the majority of commercial Linux distributions, reintroducing exact bugs fixed in earlier patches, etc. The whole arsenal of tricks of hardcore purveyors of job safety. I have to say that watching this project is a great learning experience for me.
|
|
|
|
payb.tc
|
|
August 07, 2011, 12:41:27 AM |
|
which goal?
The goal of having multiple compatible implementations of the same protocol. okay so you said all that because i used the phrase 'modify bitcoind'. i didn't mean fork the project, i meant it would be good if that functionality became part of the default client.
|
|
|
|
2112
Legendary
Offline
Activity: 2128
Merit: 1073
|
|
August 07, 2011, 01:39:30 AM |
|
They haven't done so. I tend to think the project is far beyond working against specific goals at this point and only working toward very focused ones.
Well, I probably cannot change your thinking. In my opinion the great part of the effective obfuscation is to appear constructive. I'll give you an example: Bitcoin protocol is a train-wreck of endianness and alignment problems. Yet while it was being developed some "core team" members were using MacOS X {Tiger,Leopard,Snow Leopard} which makes it almost trivial to locate and fix those problems. Consider the code: #include <stdio.h> union { char b[4]; int w; } t = { 0x11, 0x22, 0x33, 0x44 }; int main() { return printf("%08x,%i\n",t.w,(int)sizeof(void*)); }
and its compilation and invocation: $ gcc -arch ppc -arch i386 -arch x86_64 bo.c $ ./a.out 44332211,8 $ arch -i386 ./a.out 44332211,4 $ arch -ppc ./a.out 11223344,4
Now go search the history of this forum for discussion about the byte-order issues. Watch the mental gymnastics expended (especially by Jeff Garzik) to quash any work or discussion about this goal. I'll bet this will be very instructive to you, even if you disagree with me overall.
|
|
|
|
error
|
|
August 07, 2011, 02:41:32 AM |
|
They haven't done so. I tend to think the project is far beyond working against specific goals at this point and only working toward very focused ones.
Well, I probably cannot change your thinking. In my opinion the great part of the effective obfuscation is to appear constructive. I'll give you an example: Bitcoin protocol is a train-wreck of endianness and alignment problems. Yet while it was being developed some "core team" members were using MacOS X {Tiger,Leopard,Snow Leopard} which makes it almost trivial to locate and fix those problems. Consider the code: #include <stdio.h> union { char b[4]; int w; } t = { 0x11, 0x22, 0x33, 0x44 }; int main() { return printf("%08x,%i\n",t.w,(int)sizeof(void*)); }
and its compilation and invocation: $ gcc -arch ppc -arch i386 -arch x86_64 bo.c $ ./a.out 44332211,8 $ arch -i386 ./a.out 44332211,4 $ arch -ppc ./a.out 11223344,4
Now go search the history of this forum for discussion about the byte-order issues. Watch the mental gymnastics expended (especially by Jeff Garzik) to quash any work or discussion about this goal. I'll bet this will be very instructive to you, even if you disagree with me overall. Completely agree in every respect. The endianness problem is Bitcoin's biggest design flaw, and IMO warrants bumping the protocol version. Of course it's going to be a lot more work to clean this up than it would have been to do it right the first time, so it's going to be very hard to find anyone who wants to do it.
|
3KzNGwzRZ6SimWuFAgh4TnXzHpruHMZmV8
|
|
|
Steve
|
|
August 07, 2011, 12:51:11 PM |
|
The overhead can be stupendous though.
You mean as in ram usage or are you talking about something else? i was able to get 2 running successfully for a while on a test server. I wonder what the record is for the most amount of bitcoind instances running together successfully... anyone running 3 or more? I've run as many as 6 on a machine...two that are on a private local testnet...one that is on a prive testnet between several machines, one on the public test net and another couple on the real net. Works fine, albeit the machine can get a little sluggish. I do typically run 2 to 4 (2 on a private local testnet, one no a shared private testnet, and one on the real net).
|
|
|
|
doldgigger
|
|
August 07, 2011, 07:20:08 PM |
|
I would think if the core devs were going to work against a goal, it would be mining pools. Mining pools were NEVER what Satoshi had in mind and de-democratize the mining process. They also concentrate computing power in attackable entities, and if a large pool goes down even for a few hours it takes a huge chunk of the available computing power with it (unless a large portion of the miners have fallback settings, but it doesn't appear to be widely used).
This is not the responsibility of the core devs, it is the responsibility of every bitcoin user. However, they are probably a natural effect of bitcoin's evolution - in other areas of P2P computing, you will also notice that evolution towards efficiency often leads to some kind of hub nodes. For bitcoin, I could imagine even more areas beyond mining where this might happen in the future. But mining pools are not necessarily dangerous if we regulate them well. I have already started discussing about revitalizing the transaction fee market in presence of mining pools some time ago (see http://bitcointalk.org/index.php?topic=28309.0). I'd be glad to discuss further possibilities.
|
|
|
|
|
payb.tc
|
|
August 08, 2011, 10:15:30 AM |
|
how about a lack of sub-accounts and sub-sub-accounts? just one reason of many, i'd say.
|
|
|
|
c_k
Donator
Full Member
Offline
Activity: 242
Merit: 100
|
|
August 08, 2011, 10:34:20 AM |
|
just one reason of many, i'd say.
Do share the other reasons as they come to you. I don't see how what you've said so far is a problem. Don't take me the wrong way, I am genuinely interested in where the existing functionality fails to suffice
|
|
|
|
|