RPCclient / BTCD не получает уведомления - PullRequest
0 голосов
/ 20 марта 2019

Я использую BTCD и использую их клиент: "github.com/btcsuite/btcd/rpcclient"

Я подключаюсь к BTCWallet, который правильно подключен.Я могу вызвать все команды, но при настройке NotificationHandlers.RPC-клиент не получает никаких уведомлений, кроме OnClientConnected.Я тоже пробую:

ntfnHandlers := rpcclient.NotificationHandlers{
        OnClientConnected: func() {
            logs.Error("OK")
        },
        OnFilteredBlockConnected: func(height int32, header *wire.BlockHeader,
            txs []*btcutil.Tx) {

            logs.Debug("Block connected: %v (%d) %v", height, header, txs)
        },
        OnFilteredBlockDisconnected: func(height int32, header *wire.BlockHeader) {

            logs.Debug("Block disconnected: (%d) %v", height, header)
        },

        OnRelevantTxAccepted: func(transaction []byte) {

            logs.Debug("OnRecvTx: (%v)", transaction)
        },

        OnTxAccepted: func(hash *chainhash.Hash, amount btcutil.Amount) {

            logs.Debug("OnTxAccepted: ", amount)
        },

        OnWalletLockState: func(locked bool) {

            logs.Debug("OnWalletLockState: ", locked)
        },

        OnUnknownNotification: func(method string, params []json.RawMessage) {

            logs.Debug("OnUnknownNotification: %v", method)

        },

        OnTxAcceptedVerbose: func(txDetails *btcjson.TxRawResult) {

            logs.Debug("OnTxAcceptedVerbose: %v", txDetails.BlockHash)
        },
    }
// Notice the notification parameter is nil since notifications are
// not supported in HTTP POST mode.
RPCclient, err := rpcclient.New(c.rpcConf, &ntfnHandlers)
if err != nil {
    logs.Error("RunProcess(): RPCclient.New %s\n", err.Error())
    return err
}
if err := RPCclient.NotifyBlocks(); err != nil {
    log.Fatal(err)
    return err
}
logs.Info("NotifyBlocks: Registration Complete")

if err := RPCclient.NotifyNewTransactions(true); err != nil {
    log.Fatal(err)
    return err
}
logs.Info("NotifyNewTransactions: Registration Complete")

blockCount, err := RPCclient.GetBlockCount()
if err != nil {
    log.Fatal(err)
    return err
}
c.Client.WaitForShutdown()

Это мой Конфиг:

connCfg := &rpcclient.ConnConfig{
    Host:         xxx,
    User:         xxx,
    Pass:         xxx,
    Certificates: certificate,
    Endpoint:     "ws",
    HTTPPostMode: false, // Bitcoin core only supports HTTP POST mode
    DisableTLS:   false, // Bitcoin core does not provide TLS by default

}

Сообщения сервера:

web_1      | 2019/03/20 03:30:42.029 [E] [infrastructure.go:1035]  OK
web_1      | 2019/03/20 03:30:42.115 [I] [asm_amd64.s:1333]  NotifyBlocks: Registration Complete
web_1      | 2019/03/20 03:30:42.202 [I] [asm_amd64.s:1333]  NotifyNewTransactions: Registration Complete
web_1      | 2019/03/20 03:30:42.305 [I] [asm_amd64.s:1333]  Block count: 1485308
...