Commit graph

21 commits

Author SHA1 Message Date
Michel Santos
4fea001586 Fix Bookie plugin to provide a consistent data state
even when the node is started in replay mode
2022-01-03 10:24:32 -05:00
Michel Santos
8ec87b404f Enhance secondary_index
Enhance secondary_index by distinguishing between
previous objects loaded from persistence versus
new objects created during the session
2022-01-03 09:49:44 -05:00
Nathan Hourt
4d836dacb9 Ref !3/#376: Graphene Updates
This adds the most important updates to Graphene from BitShares. Most notably,
https://github.com/bitshares/bitshares-core/issues/1506

Second most notably, it updates Peerplays' FC to be in sync with BitShares FC.

This is a squash commit of several subcommits. The subcommit messages are
reproduced below:

Replace fc::uint128 with boost::multiprecision::uint128_t

replace smart_ref with shared_ptr

Fixes/Remove Unused

Remove NTP time

Remove old macro

This macro is now in FC, so no need to define it here anymore

Replaced fc::array with std::array

Separate exception declaration and implementation

Adapted to fc promise changes

Fixes

Add back in some of Peter's fixes that got lost in the cherry pick

_hash endianness fixes

Remove all uses of fc/smart_ref

It's gone, can't use it anymore

Replace improper static_variant operator overloads with comparators

Fixes

Remove boost::signals from build system; it's header-only so it's not
listed in cmake anymore.

Also remove some unused hashing code

Impl. pack/unpack functions for extension class

Ref #1506: Isolate chain/protocol to its own library

Ref #1506: Add object_downcast_t

Allows the more concise expression `object_downcast_t<xyz>` instead of
the old `typename object_downcast<xyz>::type`

Ref #1506: Move ID types from db to protocol

The ID types, object_id and object_id_type, were defined in the db
library, and the protocol library depends on db to get these types.
Technically, the ID types are defined by the protocol and used by the
database, and not vice versa. Therefore these types should be in the
protocol library, and db should depend on protocol to get them.

This commit makes it so.

Ref #1506: Isolate chain/protocol to its own library

Remove commented-out index code

Wrap overlength line

Remove unused key types

Probably fix Docker build

Fix build after rebase

Ref #1506/#1737: Some requested changes

Ref #1506/#1737: Macro-fy ID type definitions

Define macros to fully de-boilerplate ID type definitions.

Externalities:
 - Rename transaction_object -> transaction_history_object
 - Rename impl_asset_dynamic_data_type ->
impl_asset_dynamic_data_object_type
 - Rename impl_asset_bitasset_data_type ->
impl_asset_bitasset_data_object_type

The first is to avoid a naming collision on transaction_id_type, and the
other two are to maintain consistency with the naming of the other
types.

Ref #1506/#1737: Fix clean_name()

Ref #1506/#1737: Oops

Fix .gitignore

Externalized serialization in protocol library

Fix compile sets

Delete a couple of ghost files that were in the tree but not part
of the project (I accidentally added them to CMakeLists while
merging, but they're broken and not part of the Peerplays code), and
add several files that got dropped from the build during merge.

General fixes

Fix warnings, build issues, unused code, etc.

Fix #1772 by decprecating cli_wallet -H

More fixes

Fix errors and warnings and generally coax it to build

Fix test

I'm pretty sure this didn't break from what I did... But I can't build
the original code, so I can't tell. Anyways, this one now passes...
Others still fail...

Small fix

Fix crash in auth checks

Final fixes

Last round of fixes following the rebase to Beatrice

Rename project in CMakeLists.txt

The CMakeLists.txt declared this project as BitShares and not Peerplays,
which makes it confusing in IDEs. Rename it to be clear which project is
open.

Resolve #374

Replace all object refs in macros with IDs, and fix affected tests to look
up objects by ID rather than using invalidated refs.

A full audit of all tests should be performed to eliminate any further
usage of invalidated object references.

Resolve #373: Add object notifiers

Various fixes

Fixes to various issues, primarily reflections, that cropped up
during merge conflict resolution

Fix startup bug in Bookie plugin

Bookie plugin was preventing the node from starting up because it
registered its secondary indexes to create objects in its own primary
indexes to track objects being created in other primary indexes, and did
so during its `initialize()` step, which is to say, before the database
was loaded from disk at startup. This caused the secondary indexes to
create tracker objects when the observed indexes were loading objects
from disk. This then caused a failure when these tracker indexes were
later loaded from disk, and the first object IDs collided.

This is fixed by refraining from defining secondary indexes until the
`startup()` stage rather than the `initialize()` stage. Primary indexes
are registered in `initialize()`, secondary indexes are registered in
`startup()`.

This also involved adding a new method, "add_secondary_index()", to
`object_database`, as before there was no way to do this because you
couldn't get a non-const index from a non-const database.

I have no idea how this was working before I got here...

Fix egenesis install

Fixes after updates

Rebase on updated develop branch and fix conflicts
2021-11-11 11:25:47 -05:00
Nathan Hourt
1c0de74aa7
General fixes
Fix warnings, build issues, unused code, etc.
2020-08-23 14:51:45 -05:00
Nathan Hourt
54ce371a4a
Remove all uses of fc/smart_ref
It's gone, can't use it anymore
2020-08-23 14:18:59 -05:00
pbattu123
08318d06a2
Merge Elasticplugin, snapshot plugin and graphene updates to beatrice (#304)
* check witness signature before adding block to fork db

* Replace verify_no_send_in_progress with no_parallel_execution_guard

* fixed cli_wallet log issue

* Port plugin sanitization code

* avoid directly overwriting wallet file

* Implemented "plugins" config variable

* allow plugin to have descriptions

* Merge pull request #444 from oxarbitrage/elasticsearch

Elasticsearch plugin

* Merge pull request #500 from oxarbitrage/elasticsearch-extras

es_objects plugin

* Merge pull request #873 from pmconrad/585_fix_history_ids

Fix history ids

* Merge pull request #1201 from oxarbitrage/elasticsearch_tests2

Elasticsearch refactor

* Merge pull request #1271 from oxarbitrage/es_objects

refine es_objects plugin

* Merge pull request #1429 from oxarbitrage/es_objects_templates

Add an adaptor to es_objects and template function to reduce code

* Merge pull request #1458 from oxarbitrage/issue1455

add option elasticsearch-start-es-after-block to es plugin

* Merge pull request #1541 from oxarbitrage/es_objects_start_after_block

add es-objects-start-es-after-block option

* explicitly cleanup external library facilities

* Merge pull request #1717 from oxarbitrage/issue1652

add genesis data to es_objects

* Merge pull request #1073 from xiangxn/merge-impacted

merge impacted into db_notify

* Merge pull request #1725 from oxarbitrage/issue1682

elasticsearch history api #1682

* change ES index prefixes to Peerplays-specific

* sync develop with beatrice

* fix the data writing to ES during sync issues

* fix CLI tests

* brought updates from mainnet branch (#285)

* Fix unit test failures (#289)

* fixed unit test failures from the recent merges

* fixed unit test failures from the recent merges

* enable snapshot plugin (#288)

* sync fc branch(build optimization changes)

* update to es plugin

* fix verify witness signature method (#295)

* enable mandatory plugins to have smooth transition for next release

* updated tests to keep in-line with plugin changes

Co-authored-by: Sandip Patel <sandip@knackroot.com>
Co-authored-by: Peter Conrad <conrad@quisquis.de>
Co-authored-by: Alfredo <oxarbitrage@gmail.com>
Co-authored-by: Abit <abitmore@users.noreply.github.com>
Co-authored-by: crypto-ape <43807588+crypto-ape@users.noreply.github.com>
Co-authored-by: gladcow <s.gladkov@pbsa.info>
2020-03-09 18:28:13 +05:30
Andrew Moore
da799f84b0 Updating licensing 2018-10-09 11:33:31 -03:00
Eric Frias
3b3a0905ff Change the behavior of the betting markets from being controlled by
a collection of flags (is_live, is_closed) to a single status field.
The status changes in an event can trickle down to the market groups,
and the status changes in market groups can bubble up to events.
2018-02-07 10:16:30 -05:00
Eric Frias
69b00293d9 Only do slow replays when the bookie plugin is loaded 2017-09-07 15:55:44 -04:00
Eric Frias
d333dd3812 Track match/cancel/adjust operations related to a bet in the bookie plugin.
Create a paginated version of get_matched_bets_for_bettor()
2017-09-06 16:52:58 -04:00
Eric Frias
c8ee15df04 Fix get_matched_bets_for_bettor() that wasn't exposed to the JSON API correctly,
fix bookie api which wasn't returning deleted betting markets.
2017-09-05 11:08:55 -04:00
Eric Frias
eedd775405 Add get_matched_bets_for_bettor() to bookie plugin 2017-09-02 19:05:07 -04:00
Eric Frias
85e819185f Allow bookie API to return deleted betting_market, betting_market_group, and event objects 2017-08-10 15:49:53 -04:00
Eric Frias
d13783a3c4 Fix bug that prevented placing bets that were too small to stay on the books,
Add a get_objects() call to the bookie API to provide access to objects that
have been removed from the blockchain, and a few tests to verify that they
work.
2017-08-09 17:17:51 -04:00
Eric Frias
a8d5fded26 Remove the code for charging beting fees up-front now that rake fees are taken from your net winnings.
Change the bet matching algorithm to only match at exactly the maker's odds, no rounding.
Implement binned order books in the betting market plugin.  Keep betting market groups,
betting markets, and bet objects around forever in the plugin (not yet exposed to the api).
2017-08-09 11:15:12 -04:00
Roman Olearski
6ca6413d88 bookie_plugin: added localized_event_strings .... 2017-08-01 12:26:45 +02:00
Roman Olearski
b96459045b added get_total_matched_bet_amount_for_betting_market_group to bookie_plugin 2017-07-28 18:23:57 +02:00
Eric Frias
c4470131ac Enable building bookie plugin, add API for bookie plugin, and implement a
function for getting binned order books (as yet untested)
2017-07-27 19:36:31 -04:00
Eric Frias
cd2940c8a8 Remove competitor and market options objects from the blockchain 2017-07-06 11:57:45 -04:00
Eric Frias
3238ea735f Merge commit '568ceb189eca96e77e38c4059b83a504008d7e91' into betting 2017-06-21 16:43:00 -04:00
Eric Frias
672fad6d40 Start of a plugin to track deleted events (and other deleted objects) needed by the
bookie ui
2017-04-04 17:02:19 -04:00