billllib (OP)
Newbie
Offline
Activity: 10
Merit: 11
|
Hey there! I am a Sparrow wallet beginner as well as a Bitcoin Core newbie and I don’t understand, why Bitcoin Core opens a "Cormorant" wallet each time I open Sparrow wallet. I don't want that. I googled a lot and also searched this forum for keywords "cormorant", "Sparrow" etc. but no further clues. My setup:I have Bitcoincore (…and nothing but Bitcoincore…) running on one computer (Linux Ubuntu) and installed Sparrow on another computer on MacOS (10.15 Catalina). I created a new wallet in Sparrow and transferred a small test amount to it. TX successful, I can see the small amount in Sparrow. So far, so good. But why do I see this amount and all the details about it ALSO on the Linux computer where BCC is running? I want to manage my transactions just on the Mac in Sparrow... And each time I close the "cormorant" wallet and delete the "cormorant" wallet data within the ./bitcoin/wallets/cormorant folder, it reappears as soon as I open Sparrow on the Mac. – Can I disable the "cormorant" wallet somehow? Or is it necessary? – Are my BCC server settings wrong? I've done it the way the Sparrow page says: https://sparrowwallet.com/docs/connect-node.htmlThe settings: - - - - - server=1 txindex=1 [main] rpcbind=[Here the IP of the LINUX computer with Bitcoincore] rpcallowip=[Here the IP of the Mac computer with Sparrow] - - - - - Any help is much appreciated!
|
|
|
|
|
nc50lc
Legendary
Offline
Activity: 3024
Merit: 8233
Self-proclaimed Genius
|
Sparrow needs that "cormorant" wallet to sync your sparrow wallets. It does that instead of relying on database like Electrum server does.
It doesn't contain any private keys so you can't manage your funds from there, it only displays it. You can see that it has ""private_keys_enabled": false," in the result if you go to console, select the wallet in the drop-down menu, then enter: getwalletinfo
|
|
|
|
billllib (OP)
Newbie
Offline
Activity: 10
Merit: 11
|
 |
January 22, 2024, 08:52:11 AM |
|
Sparrow needs that "cormorant" wallet to sync your sparrow wallets. It does that instead of relying on database like Electrum server does.
It doesn't contain any private keys so you can't manage your funds from there, it only displays it. You can see that it has ""private_keys_enabled": false," in the result if you go to console, select the wallet in the drop-down menu, then enter: getwalletinfo
Thanks for the explanation. Okay, that reassures me, sort of. It's still a mystery to me why Sparrow "needs that wallet". I don't know if the following use case corresponds to reality, but imagine this: You set up a network with a "server" computer running BCC and multiple "clients" for different people to log in and manage their transactions. I assume that the server administrator would be able to see the wallets of all connected clients, right? Why would he "need to see that"? So that seems to be the main argument for "running your personal node" instead of connecting to a public node / public server, right?
|
|
|
|
|
nc50lc
Legendary
Offline
Activity: 3024
Merit: 8233
Self-proclaimed Genius
|
 |
January 23, 2024, 08:23:35 AM |
|
So that seems to be the main argument for "running your personal node" instead of connecting to a public node / public server, right?
Right, the only for-public-use option is the " Public Server" tab. The two server options " Bitcoin Core" and " Private Electrum" are meant for private use. Thanks for the explanation. Okay, that reassures me, sort of. It's still a mystery to me why Sparrow "needs that wallet".
Those public Electrum servers that you can connect to have their own database built from the blockchain that the client Sparrow query to sync. On the other hand, if you use Bitcoin Core as server, Sparrow needs to use the cormorant wallet that it created with your Sparrow wallets' descriptors to scan the blockchain for transactions. Then it uses RPC to query the needed data from that wallet or node, some require a loaded wallet to work.
|
|
|
|
billllib (OP)
Newbie
Offline
Activity: 10
Merit: 11
|
 |
January 23, 2024, 11:10:26 PM |
|
So that seems to be the main argument for "running your personal node" instead of connecting to a public node / public server, right?
Right, the only for-public-use option is the " Public Server" tab. The two server options " Bitcoin Core" and " Private Electrum" are meant for private use. Thanks for the explanation. Okay, that reassures me, sort of. It's still a mystery to me why Sparrow "needs that wallet".
Those public Electrum servers that you can connect to have their own database built from the blockchain that the client Sparrow query to sync. On the other hand, if you use Bitcoin Core as server, Sparrow needs to use the cormorant wallet that it created with your Sparrow wallets' descriptors to scan the blockchain for transactions. Then it uses RPC to query the needed data from that wallet or node, some require a loaded wallet to work. Thanks again. So this "cormorant" wallet mirrors my real wallet (in Sparrow on the other computer) and shows the current balance, recent transactions, etc. But it is not able to e.g. sign transactions. - Is this what is known as a "watching" wallet? - So it has to have the xpub, right? - In order to stay safe, do I need to change my security settings?
|
|
|
|
|
nc50lc
Legendary
Offline
Activity: 3024
Merit: 8233
Self-proclaimed Genius
|
- Is this what is known as a "watching" wallet? - So it has to have the xpub, right? - In order to stay safe, do I need to change my security settings?
- Yes, you can confirm that by checking if private keys are enabled in getwalletinfo command as I've mentioned earlier. - Yes, it's a descriptor wallet with public descriptors only. You can see each descriptors via listdescriptors command. - No, if you haven't exported any private key from Sparrow, there'll be no security issue regarding the xpub contained in your cormorant wallet. That's because even a single child private key can be used together with the ( parent) xpub to derive its xprv pair That could compromise all the other private keys of that wallet. If you did, consider creating another wallet.
|
|
|
|
billllib (OP)
Newbie
Offline
Activity: 10
Merit: 11
|
 |
January 27, 2024, 05:50:50 PM |
|
- Yes, you can confirm that by checking if private keys are enabled in getwalletinfo command as I've mentioned earlier. - Yes, it's a descriptor wallet with public descriptors only. You can see each descriptors via listdescriptors command. - No, if you haven't exported any private key from Sparrow, there'll be no security issue regarding the xpub contained in your cormorant wallet. That's because even a single child private key can be used together with the (parent) xpub to derive its xprv pair That could compromise all the other private keys of that wallet. If you did, consider creating another wallet.
1. It says: private_key_enabled = false . Is that bad? I didn't consciously change it. How can I change it? 2. I get an output, but I really don't know what they mean. Timestamp, active, range. Hm? I noticed something else today: I made another small transaction from the Sparrow wallet. It was successful and the balance and the transaction itself are shown correctly in Sparrow. But in the Cormorant wallet the balance is correctly updated, but the transaction is NOT listed at all (under "recent transactions"). How can that be?
|
|
|
|
|
nc50lc
Legendary
Offline
Activity: 3024
Merit: 8233
Self-proclaimed Genius
|
1. It says: private_key_enabled = false . Is that bad? I didn't consciously change it. How can I change it? No, " false" means that descriptors with private keys can't be imported there. Refer to my first reply regarding that result. 2. I get an output, but I really don't know what they mean. Timestamp, active, range. Hm? The " xpub" that you were asking is listed in each of the descriptors. You can get more information about the other data in help listdescriptors command. I noticed something else today: I made another small transaction from the Sparrow wallet. It was successful and the balance and the transaction itself are shown correctly in Sparrow. But in the Cormorant wallet the balance is correctly updated, but the transaction is NOT listed at all (under "recent transactions"). How can that be?
Have you sent that transaction to your own address? Because if it is your change address, Bitcoin Core wont show it in the history but will still be included to your available coins.
|
|
|
|
billllib (OP)
Newbie
Offline
Activity: 10
Merit: 11
|
 |
January 28, 2024, 09:41:51 AM Merited by vapourminer (1) |
|
No, "false" means that descriptors with private keys can't be imported there. Refer to my first reply regarding that result.
I'm sorry, I read that at the time, but only now have I understood it. The "xpub" that you were asking is listed in each of the descriptors. You can get more information about the other data in help listdescriptors command.
Okay, it looks like I need to learn more about the command line. (I have a long Mac history, but virtually no DOS/Linux experience, so my shell/terminal skills are very very very poor.) Have you sent that transaction to your own address? Because if it is your change address, Bitcoin Core wont show it in the history but will still be included to your available coins.
Yes, it was another address from the same wallet, so my own address. I have now made another transaction to another wallet, and now the Cormorant wallet is showing this transaction!  Slowly, I am getting a better understanding of how all these things (UTXO, inputs, change etc.) are connected and work. @all contributors in this thread: Thank you so much for supporting me! Without helping hands like this, bitcoin adoption would be less likely. (...although it still is a long and bumpy road. Even for tech-minded people like me. It really must get easier in the future...).
|
|
|
|
|
Cricktor
Legendary
Offline
Activity: 1372
Merit: 3476
|
 |
January 28, 2024, 07:30:12 PM |
|
Okay, it looks like I need to learn more about the command line. (I have a long Mac history, but virtually no DOS/Linux experience, so my shell/terminal skills are very very very poor.)
MacOS is an unixoid OS, too. While it tries to abstract a lot of the inner workings from an user and has a nifty UI, you can also have a powerful command line. Tossing the mouse around isn't everything that's possible, even in MacOS. (...although it still is a long and bumpy road. Even for tech-minded people like me. It really must get easier in the future...).
I may sound like a broken record when I highly recommend to have a look at https://learnmeabitcoin.com: the beginner's pages are a fun to work through and the more technical sections explain a lot of Bitcoin's details in a nice and informative way. At least I like it very much, recommend it often and regularly go myself there to refresh my knowledge.
|
|
|
|
billllib (OP)
Newbie
Offline
Activity: 10
Merit: 11
|
 |
January 28, 2024, 09:16:51 PM |
|
Thanx!! Looks really good!
|
|
|
|
|
ABCbits
Legendary
Offline
Activity: 3486
Merit: 9569
|
 |
January 30, 2024, 09:39:20 AM |
|
The "xpub" that you were asking is listed in each of the descriptors. You can get more information about the other data in help listdescriptors command.
Okay, it looks like I need to learn more about the command line. (I have a long Mac history, but virtually no DOS/Linux experience, so my shell/terminal skills are very very very poor.) You don't have to learn about using terminal, since you could just use built-in Bitcoin Core console (see image below). Although since you already own computer with Linux, you'll benefit from using terminal in long term. Source: http://bitcoindaily.org/bitcoin-guides/how-to-recover-bitcoins-bitcoin-core-wont-sync-export-private-key/(...although it still is a long and bumpy road. Even for tech-minded people like me. It really must get easier in the future...).
I may sound like a broken record when I highly recommend to have a look at https://learnmeabitcoin.com: the beginner's pages are a fun to work through and the more technical sections explain a lot of Bitcoin's details in a nice and informative way. At least I like it very much, recommend it often and regularly go myself there to refresh my knowledge. And Sparrow wallet meant for power user. IMO average people should use more friendly wallet software such as Blue wallet.
|
|
|
|
apogio
Legendary
Offline
Activity: 1022
Merit: 2302
|
 |
January 27, 2025, 06:29:28 PM |
|
Reviving this topic, because I wanna ask the following:
I 've created a wallet on Sparrow and it had some incoming transactions.
My balance on cormorant changed, including the funds it used to include, plus the funds in the new wallet.
If I delete my wallet from Sparrow, will the coins be subtracted in cormorant? I am sure it won't, so I wanna ask what can I do to "fix" it. A complete rescan? Or anything less painful?
|
|
|
|
nc50lc
Legendary
Offline
Activity: 3024
Merit: 8233
Self-proclaimed Genius
|
If I delete my wallet from Sparrow, will the coins be subtracted in cormorant? I am sure it won't, so I wanna ask what can I do to "fix" it. A complete rescan? Or anything less painful?
No it wont, cormorant's balance will remain the same even though the mirrored Sparrow wallet was already deleted. That's because the already-imported descriptors cannot be deleted from the wallet. That said, the only way is to delete cormorant while Sparrow isn't open, once it's connected, it should create another cormorant wallet to import the loaded wallet's descriptors then rescan. Here's a test to support my answer: - I created a wallet in Sparrow, so Bitcoin Core rescanned "cormorant" wallet after the new Sparrow wallet's descriptor is imported:

- Here's the result of listdescriptors command containing the descriptor of that new Sparrow wallet:

- Now, I delete that Sparrow wallet:
 After this, I've checked if the descriptor remains in cormorant and it's still there.
- For additional test, I restarted Sparrow and Bitcoin Core, and the descriptors remains there (as expected):

|
|
|
|
apogio
Legendary
Offline
Activity: 1022
Merit: 2302
|
 |
January 28, 2025, 07:34:52 AM |
|
No it wont, cormorant's balance will remain the same even though the mirrored Sparrow wallet was already deleted. That's because the already-imported descriptors cannot be deleted from the wallet. That said, the only way is to delete cormorant while Sparrow isn't open, once it's connected, it should create another cormorant wallet to import the loaded wallet's descriptors then rescan.
Here's a test to support my answer:
<...>
Very well explained, worked perfectly. By the way, a little out of the subject but, is cormorant always created on Sparrow? Or only if you connect it straight to bitcoin core? Because there is also the option to connect it to your electrum server as well.
|
|
|
|
nc50lc
Legendary
Offline
Activity: 3024
Merit: 8233
Self-proclaimed Genius
|
 |
January 28, 2025, 11:52:34 AM |
|
-snip-
By the way, a little out of the subject but, is cormorant always created on Sparrow? Or only if you connect it straight to bitcoin core? Because there is also the option to connect it to your electrum server as well. I'm not currently using an Electrum server in Sparrow now since it can be directly connected to Bitcoin Core. But last time I tested, IIRC, it doesn't directly. It's the Electrum server ( AFAIK, I've tested EPS) that'll create it own mirrored wallet in Bitcoin Core, not Sparrow itself. Other Electrum Server implementations wont even create a mirrored wallet if its implementation doesn't need it, then Sparrow will be using its created database to sync not directly from its full node software. So theoretically, no cormorant wallet in that case as well.
|
|
|
|
apogio
Legendary
Offline
Activity: 1022
Merit: 2302
|
 |
January 28, 2025, 11:56:56 AM |
|
I'm not currently using an Electrum server in Sparrow now since it can be directly connected to Bitcoin Core. But last time I tested, IIRC, it doesn't directly. It's the Electrum server (AFAIK, I've tested EPS) that'll create it own mirrored wallet in Bitcoin Core, not Sparrow itself.
Other Electrum Server implementations wont even create a mirrored wallet if its implementation doesn't need it, then Sparrow will be using its created database to sync not directly from its full node software. So theoretically, no cormorant wallet in that case as well.
Good to know, I think Sparrow is the only wallet software that allows you to connect straight to your Bitcoin Core, but maybe wrong. What I want to say is that, it must be mandatory to create a cormorant wallet, doesn't it? It doesn't affect my overall experience, to be honest, I am just asking out of curiousity.
|
|
|
|
nc50lc
Legendary
Offline
Activity: 3024
Merit: 8233
Self-proclaimed Genius
|
 |
January 29, 2025, 04:15:41 AM |
|
Good to know, I think Sparrow is the only wallet software that allows you to connect straight to your Bitcoin Core, but maybe wrong. What I want to say is that, it must be mandatory to create a cormorant wallet, doesn't it?
Yeah, Sparrow's " Bitcoin Core as server" implementation needs it. It's similar to what EPS ( Electrum Personal Server) does which is relying on RPC rather than creating its own database from Bitcoin Core's blockchain. The pros of that is you can use Core without --txindex or even in pruned mode. So for private Electrum servers, Sparrow wont create a cormorant wallet in Bitcoin Core. It'll only create that if it's using Bitcoin Core as server.
|
|
|
|
apogio
Legendary
Offline
Activity: 1022
Merit: 2302
|
 |
January 29, 2025, 07:26:23 AM |
|
The pros of that is you can use Core without --txindex or even in pruned mode.
It's true, I am using a pruned node and it works flawlessly. Alright, I think I am ok. Thanks for the guidance.
|
|
|
|
|