-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove the lock from SendersFeeMonitor and rename it to TransactionVerificationContext #1756
Conversation
…rificationContext
The UTs need to be fixed. |
We'll fix the UT. |
If we remove the lock we should close this (#1507) and add a comment that it's not thread safe |
See #1759 |
@neo-project/ngd-shanghai It needs to be tested. |
I will have a test.
|
There is one issue needed to be investigated. When sending parallel tx, and somehow there are txs can not be relayed and stayed in the memory pool, then send valid tx will not either added in the mempool, or relay to the consensus node.
|
How does this happen? |
Not sure how this happen, I am trying to reproduce it. Currently thought it maybe caused by two addresses in the account, and one with insufficient gas and one with enough gas, send massive gas at the same time(use sendtoaddress request). |
I'll help investigate the problem tomorrow. |
|
For comparison, use Neo without this PR, there is not such issue, when stop sending massive tx, tx in mempool can be sent successfully. |
@cloud8little Please test it again. |
Got it. |
This is correct, it's insufficient, as there are 9 txs in mempool.
The 9 txs need to be rebroadcastet, but it takes a lot of time. This is still under confirmation. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The code looks well, waiting for @cloud8little
There is still the issue, and initial balance is
after running massive sendtoaddress requests:
It can be rebroadcast,but can not added to the blockchain. |
Why they can't be added to blockchain? |
@cloud8little could you try without this PR the same tests? |
Tried without this PR, with random sending massive tx and with the similar wallet asset configuration, out of 1/10+ times, there will be the same issue: one tx stay in the mempool and can not be broadcast. Compare with this PR(about show up 1/4 times), the issue show up less, it is easier to show up in this PR.
Not very clear with this, only found the following lines can be touched. but there is no tx in CN node's mempool. neo/src/neo/Ledger/MemoryPool.cs Lines 446 to 450 in 9d996e0
|
Then I think that it's not related to this PR, we can merge it, and open a new issue |
It's possible that this node have this tx in |
That's it! The transactions are removed by neo/src/neo/Ledger/MemoryPool.cs Lines 296 to 309 in 9d996e0
|
I will merge this PR first. |
* Allow call from native contract (#1700) * Fix MethodCallback (#1723) * Fix #1714 (#1715) * Add base64 SYSCALLs (#1717) * Neo.VM.3.0.0-CI00230 (#1725) * Allow to iterate buffer (#1726) * Buffer iterator * Rename * Remove using Co-authored-by: Erik Zhang <[email protected]> * Update StorageContext.cs (#1728) StorageContext needs to be public so it can be accessed by Neo Debugger Co-authored-by: Erik Zhang <[email protected]> * Fix return value check (#1730) Co-authored-by: Shargon <[email protected]> * Fix ContractEventDescriptor (#1733) * fix enumerator (#1744) Co-authored-by: Tommo-L <[email protected]> * Change json fields to all lower case for consistency (#1736) * Replace DataCache.Find by DataCache.Seek (#1740) * replace DataCache.Find by DataCache.Seek * fix order * optimize * Update ByteArrayComparer.cs * Update ByteArrayComparer.cs * Update DataCache.cs * fix comments * fix comments * fix comments * Update DataCache.cs * Update DataCache.cs * Reorder methods Co-authored-by: Tommo-L <[email protected]> Co-authored-by: erikzhang <[email protected]> Co-authored-by: Shargon <[email protected]> * Add MaxVerificationGas (#1745) Co-authored-by: Shargon <[email protected]> * Create KeyBuilder (#1748) * Speed up the initialization of ApplicationEngine. (#1749) * Change nef checksum to double SHA256 (#1751) * Change to double SHA256 * Clean code * Revert change * Clean code * Fix checksum * Update NefFile.cs * Fix compile * Clean code Clean code Fix checksum Update NefFile.cs Fix compile * Optimize * Optimize * Fix Co-authored-by: erikzhang <[email protected]> * Check witnesses on isStandard (#1754) * Check witness on isStandard * Add IsDeployed * Add IsPayable * Fix UT * format * Add coverage * Remove IsPayable, IsDeployed * Move NEP10 to manifest (#1729) * NEP10 abi * To lower case * Move to Manifest * Clean code * Update ContractManifest.cs * Update ContractManifest.cs * Fix native contracts Co-authored-by: Erik Zhang <[email protected]> * Capture fault Exception (#1761) * Capture faultException * Update Wallet error * Remove flag check * Clean code * Sender from signers (#1752) * Sender from signers * Remove co- * Move signers outside attributes * Fix UT and remove Signers class * Fix UT * Add FeeOnly scope * Remove orderBy * Remove _signersCache * Fix Signers * Fix WitnessScope * Fix Sender * Update TransactionAttributeType.cs * Update Wallet.cs * Fix Wallet * Rename * Update Wallet.cs * Update Wallet.cs * Partial UT fix * More UT fixes * Fix Sender's WitnessScope * Fix Wallet * Fix UT * Explicit FeeOnly for DeployNativeContracts * Same order as serialization * Test FeeOnly * dotnet format * format Co-authored-by: Erik Zhang <[email protected]> * IApplicationEngineProvider (#1758) * Remove the lock from SendersFeeMonitor and rename it to TransactionVerificationContext (#1756) * Add EffectiveVoterTurnout (#1762) * Remove AllowedTriggers from SYSCALLs (#1755) * fix validatorscount (#1770) Co-authored-by: Tommo-L <[email protected]> * impl SeekInternal Co-authored-by: Erik Zhang <[email protected]> Co-authored-by: Shargon <[email protected]> Co-authored-by: Harry Pierson <[email protected]> Co-authored-by: Luchuan <[email protected]> Co-authored-by: Tommo-L <[email protected]> Co-authored-by: joeqian <[email protected]>
* Allow call from native contract (#1700) * Fix MethodCallback (#1723) * Fix #1714 (#1715) * Add base64 SYSCALLs (#1717) * Neo.VM.3.0.0-CI00230 (#1725) * Allow to iterate buffer (#1726) * Buffer iterator * Rename * Remove using Co-authored-by: Erik Zhang <[email protected]> * Update StorageContext.cs (#1728) StorageContext needs to be public so it can be accessed by Neo Debugger Co-authored-by: Erik Zhang <[email protected]> * Fix return value check (#1730) Co-authored-by: Shargon <[email protected]> * Fix ContractEventDescriptor (#1733) * fix enumerator (#1744) Co-authored-by: Tommo-L <[email protected]> * Change json fields to all lower case for consistency (#1736) * Replace DataCache.Find by DataCache.Seek (#1740) * replace DataCache.Find by DataCache.Seek * fix order * optimize * Update ByteArrayComparer.cs * Update ByteArrayComparer.cs * Update DataCache.cs * fix comments * fix comments * fix comments * Update DataCache.cs * Update DataCache.cs * Reorder methods Co-authored-by: Tommo-L <[email protected]> Co-authored-by: erikzhang <[email protected]> Co-authored-by: Shargon <[email protected]> * Add MaxVerificationGas (#1745) Co-authored-by: Shargon <[email protected]> * Create KeyBuilder (#1748) * Speed up the initialization of ApplicationEngine. (#1749) * Change nef checksum to double SHA256 (#1751) * Change to double SHA256 * Clean code * Revert change * Clean code * Fix checksum * Update NefFile.cs * Fix compile * Clean code Clean code Fix checksum Update NefFile.cs Fix compile * Optimize * Optimize * Fix Co-authored-by: erikzhang <[email protected]> * Check witnesses on isStandard (#1754) * Check witness on isStandard * Add IsDeployed * Add IsPayable * Fix UT * format * Add coverage * Remove IsPayable, IsDeployed * Move NEP10 to manifest (#1729) * NEP10 abi * To lower case * Move to Manifest * Clean code * Update ContractManifest.cs * Update ContractManifest.cs * Fix native contracts Co-authored-by: Erik Zhang <[email protected]> * Capture fault Exception (#1761) * Capture faultException * Update Wallet error * Remove flag check * Clean code * Sender from signers (#1752) * Sender from signers * Remove co- * Move signers outside attributes * Fix UT and remove Signers class * Fix UT * Add FeeOnly scope * Remove orderBy * Remove _signersCache * Fix Signers * Fix WitnessScope * Fix Sender * Update TransactionAttributeType.cs * Update Wallet.cs * Fix Wallet * Rename * Update Wallet.cs * Update Wallet.cs * Partial UT fix * More UT fixes * Fix Sender's WitnessScope * Fix Wallet * Fix UT * Explicit FeeOnly for DeployNativeContracts * Same order as serialization * Test FeeOnly * dotnet format * format Co-authored-by: Erik Zhang <[email protected]> * IApplicationEngineProvider (#1758) * Remove the lock from SendersFeeMonitor and rename it to TransactionVerificationContext (#1756) * Add EffectiveVoterTurnout (#1762) * Remove AllowedTriggers from SYSCALLs (#1755) * fix validatorscount (#1770) Co-authored-by: Tommo-L <[email protected]> * workflows: use checkout action v2 (#1775) * Update git workflow * Update .github/workflows/main.yml Co-authored-by: Erik Zhang <[email protected]> Co-authored-by: Erik Zhang <[email protected]> * Add cache to native contract executions V2 (#1766) * cache v2 * More optimizations * Policy contract optimization * Remove interporable variable * Two more * Add Set * Optimizations * Optimize Co-authored-by: erikzhang <[email protected]> * Optimize attributes (#1774) * Add length before compression data (#1768) * Add length before compression * Optimize * Fix UT * Add UT * Add UT Co-authored-by: erikzhang <[email protected]> * Fix VerifyWitnesses (#1776) * Ensure non predictable peers (#1739) * Plugins from List to array * Move false to init * Fix UT * Refactor * Add Exception Message For CreateContract (#1787) * Add Exception Message When Create Contract * Add Exception Message * Code optimization * add UT Co-authored-by: Shargon <[email protected]> Co-authored-by: Qiao Jin <[email protected]> Co-authored-by: Erik Zhang <[email protected]> Co-authored-by: Shargon <[email protected]> Co-authored-by: Harry Pierson <[email protected]> Co-authored-by: Luchuan <[email protected]> Co-authored-by: Tommo-L <[email protected]> Co-authored-by: joeqian <[email protected]> Co-authored-by: cloud8little <[email protected]> Co-authored-by: Qiao Jin <[email protected]>
No description provided.