bitshares / bitshares/bitshares-core
Clean up plugin architecture
- Dominant language
- C++
- Stars
- 1.2k
- Forks
- 660
- Avg merge
- 8h 17m
- Merged PRs (30d)
- 26
Description
_From @theoreticalbts on August 18, 2015 18:19_
Currently our plugin architecture is not well encapsulated. Here are some problems I found:
- [ ] We have code like [this](https://github.com/cryptonomex/graphene/blob/7e42d4b3e8f478b65956776f2654615399276e16/libraries/chain/db_block.cpp#L337-L342) that manipulates `operation_history_object` in the core.
- [ ] There is no reason to have `most_recent_op` in `account_object` as noted in the comment [here](https://github.com/cryptonomex/graphene/blob/7e42d4b3e8f478b65956776f2654615399276e16/libraries/chain/include/graphene/chain/account_object.hpp#L43-L50).
- [ ] The annotation subsystem is undocumented, unused and untested, but there are vestigial remnants of an early architecture where it was more widely used, such as [`meta_account_object`](https://github.com/cryptonomex/graphene/blob/master/libraries/chain/include/graphene/chain/account_object.hpp#L223-L235).
- [x] The `market_history` and `account_history` plugins use the same space ID.
- [x] There is a [comment](https://github.com/cryptonomex/graphene/blob/master/libraries/plugins/account_history/include/graphene/account_history/account_history_plugin.hpp#L45) in `account_history_plugin.hpp` noting that an object ID definition applies to the market history plugin!
- [ ] The build scripts contain no provision for compile-time disabling of plugins. We should be able to build a `witness_node` binary with no `account_history_plugin`, and in fact should encourage active witnesses to run the stripped-down version without unnecessary indexes.
- [ ] The CLI parameters contain no provision for run-time disabling of plugins. You should be able to specify which plugins you want in a config file, to enable/disable plugins without having to recompile.
_Copied from original issue: cryptonomex/graphene#246_
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.