Why does Bitcoin Core launch the "Cormorant" wallet every time I open Sparrow?

18 replies 250 views
Posts: 6 · Reputation: 136
#1Oct 24, 2019, 12:43 AM
Hey everyone! I’m new to Sparrow wallet and just getting my feet wet with Bitcoin Core too. I’m puzzled about why Bitcoin Core keeps launching a "Cormorant" wallet whenever I open Sparrow. It’s really annoying. I searched around the web and on this forum for "cormorant", "Sparrow", etc., but I couldn’t find any answers. Here’s my setup: I’ve got Bitcoin Core running on one Linux Ubuntu machine and I installed Sparrow on a separate MacOS device (10.15 Catalina). I made a new wallet in Sparrow and sent a small test amount to it. The transaction went through fine, and I see that little amount in Sparrow. But here’s the kicker: I can also see that amount and all its details on the Linux machine where Bitcoin Core is running. I just want to handle my transactions solely on the Mac with Sparrow... Every time I close the "cormorant" wallet and delete its data from the ./bitcoin/wallets/cormorant folder, it just pops back up as soon as I open Sparrow on my Mac. Is there a way to turn off the "cormorant" wallet? Or is it something that's needed? Are my Bitcoin Core server settings messed up? I set them up according to the instructions on the Sparrow page: https://sparrowwallet.com/docs/connect-node.html The settings I used: - - 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 would be awesome!
4 Reply Quote Share
gr3g.0rbitHero Member
Posts: 1025 · Reputation: 2646
#2Oct 24, 2019, 05:45 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
3 Reply Quote Share
Posts: 6 · Reputation: 136
#3Oct 24, 2019, 09:29 AM
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?
1 Reply Quote Share
gr3g.0rbitHero Member
Posts: 1025 · Reputation: 2646
#4Oct 24, 2019, 10:45 AM
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. 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.
0 Reply Quote Share
Posts: 6 · Reputation: 136
#5Oct 24, 2019, 03:48 PM
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?
5 Reply Quote Share
gr3g.0rbitHero Member
Posts: 1025 · Reputation: 2646
#6Oct 24, 2019, 08:49 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.
3 Reply Quote Share
Posts: 6 · Reputation: 136
#7Oct 25, 2019, 12:42 AM
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?
0 Reply Quote Share
gr3g.0rbitHero Member
Posts: 1025 · Reputation: 2646
#8Oct 25, 2019, 06:59 AM
No, "false" means that descriptors with private keys can't be imported there. Refer to my first reply regarding that result. 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. 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.
3 Reply Quote Share
Posts: 6 · Reputation: 136
#9Oct 27, 2019, 02:37 AM
I'm sorry, I read that at the time, but only now have I understood it. 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.) 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...).
0 Reply Quote Share
im_lynxHero Member
Posts: 515 · Reputation: 2161
#10Oct 27, 2019, 05:24 AM
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. 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.
4 Reply Quote Share
Posts: 6 · Reputation: 136
#11Oct 27, 2019, 07:14 AM
Thanx!! Looks really good!
4 Reply Quote Share
hash_bossLegendary
Posts: 1166 · Reputation: 5261
#12Oct 27, 2019, 08:11 AM
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/ And Sparrow wallet meant for power user. IMO average people should use more friendly wallet software such as Blue wallet.
4 Reply Quote Share
alt21Senior Member
Posts: 398 · Reputation: 1732
#13Oct 27, 2019, 01:42 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?
0 Reply Quote Share
gr3g.0rbitHero Member
Posts: 1025 · Reputation: 2646
#14Oct 27, 2019, 06:18 PM
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):
4 Reply Quote Share
alt21Senior Member
Posts: 398 · Reputation: 1732
#15Oct 27, 2019, 10:01 PM
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.
1 Reply Quote Share
gr3g.0rbitHero Member
Posts: 1025 · Reputation: 2646
#16Oct 28, 2019, 12:44 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.
2 Reply Quote Share
alt21Senior Member
Posts: 398 · Reputation: 1732
#17Oct 28, 2019, 04:18 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? It doesn't affect my overall experience, to be honest, I am just asking out of curiousity.
3 Reply Quote Share
gr3g.0rbitHero Member
Posts: 1025 · Reputation: 2646
#18Oct 28, 2019, 07:55 AM
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.
4 Reply Quote Share
alt21Senior Member
Posts: 398 · Reputation: 1732
#19Oct 28, 2019, 11:14 AM
It's true, I am using a pruned node and it works flawlessly. Alright, I think I am ok. Thanks for the guidance.
0 Reply Quote Share

Related topics