nervosnetwork / ckb

The Nervos CKB is a public permissionless blockchain, and the layer 1 of Nervos network.
https://www.nervos.org
MIT License
1.15k stars 228 forks source link

In subscription channel, topic `proposed_transaction` keeps inactive #4521

Open code-monad opened 2 months ago

code-monad commented 2 months ago

Bug Report

Current Behavior

When using rpc's subscription, topic proposed_transaction has no notify at all. https://github.com/nervosnetwork/ckb/tree/develop/rpc#proposed_transaction It all returns a successful subscription id when sub to these two topic(new_transaction, proposed_transaction); but only topic new_transaction has notification pushes

Expected Behavior

Proposed transaction will also push notification followed by the status of txpool

Environment

Additional context/Screenshots

What I'm implementing is as follows: I want to be notified when a specific rule of transactions is posted to nodes. I will then perform certain actions and determine when the transaction is committed to the block. Depending on the different statuses of the transaction, I will trigger different business logic branches.

It might be more convenient to add a new topic like "transaction packed." Currently, we can only poll results from get_transaction to get status updates.

chenyukang commented 2 months ago

how large is the number of transactions, it may related to this performance issue: https://github.com/nervosnetwork/ckb/issues/4489

117 is release with a fix for it.

gpBlockchain commented 2 months ago

If you want to subscribe to a proposed_transaction, you need to open the miner module ckb.toml

 [block_assembler]
 code_hash = "0x9bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8"
 args = "ckb-cli util blake2b --prefix-160 <compressed-pubkey>"
 hash_type = "type"
 message = "A 0x-prefixed hex string"
code-monad commented 2 months ago

how large is the number of transactions, it may related to this performance issue: #4489

117 is release with a fix for it.

just the same as the online chains; we do not push pressure directly on it. currently is like 20/min according to the explorer

If you want to subscribe to a proposed_transaction, you need to open the miner module ckb.toml

 [block_assembler]
 code_hash = "0x9bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8"
 args = "ckb-cli util blake2b --prefix-160 <compressed-pubkey>"
 hash_type = "type"
 message = "A 0x-prefixed hex string"

this might be the problem. will add it and do a re-test

code-monad commented 2 months ago

Additional context/Screenshots

What I'm implementing is as follows: I want to be notified when a specific rule of transactions is posted to nodes. I will then perform certain actions and determine when the transaction is committed to the block. Depending on the different statuses of the transaction, I will trigger different business logic branches.

It might be more convenient to add a new topic like "transaction packed." Currently, we can only poll results from get_transaction to get status updates.

I have added my context. maybe we can add a new subscription topic to get notice of transaction packed?

code-monad commented 2 months ago

If you want to subscribe to a proposed_transaction, you need to open the miner module ckb.toml

 [block_assembler]
 code_hash = "0x9bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8"
 args = "ckb-cli util blake2b --prefix-160 <compressed-pubkey>"
 hash_type = "type"
 message = "A 0x-prefixed hex string"

after following this, the proposed_transaction subscription works as expected