XRPLF / rippled

Decentralized cryptocurrency blockchain daemon implementing the XRP Ledger protocol in C++
https://xrpl.org
ISC License
4.51k stars 1.46k forks source link

tx() responds "'validated': False" when txn is actually validated in the ledger (Version: [2.0.0]) #4897

Open sgramkumar opened 8 months ago

sgramkumar commented 8 months ago

Issue Description

This issue was seen on altnet, where a Payment transaction was validated on the network, but tx() still responds 'validated': False even after 30 seconds

Steps to Reproduce

  1. My local rippled is connected to altnet

    2024-01-22 21:31:52: 'server_state': 'full', & 'complete_ledgers': 'empty',

Question: First of all, should this happen when server_state is full, complete_ledgers be "empty"?

  1. Assuming, it was ok, after 30 seconds, a Payment transaction was submitted

    2024-01-22 21:32:22: Payment transaction was submitted (Hash: CEB1FBCA545CB2E3A607888DBE2B0AC50A77BE1282EF4672E7DA4D7C45299325

  2. Querying tx() every 5 seconds, returns 'validated': False Here is tx() response 29 seconds after the Payment transaction was submitted

    2024-01-22 21:32:51: 'hash': 'CEB1FBCA545CB2E3A607888DBE2B0AC50A77BE1282EF4672E7DA4D7C45299325', 'status': 'success', 'validated': False}

  3. Verifying the transaction on the explorer, the transaction was actually validated exactly at the time the Payment transaction was submitted.

As seen on the explorer:

This transaction was successful, and validated in ledger 44770635 on January 22, 2024 at 9:32:22 PM UTC

Expected Result

Shouldn't tx() be returning 'status': 'success', 'validated': True

Actual Result

'hash': 'CEB1FBCA545CB2E3A607888DBE2B0AC50A77BE1282EF4672E7DA4D7C45299325', 'status': 'success', 'validated': False}

Environment

Local rippled: 2.0.1-b1

Supporting Files

rippled (61).log

ximinez commented 8 months ago

If completed_ledgers is ~present~ empty, then the server has not found and downloaded a validated ledger yet. In a sense, it is talking to itself. You need to wait until you have a validated_ledger, and complete_ledgers shows something other than empty.

It's a little odd that you're server thought it was in full, but I don't have enough information to speculate why.

The pages listed here may be useful for you. https://xrpl.org/troubleshoot-the-rippled-server.html#troubleshooting

(Edited to fix a typo)

sgramkumar commented 7 months ago

Here is another instance from devnet when server_state is full & complete_ledgers is not empty

2024-02-10 16:04:42    {'info': {'build_version': '2.1.0-rc1', 'complete_ledgers': '4114610-4114615', 'fetch_pack': 1, 'hostid': 'runner-9eueyzwy-project-1346-concurrent-0', 'initial_sync_duration_us': '195177947', 'io_latency_ms': 1, 'jq_trans_overflow': '0', 'last_close': {'converge_time_s': 2, 'proposers': 10}, 'load': {'job_types': [{'in_progress': 1, 'job_type': 'clientRPC'}, {'job_type': 'untrustedValidation', 'per_second': 23}, {'job_type': 'ledgerData', 'peak_time': 3, 'per_second': 1}, {'job_type': 'advanceLedger', 'per_second': 1}, {'job_type': 'trustedValidation', 'per_second': 2}, {'job_type': 'trustedProposal', 'per_second': 3}, {'job_type': 'peerCommand', 'per_second': 57}, {'job_type': 'SyncReadNode', 'peak_time': 1, 'per_second': 73}, {'job_type': 'AsyncReadNode', 'peak_time': 3, 'per_second': 222}, {'job_type': 'WriteNode', 'peak_time': 1, 'per_second': 74}], 'threads': 6}, 'load_factor': 1, 'network_id': 2, 'node_size': 'medium', 'peer_disconnects': '7', 'peer_disconnects_resources': '0', 'peers': 2, 'ports': [{'port': '51234', 'protocol': ['http']}, {'port': '51235', 'protocol': ['peer']}, {'port': '6006', 'protocol': ['ws']}], 'pubkey_node': 'n94HbtjeMG65igSpm5koQpo9rKMyFQ9mQB2cohpYiQeMcssEBhuQ', 'pubkey_validator': 'none', 'published_ledger': 4114615, 'server_state': 'full', 'server_state_duration_us': '13984191', 'state_accounting': {'connected': {'duration_us': '137111898', 'transitions': '3'}, 'disconnected': {'duration_us': '56064692', 'transitions': '3'}, 'full': {'duration_us': '13984191', 'transitions': '1'}, 'syncing': {'duration_us': '2001348', 'transitions': '1'}, 'tracking': {'duration_us': '5', 'transitions': '1'}}, 'time': '2024-Feb-10 16:04:42.848356 UTC', 'uptime': 209, 'validated_ledger': {'age': 1, 'base_fee_xrp': 1e-05, 'hash': '13105CDFCE417C636577E9F5B5611B0A9E9BAEA2D13911C92A0663AC1CCBF06C', 'reserve_base_xrp': 10, 'reserve_inc_xrp': 2, 'seq': 4114637}, 'validation_quorum': 8, 'validator_list': {'count': 1, 'expiration': '2031-Aug-07 19:36:22.000000000 UTC', 'status': 'active'}}, 'status': 'success'}

Payment transaction was submitted at

2024-02-10 16:05:43: 'hash': 'FF8A562D76AB8D950C2F37049F9752FA2FF601B50A6A9B43EC5B3103941C8F5A'


Querying tx() every 5 seconds, returns 'validated': False, even after 29 seconds when the transaction was actually validated well before Here is tx() response 29 seconds after the Payment transaction was submitted 2024-02-10 16:06:12: 'hash': 'FF8A562D76AB8D950C2F37049F9752FA2FF601B50A6A9B43EC5B3103941C8F5A', 'status': 'success', 'validated': False}

Verifying the transaction on the explorer, the transaction was actually validated 7 seconds after the Payment was submitted. As seen on the explorer:

This transaction was successful, and validated in ledger 4114659 on February 10, 2024 at 4:05:50 PM UTC

local rippled.log: https://gist.github.com/sgramkumar/84d80b65805175ff78cee036a25a3fd6

intelliot commented 7 months ago

@sgramkumar please work with @mtrippled and @seelabs on this