
* added initial interfaces for backend, refactored Asset and MetaData logic Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * adjusted input dataclass, added queries, removed convert Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * created backend models folder, replaced token_hex with uuid Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * Add cleanup and add constants Signed-off-by: cybnon <stefan.weber93@googlemail.com> * added to and from static methods to asset, input model and removed logic from tools Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * simplified store_bulk_transaction and corresponding query, adjusted test cases Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * changed script queries Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * Add Output model Signed-off-by: cybnon <stefan.weber93@googlemail.com> * Adapt Output class Signed-off-by: cybnon <stefan.weber93@googlemail.com> * Further fixes Signed-off-by: cybnon <stefan.weber93@googlemail.com> * Further fixes * Get rid of decompose Signed-off-by: cybnon <stefan.weber93@googlemail.com> * refactored init.lua Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * refactored drop.lua Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * Add transaction data class Signed-off-by: cybnon <stefan.weber93@googlemail.com> * refactored init.lua Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * fix tests Signed-off-by: cybnon <stefan.weber93@googlemail.com> * Fix more tests Signed-off-by: cybnon <stefan.weber93@googlemail.com> * Format file * Fix recursion error * More fixes Signed-off-by: cybnon <stefan.weber93@googlemail.com> * Further fixes Signed-off-by: cybnon <stefan.weber93@googlemail.com> * using init.lua for db setup Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * fixed flush_db for new tarantool implementation Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * changed unique constraints Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * used new indexes on block related db operations Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * Adapt models Signed-off-by: cybnon <stefan.weber93@googlemail.com> * Check if blocks is empty * adjusted get_txids_filtered for new indexes Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * Adaptions due to schema change Signed-off-by: cybnon <stefan.weber93@googlemail.com> * fixed get block test case Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * Fix subcondition serialization Signed-off-by: cybnon <stefan.weber93@googlemail.com> * Remove unnecessary method Signed-off-by: cybnon <stefan.weber93@googlemail.com> * More fixes * renamed group_txs and used data models in fastquery Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * adjusted query test cases, removed unused code Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * replaced asset search with get_asset_by_cid Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * added limit to asset queries Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * replaced metadata search with cid lookup Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * fixed most of the test_lib test cases Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * fixed election test cases Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * fixed some more test cases Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * fixed 'is' vs '==' issue Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com> * - blackified & fixed recovery / delete transactions issues becaues of data model transitions - reintegrated get_transaction() call in query -> delegating this to get_complete_transactions_by_ids Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com> * show election status uses the governance table from now on show election status maps the asset["data"] object properly Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com> * fixed input object differences between old / new version and lookup of transaction in the governance pool Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com> * fixed TX lookup issues due to different pools Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com> * fixed wrong index name issue: transaction_by_asset vs transaction_by_asset_id Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com> * fixed asset class key mixup Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * moved field removal methods to DbTransaction redefined strcuture of DbTransction.to_dict() to be equal to the one of Transactions.to_dict() Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com> * added proper input conversion of the test cases and a proper input validation and object converion Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com> * simplified imports fixed transfer input issues of the tests Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com> * fixed comparision issue : dict vs. object Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com> * fixed schema validation errors Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * added verification of ConditionDetails to the owner verification to avoid mixup between ConditionDetails and SubCondition fixed Object comparision issues due to object changes Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com> * fixed object handling issue and complicated stuff Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com> * added missing import Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com> * added proper corner case handling in case a requested block is not found Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com> * fixed object comparision issue Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com> * fixed output handling for validate_transfer_inputs Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * fixed wrong search pool usage Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com> * fixed zenroom testcase Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com> * fixed last abci issues and blackified the code Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com> * added tarantool exception catching and raising as well as logging Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com> * fixed obj comparision issue in test_get_spent_issue_1271 Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com> * added raiing CriticialDoubleSpend Exception for governance and transactions fixed search space issue with election / voting commit lookup Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com> * * made returned outputs unique (get_owned_ids) * added delete_output method to init.lua * fixd output deletion issue by relaying the deletion to lua instead of the python code Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com> * fixed rollback after crash Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * adjusted assets=None to assets=[{"data":None}] to avoid exeptions in the background service Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com> * removed unused code Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * removed unused code, reverted transaction fetching, added return types to queries Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * removed duplicate code Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * removed depricated code Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * store transactions of various versions (backwardcompatibility) added _bdb variable to init/drop DBs for the single use cases (started failing as TXs are looked up in DB - compared to before) Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com> * added support for v2.0 transaction to DB writing/reading Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com> * fixed merge errors (arguments ... ) Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com> * blackified Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com> * Simplified unit tests (#294) * adjusted make test * 1st improvments to ease testing * simplified gh actions * adjusted gh action file * removed deps * added sudo to apt calls * removed predefined pytest module definitions * added installing planetmint into the unit test container * give time to the db container * added environment variables to unit-test.yml * removed acceptances tests from test executions Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com> * removed unused code, updated version number Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> Signed-off-by: cybnon <stefan.weber93@googlemail.com> Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com> Co-authored-by: cybnon <stefan.weber93@googlemail.com> Co-authored-by: Jürgen Eckel <juergen@riddleandcode.com> Co-authored-by: Jürgen Eckel <eckelj@users.noreply.github.com>
Overview
A high-level description of the files and subdirectories of Planetmint.
Files
lib.py
The Planetmint
class is defined here. Most node-level operations and database interactions are found in this file. This is the place to start if you are interested in implementing a server API, since many of these class methods concern Planetmint interacting with the outside world.
models.py
Block
, Transaction
, and Asset
classes are defined here. The classes mirror the block and transaction structure from the documentation, but also include methods for validation and signing.
validation.py
Base class for validation methods (verification of votes, blocks, and transactions). The actual logic is mostly found in transaction
and block
models, defined in models.py
.
processes.py
Entry point for the Planetmint process, after initialization. All subprocesses are started here: processes to handle new blocks, votes, etc.
config_utils.py
Methods for managing the configuration, including loading configuration files, automatically generating the configuration, and keeping the configuration consistent across Planetmint instances.
Folders
commands
Contains code for the CLI for Planetmint.
db
Code for building the database connection, creating indexes, and other database setup tasks.