Bitcoin Forum
April 26, 2024, 06:39:55 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Using multiple wallets with a single daemon  (Read 1644 times)
ruski (OP)
Full Member
***
Offline Offline

Activity: 350
Merit: 100


View Profile
August 23, 2011, 11:31:56 AM
 #1

Is it possible to use multiple wallets, one after another as opposed to all at once, with a single bitcoind.exe? I've read the wiki, and found references to accounts, but nothing about opening or reading seperate wallet files.

1714156795
Hero Member
*
Offline Offline

Posts: 1714156795

View Profile Personal Message (Offline)

Ignore
1714156795
Reply with quote  #2

1714156795
Report to moderator
1714156795
Hero Member
*
Offline Offline

Posts: 1714156795

View Profile Personal Message (Offline)

Ignore
1714156795
Reply with quote  #2

1714156795
Report to moderator
1714156795
Hero Member
*
Offline Offline

Posts: 1714156795

View Profile Personal Message (Offline)

Ignore
1714156795
Reply with quote  #2

1714156795
Report to moderator
It is a common myth that Bitcoin is ruled by a majority of miners. This is not true. Bitcoin miners "vote" on the ordering of transactions, but that's all they do. They can't vote to change the network rules.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714156795
Hero Member
*
Offline Offline

Posts: 1714156795

View Profile Personal Message (Offline)

Ignore
1714156795
Reply with quote  #2

1714156795
Report to moderator
vv01f
Sr. Member
****
Offline Offline

Activity: 314
Merit: 250


View Profile
August 23, 2011, 08:23:05 PM
 #2

afaik accs via jsonrpc are only tagged to addresses: https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_Calls_list#Full_list, see setaccount .
but you oviously can run multiple daemons on different hosts/ports and communicate with all of them.

you could of course implement a function to start and stop daemons as you like to use another wallet, beware: the startup takes some time. at least i never read of changing the wallet while bitcoin/bitcoind is running.

donations to me please send via bitcoin 1vvo1FDwSAwNdLVA1mFkM7v76XPZAAUfb
a good European exchange: bitcoin.de (ref-link)
ruski (OP)
Full Member
***
Offline Offline

Activity: 350
Merit: 100


View Profile
August 24, 2011, 01:11:44 AM
 #3

you could of course implement a function to start and stop daemons as you like to use another wallet, beware: the startup takes some time.

I know, thats why I'm not doing it that way. I suppose it would be possible if the 20 second delay could be swallowed. Having it work this way is actually a vital legal req for my business.. so I can't just give up.. Lips sealed

Thanks for confirming what I already suspected.

helloworld
Sr. Member
****
Offline Offline

Activity: 266
Merit: 250



View Profile
August 24, 2011, 01:25:51 AM
 #4

you could of course implement a function to start and stop daemons as you like to use another wallet, beware: the startup takes some time.

I know, thats why I'm not doing it that way. I suppose it would be possible if the 20 second delay could be swallowed. Having it work this way is actually a vital legal req for my business.. so I can't just give up.. Lips sealed

Thanks for confirming what I already suspected.

Why does it have to be a single daemon? vv01f says you can run multiple daemons on different hosts/ports but actually it can be the same host (different ports).

make 2 seperate bitcoin folders.
in one of them, edit the bitcoin.conf so that it uses different ports

run bitcoin1/bitcoind
run bitcoin2/bitcoind -datadir=bitcoin2/

The catch is you'll need room to store 2 copies of the block chain.
ruski (OP)
Full Member
***
Offline Offline

Activity: 350
Merit: 100


View Profile
August 24, 2011, 05:57:25 AM
 #5

Actually, it would end up at more around the 500 copies mark, not to mention 500 clients all taking up bandwidth keeping up with the blockchain. Having a single daemon able to do it would cut that wait out of customer connection and transaction time, and I'm aiming for real-time store counter transactions.

Quote
datadir=
I may look into the source of the daemon itself. It may be possible to have it reinitialise itself with a new wallet without shutting down. Keyword 'may,' not sure if I'll have the patience or enough knowledge of C++ to read blindly until I find the right subs to edit.

helloworld
Sr. Member
****
Offline Offline

Activity: 266
Merit: 250



View Profile
August 24, 2011, 06:24:42 AM
 #6

Actually, it would end up at more around the 500 copies mark, not to mention 500 clients all taking up bandwidth keeping up with the blockchain. Having a single daemon able to do it would cut that wait out of customer connection and transaction time, and I'm aiming for real-time store counter transactions.

Quote
datadir=
I may look into the source of the daemon itself. It may be possible to have it reinitialise itself with a new wallet without shutting down. Keyword 'may,' not sure if I'll have the patience or enough knowledge of C++ to read blindly until I find the right subs to edit.

Well, cool, if you get it working I'll pay 1 btc for a copy of it.

By the way, I'm not so sure bandwidth would be an issue... maybe I'm wrong but I thought only the default 8332/8333 copy would use up bandwidth and the rest would be 'internal' bandwidth as the secondary copies would simply 'download' the blockchain from the bitcoin1/ folder on localhost - Well, you could force it to do this by having the secondary copies only connect to the main one via the -connect switch.

Someone more knowledgeable please tell me if this is all false.
vv01f
Sr. Member
****
Offline Offline

Activity: 314
Merit: 250


View Profile
August 24, 2011, 10:50:35 AM
Last edit: August 24, 2011, 11:04:06 AM by vv01f
 #7

vv01f says you can run multiple daemons on different hosts/ports but actually it can be the same host (different ports).

yes hosts OR ports, so both is possible. but when in need of more than 10 daemons/wallets there is a cost position (startup needs some cpu and chain needs some space).
if the initialising of different wallets can be done by one daemon while using the same blockchain, that would be very nice - but prolly you'd best ask the coredevs about that.
I think it would be very interesiting to many businesses as walletmanagement is a great upcoming service.

I just yoined the dev-channel for that question:
Quote from: icr:#bitcoin-dev_110824
10:53   vv01f   there was a question in the forums: is it possible to use different wallets with a single instance of bicoin-daemon - so to either switch between wallets or handle multiple ones? if not, any plans or other solutions to that?
10:55   tcatm   vv01f: wallet export/import is the closest we'll have
10:56   vv01f   any schedule or prio on that matter?
10:57   vv01f   dunno if some wallet-service do contribute on those functions - but i assume they have some solution for those problems (offline wallet etc.)
10:57   tcatm   https://github.com/bitcoin/bitcoin/pull/220
10:57   vv01f   thank you very much Smiley
so this could be something to use then. -> discussion

donations to me please send via bitcoin 1vvo1FDwSAwNdLVA1mFkM7v76XPZAAUfb
a good European exchange: bitcoin.de (ref-link)
ruski (OP)
Full Member
***
Offline Offline

Activity: 350
Merit: 100


View Profile
August 24, 2011, 01:27:52 PM
 #8

Boy oh boy.. nice work finding out about that. It still wont cut it though, sadly. Adding existing wallet data to a new one/my existing one is analogous to using accounts.

The reason I'm being so anal about it is that Australian law is very restrictive. If it can be said that in any way I'm providing an account, or holding coins in trust, anti money-laundering record keeping requirements apply, ie. the 7 year standard+identifying all customers. I do not believe hosting an accessible externally managed (ie blockchain) file would qualify, and I would like to keep as many internal trans. as possible 100% record free. All the convenience of a payment processor, all the protection of the raw blockchain.

vv01f
Sr. Member
****
Offline Offline

Activity: 314
Merit: 250


View Profile
August 24, 2011, 05:12:55 PM
Last edit: August 24, 2011, 06:20:24 PM by vv01f
 #9

boy? mh..  Cheesy

I doan know nothing about Australian measures in law - I suggest to work around things that cannot be solved or drop the idea.

But still it would be nice to know if there are other solutions out there..

donations to me please send via bitcoin 1vvo1FDwSAwNdLVA1mFkM7v76XPZAAUfb
a good European exchange: bitcoin.de (ref-link)
ruski (OP)
Full Member
***
Offline Offline

Activity: 350
Merit: 100


View Profile
August 24, 2011, 10:32:51 PM
 #10

Boy oh boy is an expression, lol. Like aw c'mon or ah jeez.. irrespective of gender.  Cheesy

2112
Legendary
*
Offline Offline

Activity: 2128
Merit: 1065



View Profile
August 25, 2011, 02:03:36 AM
 #11

If you manage your own hosting and can obtain the help of a skilled C++ programmer, there is reasonably simple solution by running a bitcoind modified to share the block chain database. Take a look at my previous post:

https://bitcointalk.org/index.php?topic=34769.msg464460#msg464460

Modifying bitcoind to share the blockchain copy is at least an order of magnitude less work than modifying it to use or share multiple wallets.

Please comment, critique, criticize or ridicule BIP 2112: https://bitcointalk.org/index.php?topic=54382.0
Long-term mining prognosis: https://bitcointalk.org/index.php?topic=91101.0
helloworld
Sr. Member
****
Offline Offline

Activity: 266
Merit: 250



View Profile
August 25, 2011, 02:20:09 AM
 #12

Modifying bitcoind to share the blockchain copy is at least an order of magnitude less work than modifying it to use or share multiple wallets.

Probably, but it's still hard to imagine running 500 instances without the server soiling it's pants.
2112
Legendary
*
Offline Offline

Activity: 2128
Merit: 1065



View Profile
August 25, 2011, 04:06:31 AM
 #13

Probably, but it's still hard to imagine running 500 instances without the server soiling it's pants.
Server wouldn't have a problem. The network will have a problem and in particular IRC server that distributes the initial peer addresses.

Besides, 500 instances would mean 500 bitcoin customers for a single hoster. This is somewhere between science fiction and fantasy for now.

The only real hope to get out of this predicament is with libbitcoin crew. I sincerely hope they won't hoist themselves on their own petard.

Please comment, critique, criticize or ridicule BIP 2112: https://bitcointalk.org/index.php?topic=54382.0
Long-term mining prognosis: https://bitcointalk.org/index.php?topic=91101.0
ruski (OP)
Full Member
***
Offline Offline

Activity: 350
Merit: 100


View Profile
August 25, 2011, 07:36:36 AM
 #14

Probably, but it's still hard to imagine running 500 instances without the server soiling it's pants.
Besides, 500 instances would mean 500 bitcoin customers for a single hoster. This is somewhere between science fiction and fantasy for now.

The only real hope to get out of this predicament is with libbitcoin crew. I sincerely hope they won't hoist themselves on their own petard.

I don't know what libbitcoin is, but it's not science fiction/fantasy. My service is targeted to real businesses with a real plan to get it to them. 500 customers is a starting point, not a dream. Also, if libbitcoin is a wallet service, that'd be a resounding NO.

@ 2112, are you sure it would be so hard to modify it? My favoured language is VB/VB.NET, and while I can read C++ and it won't take long to pick up, I won't get anywhere trying to read the entire program for what I need. If you could find the initialization code ie. sub Main for the whole program, so I can work from there, it'd be a big help. May not be so difficult as you think.


2112
Legendary
*
Offline Offline

Activity: 2128
Merit: 1065



View Profile
August 25, 2011, 10:17:13 PM
 #15

All right. I have to admit that I have been successfully trolled by ruski. Props to him.

Please comment, critique, criticize or ridicule BIP 2112: https://bitcointalk.org/index.php?topic=54382.0
Long-term mining prognosis: https://bitcointalk.org/index.php?topic=91101.0
Furyan
Full Member
***
Offline Offline

Activity: 175
Merit: 100



View Profile
August 26, 2011, 12:11:56 AM
 #16

Probably, but it's still hard to imagine running 500 instances without the server soiling it's pants.
Besides, 500 instances would mean 500 bitcoin customers for a single hoster. This is somewhere between science fiction and fantasy for now.

The only real hope to get out of this predicament is with libbitcoin crew. I sincerely hope they won't hoist themselves on their own petard.

I don't know what libbitcoin is, but it's not science fiction/fantasy. My service is targeted to real businesses with a real plan to get it to them. 500 customers is a starting point, not a dream. Also, if libbitcoin is a wallet service, that'd be a resounding NO.

@ 2112, are you sure it would be so hard to modify it? My favoured language is VB/VB.NET, and while I can read C++ and it won't take long to pick up, I won't get anywhere trying to read the entire program for what I need. If you could find the initialization code ie. sub Main for the whole program, so I can work from there, it'd be a big help. May not be so difficult as you think.



The bitcoin code is incredibly complex.  Even seasoned C++ developers are forced to slow down to digest it.  Thus, by telling you that main() and AppInit2 are found at the end of init.cpp, it doesn't really help you.  The block chain management is spread across a half dozen classes and files.  Most of it is in main.cpp.

The wallet code may be easier, it has all been moved to wallet.h/.cpp and it SEEMS like there are fewer calls into it now.  I haven't gone to great lengths to verify that.
ruski (OP)
Full Member
***
Offline Offline

Activity: 350
Merit: 100


View Profile
August 26, 2011, 12:24:43 AM
 #17

All right. I have to admit that I have been successfully trolled by ruski. Props to him.

Lol I'm not trolling. @ Furyan, thanks. I'll prove you wrong 2112 Cheesy

vv01f
Sr. Member
****
Offline Offline

Activity: 314
Merit: 250


View Profile
August 26, 2011, 12:13:52 PM
 #18

@ruski: Can you post those laws here or link them and point out the paragraphs you are struggling on?

Just an idea - perhaps someone can describe another solution.

donations to me please send via bitcoin 1vvo1FDwSAwNdLVA1mFkM7v76XPZAAUfb
a good European exchange: bitcoin.de (ref-link)
ruski (OP)
Full Member
***
Offline Offline

Activity: 350
Merit: 100


View Profile
August 27, 2011, 03:44:59 AM
 #19

The relevant law is the Australian Anti Money Laundering & Counter Terrorism Financing Act 2006.

Section 4 deals with reporting requirements for services.

Quote
A reporting entity must carry out a procedure to verify a customer's identity before providing a designated service to the customer. However, in special cases, the procedure may be carried out after the provision of the designated service.

Section 6 defines the services.

Section 5 defines the various words.

The definitions of "Person" and "Money" are bulletproof. However, within designated services, there is a turn of wording I believe may have been written to invalidate applicability to accounts comprised solely of virtual currency (and with a sympathetic judge, could well exclude any form of money, great job Parliament!)

However further down Section 6 it also provides for depository services other than accounts.

Quote
accepting money on deposit (otherwise than by way of deposit to an account), where the deposit-taker is:

Allowing customers' bitcoins to be stored in a server-owned wallet is a no-brainer for 'deposit' (which, by the way, isn't defined in the law.) However, simply storing a wallet.dat for a customer, basically acting as a file host since that wallet will be directly accessible and downloadable, and since it's the blockchain that manages it, arguing that the wallet.dat is a "deposit" is tenuous at best.

I've tried to find relevant court cases and decisions, but I haven't found any that address the depository issue, so if it does end up in court it'll be a landmark.

Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!