Graphene Updates and DApp Support #643

Closed
nathanielhourt wants to merge 84 commits from dapp-support into develop
nathanielhourt commented 2022-02-08 19:16:55 +00:00 (Migrated from gitlab.com)

This adds the most important updates to Graphene from BitShares, as well as my own work to support third party DApps. Most notable of the BitShares updates is: https://github.com/bitshares/bitshares-core/issues/1506

Second most notably, it updates Peerplays' FC based on BitShares FC and my own work

This contains 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

This adds the most important updates to Graphene from BitShares, as well as my own work to support third party DApps. Most notable of the BitShares updates is: https://github.com/bitshares/bitshares-core/issues/1506 Second most notably, it updates Peerplays' FC based on BitShares FC and my own work This contains 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
nathanielhourt (Migrated from gitlab.com) changed target branch from master to develop 2022-02-08 19:17:07 +00:00
serkixenos commented 2022-02-08 22:47:24 +00:00 (Migrated from gitlab.com)

assigned to @serkixenos

assigned to @serkixenos
serkixenos commented 2022-02-08 22:47:31 +00:00 (Migrated from gitlab.com)

requested review from @serkixenos

requested review from @serkixenos
nathanielhourt commented 2022-02-13 14:37:25 +00:00 (Migrated from gitlab.com)

added 10 commits

  • 2da36945...fcd360c2 - 9 commits from branch develop
  • e8458f1f - Merge remote-tracking branch 'glu/develop' into dapp-support

Compare with previous version

added 10 commits <ul><li>2da36945...fcd360c2 - 9 commits from branch <code>develop</code></li><li>e8458f1f - Merge remote-tracking branch &#39;glu/develop&#39; into dapp-support</li></ul> [Compare with previous version](/PBSA/peerplays/-/merge_requests/63/diffs?diff_id=330606716&start_sha=2da369453e21ad211e30ac9408950e33ddc49358)
nathanielhourt commented 2022-02-13 15:12:08 +00:00 (Migrated from gitlab.com)

added 1 commit

  • f0bc1b8a - Merge remote-tracking branch 'glu/develop' into dapp-support

Compare with previous version

added 1 commit <ul><li>f0bc1b8a - Merge remote-tracking branch &#39;glu/develop&#39; into dapp-support</li></ul> [Compare with previous version](/PBSA/peerplays/-/merge_requests/63/diffs?diff_id=330611562&start_sha=e8458f1f373a51d95e66dee5a8fa53e96fc6e676)
nathanielhourt commented 2022-02-13 20:25:14 +00:00 (Migrated from gitlab.com)

added 1 commit

  • 659d135b - Merge remote-tracking branch 'glu/develop' into dapp-support

Compare with previous version

added 1 commit <ul><li>659d135b - Merge remote-tracking branch &#39;glu/develop&#39; into dapp-support</li></ul> [Compare with previous version](/PBSA/peerplays/-/merge_requests/63/diffs?diff_id=330669811&start_sha=f0bc1b8a754419d5b53991ed373ce772019065cf)
nathanielhourt commented 2022-02-14 16:03:35 +00:00 (Migrated from gitlab.com)

added 1 commit

  • 0f7e5da5 - Fix CI build

Compare with previous version

added 1 commit <ul><li>0f7e5da5 - Fix CI build</li></ul> [Compare with previous version](/PBSA/peerplays/-/merge_requests/63/diffs?diff_id=331304427&start_sha=659d135b9b999ec00090d1df5584873145574ca9)
nathanielhourt commented 2022-02-14 16:13:21 +00:00 (Migrated from gitlab.com)

added 1 commit

  • 0f3dca64 - Fix CI build

Compare with previous version

added 1 commit <ul><li>0f3dca64 - Fix CI build</li></ul> [Compare with previous version](/PBSA/peerplays/-/merge_requests/63/diffs?diff_id=331314102&start_sha=0f7e5da59264642cc9444255f43255330e21761e)
nathanielhourt commented 2022-02-14 16:26:30 +00:00 (Migrated from gitlab.com)

added 1 commit

  • 0f7e5da5 - Fix CI build

Compare with previous version

added 1 commit <ul><li>0f7e5da5 - Fix CI build</li></ul> [Compare with previous version](/PBSA/peerplays/-/merge_requests/63/diffs?diff_id=331326383&start_sha=0f3dca64a0bca3f81f69d3b4cca460209bfb3ade)
nathanielhourt commented 2022-02-14 17:08:09 +00:00 (Migrated from gitlab.com)

added 1 commit

  • 6c5ea537 - Fix CI build

Compare with previous version

added 1 commit <ul><li>6c5ea537 - Fix CI build</li></ul> [Compare with previous version](/PBSA/peerplays/-/merge_requests/63/diffs?diff_id=331363359&start_sha=0f7e5da59264642cc9444255f43255330e21761e)
nathanielhourt commented 2022-03-12 22:57:36 +00:00 (Migrated from gitlab.com)

added 2 commits

  • e8b432c1 - Safety Check: Part 1 -- Evaluator Tagging
  • f9fcffbb - Safety Check: Part 2 -- Implement and Integrate Checks

Compare with previous version

added 2 commits <ul><li>e8b432c1 - Safety Check: Part 1 -- Evaluator Tagging</li><li>f9fcffbb - Safety Check: Part 2 -- Implement and Integrate Checks</li></ul> [Compare with previous version](/PBSA/peerplays/-/merge_requests/63/diffs?diff_id=349995226&start_sha=659d135b9b999ec00090d1df5584873145574ca9)
serkixenos (Migrated from gitlab.com) closed this pull request 2022-09-14 16:27:42 +00:00

Pull request closed

Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Peerplays_Blockchain/peerplays_migrated#643
No description provided.