Commit Graph

111 Commits

Author SHA1 Message Date
a9c2d243c5 clean up/copyedit 2023-06-09 23:07:13 +08:00
philip-morlier
829b8c4821 Expose state trie to plugins
Also merged changes in support geth v1.11.6. Updated to plugeth-utils v1.1.0.
2023-05-05 14:14:15 -07:00
philip-morlier
5470afdeb8 State Trie exposed to plugins
The StateTrie interface is exposed via triewrapper.go and then implemented via two methods appended to the backend object.
2023-04-07 10:46:16 -07:00
philip-morlier
f92264d342 further work on state trie wrapper 2023-04-06 22:49:14 -07:00
philip-morlier
aee14ebee9 Initial commit of work to expose state trie 2023-04-06 18:09:53 -07:00
philip-morlier
c3924a529e new consensus engine commit 4/6/23 2023-04-06 10:36:43 -07:00
philip-morlier
4cfa8704a9 Functional hook for consensus engine plugin 2023-03-24 12:46:45 -07:00
philip-morlier
9ee93f1e26 further progress on plugin hook 2023-03-23 22:00:13 -07:00
Austin Roberts
9aba661554 Updates for consensus engine injection 2023-03-23 16:37:16 -05:00
philip-morlier
78e00bf68d Manual touches to preserve compatability of other networks with utils as well as fix a failing test in core/rawdb. 2023-02-21 10:29:25 -08:00
philip-morlier
ef92d21d25 Manual touches to modify types to conform to geth v1.11.1 2023-02-17 08:29:46 -08:00
philip-morlier
c0530b8313 Updated plugin loader, mod, and sum to reflect changes made in utils v0.0.21. 2022-12-08 11:40:22 -08:00
philip-morlier
967626b075 Updates to reflect comments on original merge. 2022-08-22 11:48:26 -07:00
philip-morlier
59a823409e Merge tag 'v1.10.22' into feature/merge-v1.10.22 2022-08-22 10:48:40 -07:00
philip-morlier
81a8106bc6 Merge Geth v1.10.21 as well as update to Plugeth-Utils v0.0.18 2022-07-27 10:38:42 -07:00
philip-morlier
2f93e2ae10 Merge feature/merge-v1.10.18-attempt-two 2022-05-25 13:07:38 -07:00
philip-morlier
e87859e9ab Updating mod and sum to reflect plugeth-utils v0.0.17. Made corresponding changes to wrapper function to reflect the close() method on the Node object returned by NewNode(). Created a new tag v1.10.17-2 to reflect these changes. 2022-05-16 09:48:46 -07:00
philip-morlier
4211c5c401 Merge tag 'v1.10.17' into merge/v1.10.17 2022-03-30 15:40:07 -07:00
philip-morlier
0b5c23e739 Updated plugins/wrappers/wrappers.go to include code and input fields on utils core.interface contract object. Also mod and sum to reflect utils v0.0.12 2022-03-30 15:25:22 -07:00
philip-morlier
4a33bc66c5 Changes in service of extending block context object into the tracer plugins 2022-03-30 15:20:54 -07:00
philip-morlier
ec965607cd Cahnges made in service of pretracer type. 2022-03-30 15:15:37 -07:00
Austin Roberts
d3268003ac Get plugin details if hook does not match signature 2022-03-14 10:52:22 -05:00
philip-morlier
9a4172189d Added warning logs to obsolete methods on Downloader in backendwrappers. 2021-12-27 15:01:44 -08:00
philip-morlier
007ba02e4b final commit of 1.10.14 update 2021-12-27 14:43:35 -08:00
philip-morlier
15b7e55b50 Initial commit of v1.10.14 merge 2021-12-23 14:57:38 -08:00
Austin Roberts
826327a8e7 Update to develop 2021-11-29 10:41:24 -06:00
philip-morlier
cc416746a1 Further additions to v1.10.13 update. 2021-11-29 10:21:34 -06:00
philip-morlier
c56312cd2f changes in service to operational and assumed complete blockTracer plugin 2021-11-10 18:07:57 -08:00
philip-morlier
9ac78685b3 modifications made in service of block tracer 2021-11-05 17:26:53 -07:00
AusIV
1bca34f157
Merge branch 'develop' into feature/tracer-capture-enter 2021-10-22 15:02:24 -05:00
philip-morlier
c8e3e83641
Updated wrappers to reflect changes to tracer functions 2021-10-18 14:48:51 -07:00
Austin Roberts
625d2c0e98 Make chainconfig wrapper more robust against differences between types 2021-10-18 15:01:04 -05:00
Austin Roberts
5d4d973cc4 Merge tag 'v1.10.9' into develop
Notes: the AppendAncient plugin hook is broken by this commit.

This adds CaptureEnter() and CaptureExit() as no-ops for interface
compliance, but these capabilities should be added for plugin tracers
soon.
2021-10-18 12:02:35 -05:00
philip-morlier
5b9e5f56e2
Modifications to wrappers and loader forenabling node.attach in utils/core/interfaces 2021-10-10 13:08:52 -07:00
Austin Roberts
1b06b9762a Add a db wrapper to enable iteration 2021-09-28 14:01:01 -05:00
Austin Roberts
65f00aad1c Fix flag parsing for plugins 2021-09-21 09:01:03 -05:00
Austin Roberts
e6f05fcca9 Use restricted params, not geth params 2021-09-16 16:06:46 -05:00
Austin Roberts
f7307d527d Updates to support blockupdates plugin
This makes several updates to support the blockupdates plugin.

I had to update several hooks that were using the wrong types, and
provide a way to get event.Feed objects into plugins without importing
event.Feed (which I did by having the plugin loader make them
available).
2021-09-16 16:04:36 -05:00
philip-morlier
7d7fad0988
Further updates to wrappers.go and rpc/handler.go, chaising bugs 2021-09-16 11:55:39 -07:00
philip-morlier
ea0f27c92d Merge remote-tracking branch 'refs/remotes/origin/utils-refactor' into utils-refactor 2021-09-15 13:13:32 -07:00
philip-morlier
1b4eded9c5
Updeated wrappers.go and go.mod 2021-09-15 13:09:43 -07:00
Austin Roberts
7b33b6e821 Add chainconfig to backend 2021-09-14 17:44:25 -05:00
philip-morlier
411a43e378
updated cmd/geth/plugin_hooks.go and plugins/plugin_loader.go to reflect changes re core.logger, updated go.mod and go.sum to address dependency issues 2021-09-09 12:51:13 -07:00
philip-morlier
b36e63f184
eth/tracers/plugin_hooks, tracers/plugin_hooks, and wrappers utils refactor modifications 2021-09-08 14:38:17 -07:00
philip-morlier
c36c999383
utils refactor work from the week 2021-09-03 15:20:49 -07:00
Austin Roberts
820a0af71c Pass plugin loader by interface 2021-08-31 15:41:27 -05:00
Austin Roberts
d9d51dd345 update plugeth-utils version 2021-08-31 15:29:09 -05:00
Austin Roberts
40377543bf Add plugin hook tester 2021-08-25 14:00:27 -05:00
Austin Roberts
2e7254e737 Update documentation 2021-07-20 10:18:29 -05:00
Austin Roberts
c58a596a53 Documentation! 2021-07-14 15:45:36 -05:00
Austin Roberts
328756dc00 Fix initialize function of plugin loader, update blockupdates plugin 2021-07-14 13:06:10 -05:00
Austin Roberts
75ad936fbb Hooks for appending ancients, initial work on block update plugin 2021-07-14 08:33:17 -05:00
Austin Roberts
c45774b74b Give plugins a handle to their plugin loader
This potentially allows plugins to invoke other plugins.
2021-07-12 14:55:45 -05:00
Austin Roberts
6e4c285ed1 Add state update hooks 2021-07-12 14:45:42 -05:00
Austin Roberts
4dd3527541 Fix tracer loading 2021-06-25 23:27:09 -05:00
Austin Roberts
03808de29a Refactor plugin system
When the plugin loader itself had to know the types in the arguments
and return values of the plugin functions, it was very difficult to
avoid import loops, given that the types were often defined in the
same package that needed to invoke the plugins.

Under this model, the plugin loader has much less knowledge of the
plugins themselves, and within each package we define functions to
interact with the plugins.
2021-06-25 22:46:17 -05:00
Austin Roberts
091a2f4884 Checkpoint
Things are currently broken because of import cycles. I'm going to
need to revisit how the plugin loader works, but I wanted to make
a checkpoint before I start breaking things again.
2021-06-25 17:08:39 -05:00
Austin Roberts
ad8719a64a Get tracers working, returning results 2021-06-25 14:57:24 -05:00
Austin Roberts
97cf240fe0 Add tracer hooks for debug_traceCall, etc. 2021-06-25 13:55:31 -05:00
Austin Roberts
5c55657c54 Plugin Interface Refactor
This makes two main changes to the plugin system:

* Instead of assuming that each plugin will have exactly one type,
  inspect each plugin to see which interfaces it provides, and
  register it as a provider of each provided interface. This can
  allow a single .so file to provide multiple interfaces, which
  will likely be necessary for aggregating certain types of info.
* Rather than using dependency injection and having to propagate
  the plugin system all throughout Geth, have a default plugin
  loader so we need only import the module and make calls to it.
  If the plan were to integrate this into mainline Geth, I would
  say we use dependency injection and take the time to pass the
  plugin loader throughout the codebase, but as I expect this to
  be a fork that has to pull upstream changes, this approach
  should make merge conflicts much less common.
2021-06-25 10:57:56 -05:00
Austin Roberts
ff46e3c7f8 Add plugin folder 2021-06-25 10:23:49 -05:00