Dogeparty Protocol Reference Implementation
dogepartyxdp / dogeparty-lib Goto Github PK
View Code? Open in Web Editor NEWDogeparty Protocol Reference Implementation
License: MIT License
Dogeparty Protocol Reference Implementation
License: MIT License
dogeparty-lib is currently choking while parsing an issuance.
[2024-02-12 22:54:15][INFO] Block: 5087539 (5.78s, hashes: L:24f11 / TX:db963 / M:bce2f)
[2024-02-12 22:55:24][WARNING] ParseTransactionError for tx d1a2de9706704ac3ec13ee35c9de87c7d05b5c1059ae2ebbc20c6eb18802a4ba: No such asset: ICEBLOOD
[2024-02-12 22:55:24][ERROR] Unhandled Exception
Traceback (most recent call last):
File "/dogeparty-lib/dogepartylib/lib/blocks.py", line 109, in parse_tx
issuance.parse(db, tx, message, message_type_id)
File "/dogeparty-lib/dogepartylib/lib/messages/issuance.py", line 470, in parse
description = util.get_asset_description(db, asset)
File "/dogeparty-lib/dogepartylib/lib/util.py", line 537, in get_asset_description
if not issuances: raise exceptions.AssetError('No such asset: {}'.format(asset))
dogepartylib.lib.exceptions.AssetError: No such asset: ICEBLOOD
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/bin/dogeparty-server", line 11, in <module>
load_entry_point('dogeparty-cli', 'console_scripts', 'dogeparty-server')()
File "/dogeparty-cli/dogepartycli/__init__.py", line 16, in server_main
server.main()
File "/dogeparty-cli/dogepartycli/server.py", line 172, in main
server.start_all(db)
File "/dogeparty-lib/dogepartylib/server.py", line 494, in start_all
blocks.follow(db)
File "/dogeparty-lib/dogepartylib/lib/blocks.py", line 1477, in follow
new_ledger_hash, new_txlist_hash, new_messages_hash, found_messages_hash = parse_block(db, block_index, block_time)
File "/dogeparty-lib/dogepartylib/lib/blocks.py", line 211, in parse_block
raise e
File "/dogeparty-lib/dogepartylib/lib/blocks.py", line 205, in parse_block
parse_tx(db, tx)
File "/dogeparty-lib/dogepartylib/lib/blocks.py", line 148, in parse_tx
raise exceptions.ParseTransactionError("%s" % e)
dogepartylib.lib.exceptions.ParseTransactionError: No such asset: ICEBLOOD
From a user :
Anyone understand this type of error? Sometimes when i want to send doges from dispenser wallets, i get this error (basically saying: you need 1 doge more than you got)
"Error composing send transaction via API: Insufficient DOGE at address xxxx. (Need approximately xxx DOGE.) To spend unconfirmed coins, use the flag --unconfirmed."
I believe we fixed this issue in counterparty-lib by adding some reconnect code in this commit
CounterpartyXCP/counterparty-lib@4734383
We should update dogeparty codebase to take advantage of this fix to resolve this issue
Seems we are unable to LOCK token supply now... probably related to the issue-transfer-lock updates we made to issuances.
This issuance should have locked LOCKTEST supply but it is not being seen/encoded as a lock
Using asset TRICERADOG as an example, when using the API to retrieve json data, the following is returned:
"escrow_quantity":"5","give_quantity":"1","give_remaining":"5"
When looking at the actual dispenser transaction at:
https://dogeparty.xchain.io/tx/8b8299a1ca6e5d03e5cb26a4e7ef44e50b3fb2d5962114e8df3b256608c8c7e1
It shows the dispenser as closed, with "Give Remaining" showing 0.
I am using the below json to make an API request to the CP API, then signing and broadcasting the transactions, but unfortunately dogeparty does not appear to be picking up the transaction.
{
"method": "create_issuance",
"params": {
"source": "DJDog8zPScfL6dXawkdYDfiQDnGqSUrA4P",
"asset": "TWERK",
"quantity": 100,
"divisible": 0,
"reset": true,
"description": "imgur/RiV3bCX.gif;Dogeparty Twerk",
"transfer_destination": null,
"lock": false,
"fee": 100000000,
"allow_unconfirmed_inputs": true
},
"jsonrpc": "2.0",
"id": 0
}
We should add a reset
flag to the issuances table so we can easily track if an issuance was a reset, without the need to make additional queries (look for a destroy)
doing a reparse using the current code in the repo results in a reparse failure.
[2023-12-23 13:27:05][INFO] Block (re-parse): 3847970 (hashes: L:c2b9c / TX:b84d1 / M:9ce07 [overwrote c24312f491942453319becad4a8a5a36b602cfabe9ebdd66f005ba410d8ff542])
[2023-12-23 13:27:06][ERROR] Unhandled Exception
Traceback (most recent call last):
File "/usr/local/bin/dogeparty-server", line 11, in <module>
load_entry_point('dogeparty-cli', 'console_scripts', 'dogeparty-server')()
File "/dogeparty-cli/dogepartycli/__init__.py", line 16, in server_main
server.main()
File "/dogeparty-cli/dogepartycli/server.py", line 163, in main
server.reparse(db)
File "/dogeparty-lib/dogepartylib/server.py", line 499, in reparse
blocks.reparse(db, block_index=block_index, quiet=quiet)
File "/dogeparty-lib/dogepartylib/lib/blocks.py", line 1075, in reparse
previous_messages_hash=previous_messages_hash)
File "/dogeparty-lib/dogepartylib/lib/blocks.py", line 214, in parse_block
new_ledger_hash, found_ledger_hash = check.consensus_hash(db, 'ledger_hash', previous_ledger_hash, util.BLOCK_LEDGER)
File "/dogeparty-lib/dogepartylib/lib/check.py", line 123, in consensus_hash
field, block_index, calculated_hash, found_hash))
dogepartylib.lib.check.ConsensusError: Inconsistent ledger_hash for block 3847979 (calculated 19fa80627d72efbc49ac22ceef065e181f30be9a45397f1758e9817487bfe7a4, vs fa6e31799f2a8117f69a1b48f1f62d935f4e45d76d33316842192c9b79df8a15 in database).
Need to track down why reparse failure and fix / verify full reparse works before we can out put 9.61.1 release
There is an error when an DOGE order have many matchs and turns filled before one of its matches expire, adding the items expired to give_remaning and then triggering a sanity check.
This happened to the order with tx_index = 35,938 with hash fc8ae9d87ac887c8195f48d7d56a2a253fb34f5dbb45f61aea1a69ce226b444b.
This order was giving 10 DOGEMASTERCD for 100.00000000 DOGES. It had 4 matches for 2 DOGEMASTERCD, 2 DOGEMASTERCD, 2 DOGEMASTERCD, 6 DOGEMASTERCD respectively. The first two matches expired but the last two were completed.
When the 6 DOGEMASTERCD was completed, the order became filled and the give remaining was 0, after that, the second match expired adding 2 DOGEMASTERCD to the give_remaining and leaving the order filled.
This generates a sanity check fail because those 2 DOGEMASTERCD get ignored because the order is filled, so 100 DOGEMASTERCD issued are not equal to 98 DOGEMASTERCD held.
https://github.com/CounterpartyXCP/counterparty-lib/issues/1126
This issue was there in the counterparty forum as well.
I wonder if it has not been addressed on dogeparty.
Even after I inserted a delay of 5 minutes between two API calls and after a raw transaction was created using the create_send method, the error message ( '{"error": {"code": -32001, "message": "Error composing send transaction via API: Insufficient DOGE at address... ) randomly comes in some transactions but almost always on the second call. Just making the same call again within a second gives a correct response.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.