miner configuration – How can i solo mine with antminer? Using local bitcoin core

I am having trouble setting up mining with antminer.

I have a gpu rig which is successfully mining with 2060 rtx on bitcoin with bfgminer at a hashrate of 1.5gh/s

Obviously 1.5gh/s is nothing compared to what can be achieved with the antminer

So went and got an antminer promising speeds of dozens of th/s

I can do pooled mining with it and get the advertised speed

However i wish to have a go at setting up solo mining with my antminer

Which software would you recommend to use in conjunction with the bitcoin core client? It seems i am unable to use bfgminer with my antminer for solo mining

The information i have access to so far with google search and searching on this website is very limited or most of it is outdated

No comments on how unlikely it is i will profit. I want to get it working so please stay on topic

How to create descriptor watch-only wallet with bitcoin-cli in Bitcoin Core 0.21?

Using only command line (no GUI), how can I create watch only wallet based on descriptor and get first unused address?

This is the descriptor:


this is the bitcoin-cli command to list addresses based on this descriptor:

./bitcoin-cli deriveaddresses
“wpkh((00000000/84h/0h/0h)xpub6DP….xyz/0/*)#checksum” “(0,2)”

How to create actuall watch only wallet so that I can get automatically first unused address?

c# – ASP.NET Core singleton with a thread-safe property that can be changed

Thanks to ASP.NET Core dependency injection, there’s no need to follow the Singleton pattern; any class will do.

What I want to do is to have a class that will store a value that’ll be used by another methods inside the app. A specific class is in charge of updating this value. What I’m concerned is the problem of a thread reading the value while the specific class updates it, given that I haven’t done enough concurrency to feel confident.

So I came up with this. Is it correct for what I want it to do?

public class DynamicValueStore
    private readonly object _lock_obj;
    private string _value;

    public string Value
            lock (_lock_obj)
                return _value;  

    public DynamicValueStore()
        _lock_obj = new object();
        _value = string.Empty;

    public void UpdateValue(string value)
        if (string.IsNullOrWhiteSpace(value))
            throw new ArgumentNullException(nameof(value));
        lock (_lock_obj)
            _value = value;

bitcoin core – Brother died and I am sole survivor..just found out he has a wallet. How do I go about getting his bit coins I have no info

I have no info..

Without information, you cannot get control of any Bitcoin your brother possessed.

You need some details of his wallet or of his account with a Bitcoin exchange.

How do I retreive

If he looked after his own money in a Bitcoin wallet on a computer or phone, you need to be able to log in to that device and run the wallet program and enter any password he set on the wallet. He may have kept a note of his wallet’s “private key” or its 12, 18 or 24-word “recovery phrase” written down somewhere safe. E.g. on paper or stamped metal in a safe. If so, you can use this information on a different computer to create a new wallet that controls the same money.

If he had an account with a business that looked after his money for him, you’ll need to find out the name of that business and his login details. It is possible you would find some details in his old email messages.

I have death certificate.

That might be of use if his money was in an exchange and you know his account name but not his account password. You or the executor of his estate would need to contact the exchange directly about this.

You will be contacted by people offering to help you. 99% of these will be scammers intending to trick you into trusting them with any details you find, or who will trick you into paying invented recovery fees but who will never give you access to your brother’s money. Be very very careful.

security – Should I be using the “encrypt wallet” feature in Bitcoin Core?

All my wallet.dats have no password. However, the internal hard disk where the “live” one is located is encrypted, and so are the offline storage devices where I have my “cold” wallet.dat.

I have known about the feature to encrypt your wallet.dat in Bitcoin Core for a long time, but never dared to do it. It feels like I will become one of those who forgot their password, even if I store it in multiple text documents on those redundant, encrypted, offline backups. I’ve had text files randomly get garbled many times for seemingly no reason. And it just makes my skin crawl to think of the possibility that I will one day have a wallet.dat but not be able to ever access it!

Plus, if I encrypt the “live” one, I can say “good bye” to any automation through the RPC API, which is obviously a requirement to run a Bitcoin-accepting service.

But the cold one? I feel extremely scared of it flying through my network cable away from my control. I wish I would dare to encrypt it, but I just don’t. It’s too scary. I’m already more than scared enough that my backup disks will fail or that I will forget the password to decrypt those! Or that they are all seized and broken into with their quantum computers.

I’ve spent a ridiculous amount of time worrying and thinking about my security, especially as the Bitcoin value has increased so much. Still, it feels like I’m not at all safe enough and that it’s not even possible to be secure without going to such ridiculous lengths that life becomes one long ordeal.

And I don’t even own lots of BTC. I can imagine how paranoid people with like 100 or 1,000 BTC feel now…

bitcoin core – Verifying a P2WSH by hand

To test my understanding of the signing and verifying process i tried to verify a random some random Bitcoin transactions by hand. Sadly i got stuck with a P2WSH transaction, i choose the following transaction with Hash c53b99c9fdba60fd47c6026177d3f6e1ed6d3abde8f433364619aa7d437dad26

With the raw transaction:


I can deserialize this to:

TX version number = 00000001
Inputs count = 01
TX from hash = a7c4fe84bd121e57630c067b455763747ee4fc09b9e220f4fca46008bce59821
TX outpoint Index = 00000001
Input script =
Sequence number = ffffffff
Outputs count = 02
Value(base 10) = 660000
Output script = a91417b9a9afddaae527d25788bce2202563d4ab0d0587
Value(base 10) = 1174148
Output script = 0020701a8d401c84fb13e6baf169d59684e17abd9fa216c8cc5b9fc63d622ff8c58d
Witness 0 0 = 00
Witness 0 1 = 473044022014cd600863ad3c9f6802383fe814a693a77144117cf7694f63b558b8c02d801c02201c3ad9901f659742668caf770f3d7f89a3633f9ccd2bfdd6a7c6f7529fe7b43101
Witness 0 2 = 473044022047e4ad9788da6b764e723dd71d9fe07a217e48871129a672ef2788eb0d331a7a02206107b10c23e8720df9f1e5f609c471726066c5b72c56ee774615498f8fe62e8d01
Witness 0 3 = 6952210375e00eb72e29da82b89367947f29ef34afb75e8654f6ea368e0acdfd92976b7c2103a1b26313f430c4b15bb1fdce663207659d8cac749a0e53d70eff01874496feff2103c96d495bfdd5ba4145e3e046fee45e84a8a48ad05bd8dbb395c011a32cf9f88053ae
Lock time = 00000000

Now i try to compute the MessageHash that gets signed:

hashPrevouts = sha256²(2198e5bc0860a4fcf420e2b909fce47e746357457b060c63571e12bd84fec4a701000000)
hashSequence = sha256²(ffffffff)
hashOutputs = sha256²(20120a0000000000a91417b9a9afddaae527d25788bce2202563d4ab0d058784ea1100000000000020701a8d401c84fb13e6baf169d59684e17abd9fa216c8cc5b9fc63d622ff8c58d)

Version: 01000000
hashPrevouts: 65aa319c96c046e8589c758adf7441d335682d3fc76df649180c4f94a1c4a731
hashSequence: 3bb13029ce7b1f559ef5e747fcac439f1455a2ec7c5f09b72290795e70665044
outPoint: 2198e5bc0860a4fcf420e2b909fce47e746357457b060c63571e12bd84fec4a701000000
scriptCode: 6952210375e00eb72e29da82b89367947f29ef34afb75e8654f6ea368e0acdfd92976b7c2103a1b26313f430c4b15bb1fdce663207659d8cac749a0e53d70eff01874496feff2103c96d495bfdd5ba4145e3e046fee45e84a8a48ad05bd8dbb395c011a32cf9f88053ae
value: 345c1d0000000000
nSequence: ffffffff
hashOutputs: 58d6a86eb99a911735d2f262a9fc13fcf0f8422d75e25ba04db120f65cf573d6
nLocktime: 00000000
sighash: 01000000

This will give me the MessageHash = 8560e61d0167f784d0cdaf9d45ba0e1be752e94d30a34339d976b01e50f0e366

But if i try to verify this MessageHash with the first Signature(473044022014cd600863ad3c9f6802383fe814a693a77144117cf7694f63b558b8c02d801c02201c3ad9901f659742668caf770f3d7f89a3633f9ccd2bfdd6a7c6f7529fe7b43101), which has R = 14cd600863ad3c9f6802383fe814a693a77144117cf7694f63b558b8c02d801c and S = 1c3ad9901f659742668caf770f3d7f89a3633f9ccd2bfdd6a7c6f7529fe7b431 against any of the 3 PubKeys in Witness 0 3, i always get the the Signature is not valid.

Can someone tell me where i got wrong ?

bitcoind – Is there a script for bitcoin core which prints all spendable UTXOs given a private seed?

You can import a descriptor composed of the xpriv(s) (or xpub(s) if you just want to watch the coins) to the bitcoind wallet, and then rescan the block chain for transactions involving derived key up to a configured gap limit.

For importing the descriptor, use the importmulti RPC call in versions <0.21 and the importdescriptors RPC as of 0.21 (upcoming).

Both calls allow you to pass a creation timestamp in order to rescan the block chain from this point. You can otherwise manually call rescanblockchain.
Note that, depending on the number of blocks you are scanning, it will take some time. You can monitor the progress in your debug.log.

bitcoin core – How a new wallet knows balances locked in P2SH transactions?

If my old wallet created and submitted a P2SH TX to the blockchain, and I migrate to a completely different wallet, how can the new wallet detect that that UTXO belongs to the user? Since the script is hashed, it can be anything and contain unpredictable information, like other PKHs in multisig transactions