Compare commits

...

2879 Commits

Author SHA1 Message Date
Clayton Calabrese 4ccaca399f Merge branch 'fix_missing_node_py_changes' of https://github.com/AntelopeIO/leap into fix_missing_node_py_changes 2023-03-22 18:14:16 -05:00
Clayton Calabrese 09390a4725 return lost changes to Node.py functions 2023-03-22 18:13:24 -05:00
Matt Witherspoon 7c94e3a102 add PACKED_STRUCT on ControlStructureImm to silence warning 2023-03-22 18:12:54 -05:00
Matt Witherspoon f469d2b78a add static_assert()s on required size of IR::OpcodeAndImm<>s 2023-03-22 18:12:54 -05:00
Matt Witherspoon a9c5cd9f95 fix comparison of different signedness warning in log_index 2023-03-22 18:12:54 -05:00
Lin Huang 41f5a148bb correct version after merging from 4.0.0-rc1 2023-03-22 18:12:54 -05:00
Zach Butler 1f0f5280d5 Restore markdown formatting erroneously deleted in commit 06c9e25327 2023-03-22 18:12:54 -05:00
Zach Butler 6b54dac75f Cardinal objects should be in a numbered list 2023-03-22 18:12:54 -05:00
Zach Butler df4a974b8a Pull note about sudo into its own quote block 2023-03-22 18:12:54 -05:00
Zach Butler c9596cd699 Minor pinned build script README changes 2023-03-22 18:12:54 -05:00
Clayton Calabrese 6c8441bc6c return lost changes to Node.py functions 2023-03-22 17:15:59 -05:00
Matt Witherspoon 1985e28a63 Merge pull request #866 from AntelopeIO/ignored_pack_warn_fix
fix noisy `ignoring packed attribute` warning on `IR::ControlStructureImm`
2023-03-22 11:06:46 -07:00
Vlad 2829420ecb Merge pull request #856 from AntelopeIO/increase-snapshot-test-robustness
[4.0] Increase robustness of snapshot diff python test
2023-03-22 11:51:46 -04:00
Matt Witherspoon 95c22b6e70 add PACKED_STRUCT on ControlStructureImm to silence warning 2023-03-22 10:57:40 -04:00
Matt Witherspoon f8ca18d5f5 add static_assert()s on required size of IR::OpcodeAndImm<>s 2023-03-22 10:55:29 -04:00
Matt Witherspoon bef672aae2 Merge pull request #860 from AntelopeIO/log_index_un_signed_warn
fix comparison of different signedness warning in log_index
2023-03-22 07:30:28 -07:00
Kevin Heifner 87c7480656 Merge pull request #852 from AntelopeIO/GH-850-test-fix
[4.0] Test Fix: Pass a large time limit to get table call
2023-03-22 09:25:02 -05:00
Matt Witherspoon c2366d392b fix comparison of different signedness warning in log_index 2023-03-21 20:17:49 -04:00
766C6164 cb64c3fb38 schedule snapshot at exact block num of another one 2023-03-21 15:43:31 -04:00
Lin Huang c7d0f6c1c2 Merge pull request #855 from AntelopeIO/merge_4_0_0_rc_1
[4.0 -> main] Merge 4.0.0-rc1 version bump to main
2023-03-21 15:31:31 -04:00
Lin Huang 3beffd5765 correct version after merging from 4.0.0-rc1 2023-03-21 14:46:34 -04:00
Lin Huang 1e3f12dc60 Merge remote-tracking branch 'origin/release/4.0' into merge_4_0_0_rc_1 2023-03-21 14:43:12 -04:00
Lin Huang 61cb264885 Merge pull request #851 from AntelopeIO/create_release_4_0_rc_1
Create v4.0.0-rc1 on release/4.0 branch
2023-03-21 14:34:46 -04:00
Kevin Heifner 446a04a607 GH-850 Pass a large time limit so python does not have to handle more=true case. 2023-03-21 13:09:26 -05:00
Zach f3aab2cfa5 Merge pull request #849 from AntelopeIO/zach-readme
Fix README.md Formatting
2023-03-21 14:08:04 -04:00
Lin Huang 28ac7906dc Create v4.0.0-rc1 on release/4.0 branch 2023-03-21 14:03:42 -04:00
Lin Huang 5d4a7ee60e Merge pull request #848 from AntelopeIO/bump_to_4_1
Bump Leap Main branch version to 4.1.0-dev
2023-03-21 13:35:49 -04:00
Zach Butler 8fc769efd1 Restore markdown formatting erroneously deleted in commit 06c9e25327 2023-03-21 13:19:33 -04:00
Zach Butler 7f27916d3d Cardinal objects should be in a numbered list 2023-03-21 13:19:19 -04:00
Zach Butler df3685516e Pull note about sudo into its own quote block 2023-03-21 13:17:58 -04:00
Zach Butler 866dfae99c Minor pinned build script README changes 2023-03-21 13:12:34 -04:00
Lin Huang 4ef610fa33 Bump Leap Main branch version to 4.1.0-dev 2023-03-21 13:00:08 -04:00
Zach 17ca88c8ad Merge pull request #847 from AntelopeIO/zach-libcurl4-openssl-dev
Restore libcurl4-openssl-dev
2023-03-20 22:26:45 -04:00
Zach Butler 60e757d677 export TZ 2023-03-20 18:36:55 -04:00
Zach Butler cc6c3255a7 SC2034 - warning: DEBIAN_FRONTEND appears unused. Verify use (or export if used externally). 2023-03-20 18:01:01 -04:00
Zach Butler 958f6d53b6 tzdata does not need to be separate 2023-03-20 18:00:26 -04:00
Zach Butler e0dac2c6ed Restore libcurl4-openssl-dev 2023-03-20 17:51:58 -04:00
Zach Butler 5027a17a3b Sort packages, each one on its own line 2023-03-20 17:48:57 -04:00
Zach Butler 9398564118 Quote strings 2023-03-20 17:48:49 -04:00
Zach Butler d42262bfeb "apt-get install -y" 2023-03-20 17:48:31 -04:00
Zach Butler 3ba58b20b7 Whitespace 2023-03-20 17:48:23 -04:00
Zach 35b56406cc Merge pull request #835 from AntelopeIO/zach-ascii-art
Change ASCII Art Banner in Build Script
2023-03-20 13:41:26 -04:00
Zach 069245d4f3 Merge pull request #812 from AntelopeIO/zach-lint
Pinned Build Script Linter Changes
2023-03-20 13:39:33 -04:00
Zach 0f84d4e534 Merge pull request #833 from AntelopeIO/zach-revert-799
Fix Pinned Build on Ubuntu 22.04
2023-03-20 10:01:05 -04:00
Lin Huang ace9c40d56 Merge pull request #845 from AntelopeIO/fix_pr_192_bad_merge
Fix test coverage regression by a bad merge conflict in PR #192
2023-03-17 19:31:54 -04:00
Lin Huang 3c53734d2f add missing 2023-03-17 18:59:30 -04:00
Lin Huang 255617660d Fix test coverage regression by a bad merge conflict in PR #192 2023-03-17 18:29:20 -04:00
Vlad e3807c2b5f Merge pull request #842 from AntelopeIO/snapshot-diff-test-fix
snapshot-diff-test fix
2023-03-17 14:35:44 -04:00
766C6164 5324a5da79 sync scheduled snapshot with 2 others 2023-03-17 13:56:06 -04:00
ClaytonCalabrese 264737b4ef Merge pull request #791 from AntelopeIO/performance_harness_distributed_producer_ports
[PH] Distribute Transaction Generators Across Producer Nodes.
2023-03-17 12:28:19 -05:00
766C6164 b4fe3c654f test fix 2023-03-17 12:49:47 -04:00
Clayton Calabrese be75e8aa3a merge from main 2023-03-17 11:26:55 -05:00
Peter Oschwald 77dfd0c2bf Merge pull request #818 from AntelopeIO/dev-install-add-testharness
Add TestHarness python integration scripts to dev package
2023-03-17 11:07:03 -05:00
Peter Oschwald b1225959e4 Merge pull request #798 from AntelopeIO/GH-789-remove-private-key
Remove deprecated `--private-key` option from nodeos
2023-03-17 11:06:04 -05:00
jgiszczak 0c6892fe65 Merge pull request #192 from AntelopeIO/eosio-launcher-python-port
Port eosio-launcher to Python
2023-03-17 11:04:16 -05:00
Kevin Heifner 6491c667a3 Merge pull request #836 from AntelopeIO/fix-snapshot-schedule
Snapshot: fix issue with erasing element while iterating
2023-03-17 10:36:31 -05:00
Peter Oschwald d6e6a93150 Fix CORE_SYMBOL import and cleanup other imports. 2023-03-17 10:17:40 -05:00
Peter Oschwald 3e9d098e4b Merge branch 'eosio-launcher-python-port' into dev-install-add-testharness 2023-03-17 10:00:04 -05:00
Kevin Heifner 48f2396904 Fix issue with erasing element while iterating 2023-03-17 09:03:30 -05:00
Kevin Heifner fc08e7d99c Fix issue with erasing element while iterating 2023-03-17 08:58:48 -05:00
Zach Butler 383fb714d4 Appreciate our users and make them feel like they are part of a community 2023-03-17 02:09:45 -04:00
Zach Butler 01b4454090 Cooler Leap ASCII art banner at end of pinned build script 2023-03-17 02:09:38 -04:00
Zach Butler 08aca00905 Revert "Merge pull request #799 from AntelopeIO/sbailey/autofind_llvm_7-11"
Co-authored-by: Matt Witherspoon <32485495+spoonincode@users.noreply.github.com>
2023-03-17 00:53:32 -04:00
jgiszczak 8eb33401eb Merge branch 'main' into eosio-launcher-python-port 2023-03-16 21:26:47 -05:00
Zach Butler 03b1ebd46f Fix shebang in bash build scripts
Looking for BASH in the environment instead of invoking it directly
enables attacks where malware could escalate privileges by pointing BASH
to itself and tricking the user into entering a superuser password when
a user invokes our script, a familiar request the user may be expecting.
2023-03-16 21:03:43 -04:00
Zach Butler 0697aa31f3 SC2016 - note: Expressions don't expand in single quotes, use double quotes for that 2023-03-16 21:03:43 -04:00
Zach Butler 07208ec800 SC2006 - note: Use $(...) notation instead of legacy backticks ... 2023-03-16 21:03:42 -04:00
Zach Butler eee850dc38 SC2086 - note: Double quote to prevent globbing and word splitting. 2023-03-16 21:03:42 -04:00
Zach Butler 1038a94e66 SC2294 - warning: eval negates the benefit of arrays. Drop eval to preserve whitespace/symbols (or eval as string). 2023-03-16 21:03:42 -04:00
Zach Butler 633a8d37b3 SC2164 - Use "pushd ... || exit" or "pushd ... || return" in case pushd fails. 2023-03-16 21:03:42 -04:00
Zach Butler 83e6c6c6eb SC2034 - warning: "output" appears unused. Verify use (or export if used externally). 2023-03-16 21:03:41 -04:00
Zach Butler 46e50a4ee5 SC2034 - warning: ARCH appears unused. Verify use (or export if used externally). 2023-03-16 21:03:41 -04:00
Zach Butler 28c790be89 SC2034 - warning: CORE_SYM appears unused. Verify use (or export if used externally). 2023-03-16 21:03:41 -04:00
Zach Butler 25a7550166 SC2068 - error: Double quote array expansions to avoid re-splitting elements 2023-03-16 21:03:41 -04:00
Zach Butler 2e831bf906 SC2242 - error: Can only exit with status 0-255. Other data should be written to stdout/stderr. 2023-03-16 21:03:40 -04:00
Zach Butler 108a902a83 E011 - then keyword is not on same line as if or elif keyword 2023-03-16 21:03:40 -04:00
Zach Butler 2c92ef7ef2 E001 - Trailing Whitespace 2023-03-16 21:03:40 -04:00
Zach Butler a3284f4d5d E003 - Inconsistent indentation 2023-03-16 21:03:40 -04:00
Peter Oschwald e7e66a5d19 Simplify postinst and prerm scripts
leap_testing dir is already part of package so don't need to mkdir or rmdir as it will be cleaned up appropriately.

However, continue to clean up dir potentially created directly by postinst
2023-03-16 19:39:52 -05:00
Matt Witherspoon 18e812a99f Merge pull request #831 from AntelopeIO/peering_signed_warning
fix signed vs unsigned comparison warning in autobp peering
2023-03-16 17:29:22 -07:00
Peter Oschwald 7d78b885d6 Merge branch 'dev-install-add-testharness' of ssh://github.com/AntelopeIO/leap into dev-install-add-testharness 2023-03-16 19:08:51 -05:00
Peter Oschwald c46400c527 Best effort attempt to remove the directorys we may have created during the install.
Can ignore failed directory deletion as they may be installing to location that has more than leap in it, for instance the ~/lib/python3/dist-packages, however if it is empty it is a safe assumption that it is in the location the install created it and can be removed as the inverse uninstall operation.
2023-03-16 19:07:10 -05:00
Jonathan Giszczak 3ea8cf1b5c Update test from main. 2023-03-16 18:45:13 -05:00
Peter Oschwald 9c066a76af Update package.cmake
Co-authored-by: Scott B <Scott@TheBaileyFamily.org>
2023-03-16 18:11:15 -05:00
Clayton Calabrese 39bdbfe675 use lambda for transaction generator calculations 2023-03-16 17:52:37 -05:00
jgiszczak 7815146f8a Merge branch 'main' into eosio-launcher-python-port 2023-03-16 17:34:28 -05:00
Jonathan Giszczak 42df97f5d5 Some limits to prevent division by zero in performance linear search. 2023-03-16 17:20:30 -05:00
Vlad e3b31cda96 Merge pull request #759 from AntelopeIO/snapshot-api
Programmable snapshots API
2023-03-16 17:08:54 -04:00
Huang-Ming Huang 326c169e10 Merge pull request #820 from AntelopeIO/huangminghuang/get_raw_block
get_raw_block api endpoint
2023-03-16 16:02:54 -05:00
Peter Oschwald 8c8ad50862 Don't overwrite the env variable so you get both postinst and prerm 2023-03-16 15:50:00 -05:00
766C6164 17c4ce3a5c feedback addressed 2023-03-16 16:46:43 -04:00
Matt Witherspoon 81ec6137c8 fix un/signed comparison warning in autobp peering 2023-03-16 16:43:21 -04:00
Jonathan Giszczak 4c9a2fe2a1 Fix merge error. 2023-03-16 15:42:50 -05:00
Huang-Ming Huang af1dcf23cf fix assertion message 2023-03-16 15:35:42 -05:00
Jonathan Giszczak b52517bef3 Fix merge error. 2023-03-16 15:28:13 -05:00
766C6164 af808b72e6 feedback addressed 2023-03-16 16:20:18 -04:00
Jonathan Giszczak 1cdb4c5bdc Ignore errors in shutil.rmtree. 2023-03-16 15:19:31 -05:00
Peter Oschwald 08b1eb5252 Addressing peer review comment.
Simplify prerm script.
2023-03-16 14:34:29 -05:00
Jonathan Giszczak 60902e95fe Clean up launcher log directory on successful run. 2023-03-16 14:29:32 -05:00
Jonathan Giszczak 5ab118f982 Fix automatic merge failure. 2023-03-16 14:28:04 -05:00
Peter Oschwald 61b0efe536 Address a couple more review comments. 2023-03-16 14:24:15 -05:00
Jonathan Giszczak 1d95b12268 Merge branch 'main' into eosio-launcher-python-port 2023-03-16 14:19:51 -05:00
Peter Oschwald b6007e022d Peer review recommended using sh instead of bash as more likely to exist. 2023-03-16 13:56:16 -05:00
Peter Oschwald be154da603 Address peer review comments.
Adding additional commentary on cmake version based processing paths.

Added prerm script to cleanup symbolic links

Added EXCLUDE_FROM_ALL where necessary.

Move setting scripts to the package.cmake location suggested.
2023-03-16 13:54:19 -05:00
Clayton Calabrese 15d92a1797 use proper arg instead of empty string in launch transaction generators 2023-03-16 12:34:45 -05:00
Clayton Calabrese 5e21ecfea4 handle whitespace stripping in launch transaction generators 2023-03-16 12:31:37 -05:00
Clayton Calabrese 07ec10dd46 update readme to reflect port endpoint changes in performance harness 2023-03-16 11:03:47 -05:00
Peter Oschwald 38f8c59642 Address peer review comment. 2023-03-16 10:54:07 -05:00
Clayton Calabrese e3915ba846 merge from main 2023-03-16 10:53:05 -05:00
766C6164 6e0672ece4 Addressing feedback 2023-03-16 11:52:01 -04:00
Peter Oschwald d4ffa14da8 Merge pull request #829 from AntelopeIO/ph-fix-bug-and-arg-passing
[PH] fix bug and arg passing
2023-03-16 08:37:06 -05:00
Peter Oschwald c8d36c2ff7 Merge branch 'eosio-launcher-python-port' into dev-install-add-testharness 2023-03-16 08:30:41 -05:00
Peter Oschwald 315874ae2f DataDir now returns absolute path instead of relative.
Don't add cwd to the front of the already absolute path. Fixes error where unix socket path  was too long.
2023-03-15 23:59:57 -05:00
Peter Oschwald ed5aeca689 Fix comment to reflect updated floor in range. 2023-03-15 23:06:05 -05:00
Peter Oschwald e94cb14af8 Fix command line argument passing.
When additional command line arguments were added to performance_test_basic.py, some were inadvertently missed being passed from performance_test down to the performance_test_basic.  Update the argument passing to match that in performance_test_basic.py.
2023-03-15 23:01:11 -05:00
Jonathan Giszczak 9921db1a5c Avoid division by zero in performance_test. 2023-03-15 23:01:04 -05:00
Peter Oschwald 74696f2c0c Fix bug causing possible division by 0.
If the targetTps is allowed to be 0, there can be a division by 0 error TpsTrxGensConfig because the numGenerators would be 0 and thus initialTpsPerGenerator would be division by 0.  Fix this error through starting search floor at min 1 as well as capping the min to the floor.
2023-03-15 22:59:39 -05:00
Peter Oschwald d55b043b8d Merge branch 'eosio-launcher-python-port' into dev-install-add-testharness 2023-03-15 22:02:10 -05:00
Peter Oschwald b2db52d14b Update install mkdir and symbolic linking steps.
Existing steps were failing to work with package and old versions of cmake.
2023-03-15 21:24:28 -05:00
Vlad 82093b0203 Merge branch 'main' into snapshot-api 2023-03-15 21:58:39 -04:00
Huang-Ming Huang 58d6eb0327 Merge pull request #802 from AntelopeIO/huangminghuang/rm-eosio-blocklog 2023-03-15 17:56:10 -05:00
Vlad 152198f779 Merge branch 'main' into snapshot-api 2023-03-15 18:25:17 -04:00
Huang-Ming Huang e6020fbec2 address PR comments 2023-03-15 17:10:50 -05:00
Lin Huang 1e042d15df Merge pull request #823 from AntelopeIO/merge_3_2_2_version_bump_to_main
[3.2 -> Main] Merge 3.2.2 version bump to main
2023-03-15 18:07:03 -04:00
766C6164 b72027cf22 should allow loop to run from start to finish 2023-03-15 18:03:48 -04:00
Lin Huang 0f15f5f94a Merge branch 'main' into merge_3_2_2_version_bump_to_main 2023-03-15 17:33:24 -04:00
Vlad 135a9ee265 Merge branch 'main' into snapshot-api 2023-03-15 17:30:00 -04:00
766C6164 696f30f8ed more selectability for invalid request 2023-03-15 17:22:52 -04:00
Lin Huang 5cac6638ed Merge pull request #776 from AntelopeIO/parallel_readonly_trxs
Parallelize Read-only Transaction Execution
2023-03-15 17:02:03 -04:00
Jonathan Giszczak 156a055bcc Fix test bug. 2023-03-15 15:29:05 -05:00
Jonathan Giszczak e7b4866553 Missed a moved variable in performance test basic. 2023-03-15 14:57:49 -05:00
Jonathan Giszczak ecc8fb9b04 Fix merge error. 2023-03-15 14:43:12 -05:00
jgiszczak 794b4b4a04 Merge branch 'main' into eosio-launcher-python-port 2023-03-15 14:34:32 -05:00
Jonathan Giszczak a17d8f4293 Make network isolation default disabled but enabled in CI/CD.
Remove some obsolete and broken test scripts.
2023-03-15 14:32:37 -05:00
Huang-Ming Huang 22605db687 address PR comment 2023-03-15 14:26:21 -05:00
Lin Huang a5036cab0d Merge branch 'main' into parallel_readonly_trxs 2023-03-15 15:25:35 -04:00
Lin Huang c2c41c2c5c Merge branch 'main' into merge_3_2_2_version_bump_to_main 2023-03-15 15:07:14 -04:00
ClaytonCalabrese 1e70108ab4 Merge pull request #827 from AntelopeIO/remove_read_log_data
[PH] [4.0] Remove read_log_data.py
2023-03-15 14:06:34 -05:00
Huang-Ming Huang 5e48d00e22 Merge branch 'main' into huangminghuang/rm-eosio-blocklog 2023-03-15 13:00:26 -05:00
Clayton Calabrese cce332d1c9 remove undesired read_log_data.py and related components 2023-03-15 12:57:15 -05:00
jgiszczak 6023f71672 Merge branch 'main' into eosio-launcher-python-port 2023-03-15 12:38:35 -05:00
Peter Oschwald a211e57c8b Merge pull request #819 from AntelopeIO/ph-add-performance-test
[PH] Add performance test to CI/CD
2023-03-15 12:36:59 -05:00
Lin Huang 07fad93eb2 restore VERSION_SUFFIX to dev after merging 3.2.2 version bump 2023-03-15 13:24:09 -04:00
Lin Huang 061f010258 Merge pull request #821 from AntelopeIO/bump_to_3_2_2
[3.2] Bump Leap version to release 3.2.2
2023-03-15 13:06:29 -04:00
Lin Huang 68df37da0c Bump Leap version to release 3.2.2 2023-03-15 12:34:27 -04:00
766C6164 b25ee3c306 break after unschedule 2023-03-15 11:27:55 -04:00
Huang-Ming Huang 75fb80b6f8 get_raw_block api endpoint 2023-03-15 08:44:39 -05:00
Peter Oschwald 0a01800886 Add performance test to excercise user defined contract and test action with data file. 2023-03-15 08:23:32 -05:00
Peter Oschwald e43d6339e7 Add performance_test run to long_running_tests to exercise performance_test.py. 2023-03-15 08:04:30 -05:00
Peter Oschwald 39c2242d17 Fix some dataclass initialization for python 3.11 2023-03-15 07:57:43 -05:00
766C6164 d0d5d02f0d one more fix 2023-03-14 22:30:59 -04:00
766C6164 1041600558 logic fix 2023-03-14 22:05:39 -04:00
766C6164 3ec37d2eee fixed ups 2023-03-14 21:38:54 -04:00
Peter Oschwald d56b97e527 Update core_symbol imports to reflect it being part of TestHarness module. 2023-03-14 19:16:01 -05:00
766C6164 41601acac4 make sure future scheduled snapshots treated correctly 2023-03-14 20:08:43 -04:00
Peter Oschwald 6f16347f6e Fix install steps to only apply to COMPONENT dev 2023-03-14 18:46:21 -05:00
Jonathan Giszczak c6b839025e Correct syntax of suggested change. 2023-03-14 18:23:34 -05:00
766C6164 dfe1c55ed6 Addressing feedback 2023-03-14 19:20:46 -04:00
jgiszczak 3346d1e04f Create output directory just-in-time for the shutdown case.
Co-authored-by: Scott B <Scott@TheBaileyFamily.org>
2023-03-14 18:12:09 -05:00
Peter Oschwald 0a1ec82bcd Add TestHarness python integration scripts to dev-install package. 2023-03-14 18:11:08 -05:00
Peter Oschwald f81921ad3b Fix lost force option. 2023-03-14 18:01:08 -05:00
Clayton Calabrese 26da362b5d Convert Cluster's connectionPairList to match proper format 2023-03-14 16:04:17 -05:00
Lin Huang d0ef1cf667 revert _ro_num_active_trx_exec_tasks to uint32_t 2023-03-14 17:02:09 -04:00
Lin Huang 9adc66513e make window switching assert conditions stronger 2023-03-14 16:42:43 -04:00
Clayton Calabrese 3e19ad1fb0 rework when splitting of connectionpairList happens to simplify use 2023-03-14 13:27:25 -05:00
766C6164 dfc8d629f3 cleaned up listeners/handlers 2023-03-14 14:03:06 -04:00
766C6164 c8487beb17 Renamed and cleaned up last test 2023-03-14 12:38:28 -04:00
Lin Huang 8997ae2f89 make exec_queue parameter explicit in all APIs 2023-03-14 11:58:55 -04:00
Clayton Calabrese 9a2eb7b85b allow passing of endpoints in addition to ports. Create even distribution of generators accross ports based on number of ports passed to the transaction generator launcher 2023-03-14 10:25:56 -05:00
Lin Huang 8502c2ea66 move add_greylist_accounts and remove_greylist_accounts to general queue; correct an error text 2023-03-14 09:53:28 -04:00
766C6164 dbf901a55f Quit node gracefully on scheduler errors 2023-03-13 22:15:40 -04:00
Lin Huang 76bef699db move more read-only-non-safe operations to general queue 2023-03-13 21:47:08 -04:00
766C6164 b4b677866e Merge branch 'snapshot-api' of https://github.com/AntelopeIO/leap into snapshot-api 2023-03-13 21:24:56 -04:00
766C6164 ec624b5dcc Improved snapshot_diff test 2023-03-13 21:24:40 -04:00
Lin Huang 7f9002f10f Move update_runtime_options, set_whitelist_blacklist, and schedule_protocol_feature_activations to general queue 2023-03-13 18:21:18 -04:00
Lin Huang 9a9ba76f5b Merge branch 'main' into parallel_readonly_trxs 2023-03-13 18:03:58 -04:00
Kevin Heifner cf75235531 Merge pull request #809 from AntelopeIO/GH-808-test
Test fix: Increase abi-serializer-max-time-ms & http-max-response-time-ms for test
2023-03-13 16:15:52 -05:00
Jonathan Giszczak 6b78bac09c Remove eosio-launcher and testnet.template shell script. 2023-03-13 16:03:45 -05:00
Lin Huang ae158d5a77 fix merge conflicts from Main 2023-03-13 16:12:49 -04:00
Kevin Heifner 8f2b48e2a8 GH-808 All other integration tests set a high abi-serializer-max-time-ms and http-max-response-time-ms. Increase for this test as well. 2023-03-13 14:40:24 -05:00
Lin Huang 832db1158d Merge branch 'main' into parallel_readonly_trxs 2023-03-13 15:37:02 -04:00
Huang-Ming Huang fd9c2a64b9 fix snapshot test 2023-03-13 14:00:43 -05:00
Kevin Heifner 2573a5e7f5 Merge pull request #623 from AntelopeIO/feature_prometheus_plugin
Add Prometheus Plugin
2023-03-13 13:57:50 -05:00
Huang-Ming Huang 63157c187b fix unittest 2023-03-13 13:20:36 -05:00
Lin Huang 1880d22796 fail some trxs on authorization and expiration; wait sufficient time for all transactions to be executed 2023-03-13 14:09:34 -04:00
Kevin Heifner 6475b8fe70 Merge branch 'main' into feature_prometheus_plugin 2023-03-13 13:05:29 -05:00
Huang-Ming Huang e643eb6331 fix tests 2023-03-13 12:21:53 -05:00
Vlad df5ad0cf0c Merge branch 'main' into snapshot-api 2023-03-13 12:50:13 -04:00
Lin Huang 536546e12a Merge branch 'main' into parallel_readonly_trxs 2023-03-13 11:56:57 -04:00
Matt Witherspoon 2a9c20cc16 Merge pull request #807 from AntelopeIO/fix_ship_session_test_linkage
fix mixed up boost test linkage in ship session_test
2023-03-13 08:55:47 -07:00
Lin Huang e0feb2466f put back chain.is_building_block() check 2023-03-13 11:15:23 -04:00
766C6164 24cd36d37c Fix for the flakiness of snapshot test 2023-03-13 00:16:59 -04:00
Lin Huang a39e7b59a8 do not check is_building_block 2023-03-12 22:29:58 -04:00
Lin Huang 84fd3ada3c Add read-only trxs unit tests test_read_only_trx.cpp 2023-03-12 21:24:35 -04:00
Lin Huang adde995462 Merge branch 'main' into parallel_readonly_trxs 2023-03-12 21:17:09 -04:00
Jonathan Giszczak 02e7433a37 More missed renames of Queries class. 2023-03-12 18:22:03 -05:00
Matt Witherspoon 84c48b78e9 fix mixed up boost test linkage in ship session_test 2023-03-12 19:11:38 -04:00
Jonathan Giszczak 44ed18203e Fix missed rename of Queries class. 2023-03-12 18:01:40 -05:00
Kevin Heifner df5dd69af2 Merge pull request #805 from AntelopeIO/log-spam
Improve logging during syncing when `producer_plugin` `debug` level is enabled
2023-03-11 13:05:03 -06:00
Kevin Heifner b020a077ec Add comment 2023-03-11 12:13:11 -06:00
Lin Huang f573906fe2 correct typos in comments 2023-03-11 11:00:01 -05:00
Kevin Heifner ff671fcd35 Improve logging during syncing when producer_plugin debug level is enabled. 2023-03-11 08:34:25 -06:00
Jonathan Giszczak cad96d77e3 Address review comments.
CMake simplification.
Rename Queries to NodeosQueries.
Make transferFundsCmdArr conventionally accessible.
Rewrite some ancient C-style code to something more Pythonic.
Make appropriate use of sys.executable.
2023-03-10 19:01:09 -06:00
Clayton Calabrese e12d2befb8 Merge branch 'eosio-launcher-python-port' of https://github.com/AntelopeIO/leap into eosio-launcher-python-port 2023-03-10 17:42:39 -06:00
Clayton Calabrese 7aafa96d3d merge from main 2023-03-10 17:42:01 -06:00
jgiszczak 7d4a9e802e Reduce CMakeLists verbosity still further.
Co-authored-by: Scott B <Scott@TheBaileyFamily.org>
2023-03-10 17:35:42 -06:00
Clayton Calabrese 52606ac5fe resolve some cleanup from merge PR 2023-03-10 17:23:17 -06:00
Lin Huang debcd87f70 Merge branch 'main' into parallel_readonly_trxs 2023-03-10 18:18:15 -05:00
Peter Oschwald cf833519a5 Merge pull request #803 from AntelopeIO/ph_trxgen_remove_contracts_dep
[PH] Remove unnecessary dependency on contracts.
2023-03-10 16:46:44 -06:00
Lin Huang 5bc9c1ab72 correct typos in comments 2023-03-10 17:09:10 -05:00
ClaytonCalabrese f8118ee918 Merge pull request #804 from AntelopeIO/merge_performance_harness_phase2_python_launcher
[TH] Merge Main Containing PH Phase 2
2023-03-10 15:46:09 -06:00
Lin Huang d6a0062ca1 more comments and finishing touch 2023-03-10 16:33:52 -05:00
Clayton Calabrese 6e3ee81336 merge main containing performance test phase 2 into python launcher 2023-03-10 13:25:41 -06:00
Peter Oschwald 3be20fa28b Remove unnecessary dependency on contracts. 2023-03-10 13:06:51 -06:00
Huang-Ming Huang d5deb4eef1 remove eosio-blocklog 2023-03-10 11:56:54 -06:00
Lin Huang 2d5a313f00 Merge branch 'main' into parallel_readonly_trxs 2023-03-10 11:51:51 -05:00
Lin Huang 23baf6dfe9 Merge branch 'parallel_readonly_trxs' of https://github.com/AntelopeIO/leap into parallel_readonly_trxs 2023-03-10 11:51:01 -05:00
Lin Huang 48b40afbca add a test of doing read-only trxs, send_transaction, and push_block in parallell; improve test names 2023-03-10 11:50:36 -05:00
Scott B eac39208ff Merge pull request #799 from AntelopeIO/sbailey/autofind_llvm_7-11
Search for LLVM versions 7-11, prefering latest version.
2023-03-10 10:15:47 -06:00
Lin Huang 7e4b451c9b Merge branch 'main' into parallel_readonly_trxs 2023-03-10 11:04:10 -05:00
Lin Huang 5522e274af compile when EOSIO_EOS_VM_OC_RUNTIME_ENABLED is not defined 2023-03-10 11:03:31 -05:00
Peter Oschwald f9becdbf21 Merge pull request #473 from AntelopeIO/feature_performance_harness_stage_2
[PH] Feature performance harness stage 2 development
2023-03-10 09:46:46 -06:00
Lin Huang ed647f8628 make code_cache_sync (used by EOSIO_EOS_VM_OC_DEVELOPER) multi-threaded safe 2023-03-10 10:39:54 -05:00
Scott Bailey cb160e00c2 untabify 2023-03-10 09:24:07 -06:00
Peter Oschwald da92673aff Merge branch 'main' into feature_performance_harness_stage_2 2023-03-10 09:01:41 -06:00
Peter Oschwald a9aea207be Switch to support older versions of python.
Before text=True (3.7) there was universal_newlines=True. Ubuntu 18 build still running on older version of python.
2023-03-10 08:56:50 -06:00
Lin Huang 7f258bcd43 for dry-run, only append action_receipt_digests; add more comments about thread-local data 2023-03-10 09:20:49 -05:00
Scott Bailey ab0752c7c9 Ubuntu18 default CMake is 3.10 and will not execute the search path. 2023-03-10 07:58:47 -06:00
Scott Bailey 0c180d04c5 Addressing review comment. 2023-03-10 07:49:32 -06:00
Lin Huang e0c3b9daaf set a hard limit of read-only trx thread number for EOS VM OC 2023-03-09 20:37:04 -05:00
Lin Huang 94d8f4470b delete removed abi_json_to_bin and abi_bin_to_json from read_only_trx_test.py 2023-03-09 18:37:45 -05:00
Lin Huang 46b0a2a55c Merge branch 'main' into parallel_readonly_trxs 2023-03-09 17:50:09 -05:00
Kevin Heifner 8bf37aac8a Merge pull request #797 from AntelopeIO/GH-788-remove-abi
Remove deprecated `/v1/chain/abi_bin_to_json` and `/v1/chain/abi_json_to_bin`
2023-03-09 16:49:14 -06:00
Peter Oschwald a24b05cd4e Switch to support older versions of python.
capture_output not added until python 3.7. Ubuntu 18 build still running on older version of python.
2023-03-09 16:33:03 -06:00
Peter Oschwald 93f52ea34f Don't require these find packages, which are already being done higher up. 2023-03-09 16:20:50 -06:00
Peter Oschwald 7ee35bb31d Generate *PluginArgs.py files directly.
Since they are now being generated they will always be kept in sync with nodeos arguments and the validation test is no longer needed.
2023-03-09 16:14:01 -06:00
Peter Oschwald 9063dd87e1 Addressing peer review comments.
Add long form for help message.

Make sure launch_transaction_generators is added to the module.

Remove executable bits from scripts internal to the module.
2023-03-09 15:05:53 -06:00
Peter Oschwald df957cd13d Addressing peer review comment to remove unused code. 2023-03-09 15:04:20 -06:00
Jonathan Giszczak 094448ac06 Remove obsolete support for txn_test_gen_plugin.
Restore a missed nodeos version hardcoding.
Whitespace cleanup.
2023-03-09 14:38:16 -06:00
Peter Oschwald 6ba406ff2d Address peer review comments.
Moving some functions out of trx_generator since they don't need to be member functions.

Addressing a couple missed const qualifiers on arguments.
2023-03-09 14:31:25 -06:00
Scott Bailey 4394506093 Search for LLVM versions 7-11, prefering latest version. 2023-03-09 14:20:20 -06:00
Lin Huang 70a6c94b3a Use correct window deadline and max trx time 2023-03-09 15:17:27 -05:00
Kevin Heifner c2c784fb25 GH-789 Fix regex 2023-03-09 14:09:28 -06:00
Kevin Heifner 2099dc1d36 GH-789 Remove --private-key option from nodeos 2023-03-09 14:05:47 -06:00
Peter Oschwald 5ec692a2be Fixup documentation for missing arguments. 2023-03-09 13:54:14 -06:00
Huang-Ming Huang cdc3ffe4da Merge pull request #796 from AntelopeIO/huangminghuang/fix_prometheus_test
Huangminghuang/fix_prometheus_test
2023-03-09 13:48:23 -06:00
Kevin Heifner 7baee720cd GH-788 Remove abi_json_to_bin 2023-03-09 13:39:27 -06:00
Kevin Heifner d680c62f79 GH-788 Remove abi_bin_to_json 2023-03-09 13:33:02 -06:00
Lin Huang 2cac6cd13f fix a capture reference probem in http_plugin::make_app_thread_url_handler, remove duplicate code in transient_trx logging, and some small changes 2023-03-09 14:27:09 -05:00
Peter Oschwald 500814876e Addressing peer review comments. 2023-03-09 13:26:13 -06:00
Peter Oschwald 1c612e8189 Update ProducerPluginArgs for newly added arguments. 2023-03-09 13:03:36 -06:00
Peter Oschwald 93fc50a277 Merge branch 'main' into feature_performance_harness_stage_2 2023-03-09 13:00:25 -06:00
766C6164 041d897df0 Addressing feedback 2023-03-09 13:55:08 -05:00
Peter Oschwald 045db81995 Addressing peer review comments.
Newer versions of Python, e.g. 3.11 require use of default_factory in dataclasses.

Newer versions of python/numpy no longer require np predicate before float, and can use float directly.
2023-03-09 12:51:16 -06:00
Huang-Ming Huang 0dd648a10e Merge pull request #795 from AntelopeIO/huangminghuang/prometheus_int_test
prometheus plugin integeration test
2023-03-09 12:49:30 -06:00
Lin Huang 2b67c0f654 Merge branch 'main' into parallel_readonly_trxs 2023-03-09 12:06:21 -05:00
Peter Oschwald c6717c4054 Peer review comment.
Use variable to make this easier to read and follow.
2023-03-09 10:23:26 -06:00
Huang-Ming Huang 70fe996081 Merge pull request #793 from AntelopeIO/huangminghuang/strike-rule-main
[3.2 -> main] subjective-account-max-failures-window-size
2023-03-09 10:09:45 -06:00
Lin Huang f250a2d545 add transient_trx_success_tracing and transient_trx_failure_tracing for dry-run and read-only transactions; remove a redundant db_read_only_mode_guard.cancel 2023-03-09 10:46:11 -05:00
Peter Oschwald 72451aad53 Address peer review comments.
Combine pieces of argument onto same line.

Remove trailing whitespace.
2023-03-09 08:57:14 -06:00
Peter Oschwald bafd7ddd69 Address peer review comments.
Break up some rather long lines of code.
2023-03-09 08:53:17 -06:00
Peter Oschwald 173fff951f Fix braces. 2023-03-09 08:36:59 -06:00
Huang-Ming Huang 2b469c4748 remove num_call assertion 2023-03-09 02:15:46 -06:00
Huang-Ming Huang c1c32ee562 head_block_num 2023-03-08 22:58:48 -06:00
Huang-Ming Huang 35df1bc591 Merge remote-tracking branch 'origin/feature_prometheus_plugin' into huangminghuang/prometheus_int_test 2023-03-08 22:47:16 -06:00
Huang-Ming Huang 9784e89666 create integeration test 2023-03-08 22:05:53 -06:00
Kevin Heifner c0ed157959 Add tracking of num_peers and num_clients 2023-03-08 21:14:19 -06:00
Kevin Heifner ba8ba7f0e9 Use tlog for trace logging of adding metrics 2023-03-08 21:09:09 -06:00
Kevin Heifner 3e2fd4d55b Merge remote-tracking branch 'origin/main' into feature_prometheus_plugin 2023-03-08 21:02:04 -06:00
Kevin Heifner 8eb0d86f71 Cleanup for peer review comments 2023-03-08 21:01:40 -06:00
Lin Huang 16e5a1c5ff make read_only_trx_test handle clean-run properly 2023-03-08 21:19:13 -05:00
Lin Huang 832fa96e09 fix crash caused by handle_push_result 2023-03-08 20:11:23 -05:00
Lin Huang 3a35e0e799 revert back pushing receipts, correct a commment about non-parallized read-only trx 2023-03-08 18:33:29 -05:00
Jonathan Giszczak 045b439cfa Update auto-bp-peering test for new launcher topology format.
Also fix typos in comments.
2023-03-08 17:30:54 -06:00
Peter Oschwald 778ff304e6 Cleaning up using namespace statements and namespace qualifiers. 2023-03-08 16:43:56 -06:00
Huang-Ming Huang b1972b154e Merge pull request #794 from AntelopeIO/huangminghuang/prometheus-fix
fix create_metrics_listener
2023-03-08 15:18:22 -06:00
Huang-Ming Huang abf26654a0 fix mutable 2023-03-08 14:33:28 -06:00
Huang-Ming Huang 3bcf55d1f7 address PR comment 2023-03-08 14:28:30 -06:00
Huang-Ming Huang cb153b637b fix create_metrics_listener 2023-03-08 14:20:55 -06:00
Jonathan Giszczak 320cc044aa Fix defect in launcher_test when no asserts found in log. 2023-03-08 13:11:59 -06:00
Lin Huang 8128ea9502 make handle_push_result some simpler and rename exhausted to retry to better reflect intention. 2023-03-08 14:02:37 -05:00
Peter Oschwald 3cd1b3609c Addressing peer review comments
Updates to emplace_back, push_back, transform usage.
2023-03-08 13:01:51 -06:00
Jonathan Giszczak 178f3988db Manually set GITHUB_ACTIONS environment variable in custom docker run. 2023-03-08 12:52:46 -06:00
Jonathan Giszczak 784fc5e176 Github 2023-03-08 11:57:25 -06:00
Peter Oschwald 2d31597efc Put back in blank line so list will render properly. 2023-03-08 11:45:41 -06:00
Peter Oschwald eed59be134 Work to coalesce arguments into config objects.
Additional work to clean up argument handling in trx generator main.

Drop a couple helper functions that we not needed.

Don't pass arguments into member functions that could simple access member variables.
2023-03-08 11:39:18 -06:00
Jonathan Giszczak 7d36182587 Merge branch 'eosio-launcher-python-port' of github.com:AntelopeIO/leap into eosio-launcher-python-port 2023-03-08 11:24:11 -06:00
Jonathan Giszczak a8c8f4d278 Fix misspelling. 2023-03-08 11:23:58 -06:00
Huang-Ming Huang 19cd5ee282 Merge remote-tracking branch 'origin/release/3.2' into huangminghuang/strike-rule-main
# Conflicts:
#	plugins/producer_plugin/producer_plugin.cpp
2023-03-08 11:16:53 -06:00
Huang-Ming Huang 7988545513 Merge pull request #785 from AntelopeIO/huangminghuang/strike-rule-3.2
[3.1 -> 3.2] subjective-account-max-failures-window-size
2023-03-08 10:45:19 -06:00
Clayton Calabrese 29564f6a6f Remove hardcoded number of ports in transaction generator 2023-03-08 09:45:20 -06:00
Huang-Ming Huang 264ff183cb address PR comment 2023-03-08 09:31:40 -06:00
Kevin Heifner efc31df65d Merge pull request #786 from AntelopeIO/external-order
Use appbase with external order for priority queue.
2023-03-08 07:20:02 -06:00
Kevin Heifner 740e60de64 Update appbase to head of main 2023-03-08 07:05:13 -06:00
Lin Huang 7894aabf1e refactor push_read_only_transaction to reuse common push transaction result handling 2023-03-07 22:12:44 -05:00
jgiszczak 6073cce8d6 Merge branch 'main' into eosio-launcher-python-port 2023-03-07 18:48:24 -06:00
Jonathan Giszczak 9bd0629176 Github 2023-03-07 18:25:49 -06:00
Clayton Calabrese 5747877d1c update readmes for trxgen and perf test to fit new port system 2023-03-07 17:45:19 -06:00
Clayton Calabrese 1c2f0567ce account for other routes into transactiongeneratorlauncher when dealing with ports 2023-03-07 16:55:33 -06:00
Clayton Calabrese 5baeede259 evenly distribute created transaction generators across multiple producer's ports 2023-03-07 16:17:29 -06:00
Kevin Heifner 8d7845f89c Use correct register_plugin of appbase 2023-03-07 15:51:24 -06:00
Peter Oschwald 23670d00ca Reintroduce stop-on-trx-failed argument.
Inadvertently removed in commit d8d9fa3.
2023-03-07 15:25:22 -06:00
Lin Huang 7b529301a3 Merge branch 'main' into parallel_readonly_trxs 2023-03-07 15:44:49 -05:00
Peter Oschwald bbf4a2e110 Merge branch 'main' into feature_performance_harness_stage_2 2023-03-07 13:21:00 -06:00
Peter Oschwald fe8e3dfca3 Clean up argument handling per peer review suggestions. 2023-03-07 13:20:23 -06:00
766C6164 dec7c1103a Fixed whitespace plus additional test 2023-03-07 14:01:18 -05:00
Peter Oschwald ed797fbc16 Merge pull request #787 from AntelopeIO/https-cleanup-in-http-plugin-test
Cleanup some missed https support from test that was missed.
2023-03-07 12:56:06 -06:00
Lin Huang f04718b930 do not use mutex for code_cache_async::get_descriptor_for_code and protect _cache_index.relocate 2023-03-07 13:44:15 -05:00
Peter Oschwald 8470e01f24 Cleanup some missed https support from test that was missed. 2023-03-07 12:27:42 -06:00
Peter Oschwald 71a155b9cf Updates for changes in nodeos plugin args from merge from main. 2023-03-07 12:20:41 -06:00
Clayton Calabrese 0ec3c58be4 remove hardcoded use of TestLogs name from tests 2023-03-07 12:07:50 -06:00
Lin Huang 7702f1a6d3 protect code cache from evicting entries while read-only trxs threads are executing 2023-03-07 12:15:01 -05:00
Peter Oschwald 5d3988570c Merge branch 'main' into feature_performance_harness_stage_2 2023-03-07 10:48:27 -06:00
Kevin Heifner cd42afafcb Merge pull request #784 from AntelopeIO/fix-warn
Minor cleanup and fix for clang warning
2023-03-07 10:41:34 -06:00
Kevin Heifner b3a1eafdaf Use appbase with external order for priority queue. 2023-03-07 10:24:06 -06:00
Peter Oschwald 602e9eec89 Merge branch 'main' into feature_performance_harness_stage_2 2023-03-07 10:21:58 -06:00
Lin Huang c2ef8b2f59 use _producers.empty() instead _production_enabled to determine production node 2023-03-07 10:43:59 -05:00
Lin Huang 5ace1197c6 Do not post transaction related RPCs to general queue, revert not to do push_receipt for read-only trx, and move _ro_trx_exec_tasks_fut.clear inside post task 2023-03-07 10:26:40 -05:00
766C6164 2c5bb903e7 Cleanup requests with invalid start 2023-03-07 10:02:21 -05:00
766C6164 dc5c15426f Updated snapshot_diff_test to use scheduler 2023-03-07 10:01:24 -05:00
Kevin Heifner 62b9337cb8 Minor cleanup and fix for clang++ warning: suggest braces around initialization of subobject [-Wmissing-braces] 2023-03-07 08:52:58 -06:00
Lin Huang 428de82034 update _idle_trx_time, correct assertion text for read-only-thread with production node 2023-03-07 09:12:25 -05:00
766C6164 7cf95895eb Better handling of "now" snapshots 2023-03-07 08:42:21 -05:00
Lin Huang 3598fda51b make custom_appbase as an interface so its users do not need to use relative include path in their CMakeList.txt files 2023-03-07 08:36:21 -05:00
Lin Huang 37f374f2d5 fix merging conflict errors 2023-03-06 22:33:29 -05:00
Huang-Ming Huang a8877f19cd extract block_time_tracker 2023-03-06 21:26:31 -06:00
Huang-Ming Huang bd8d23a2e8 Merge remote-tracking branch 'origin/release/3.1' into huangminghuang/strike-rule-3.2
# Conflicts:
#	plugins/producer_plugin/producer_plugin.cpp
2023-03-07 08:38:58 -06:00
Lin Huang 09434dabfb Merge branch 'main' into parallel_readonly_trxs 2023-03-06 21:51:05 -05:00
Lin Huang 30eb5da5c6 do not all multi-threaded read-only transaction execution when production is enabled; revert net_plugin process_packed_transaction changes; and some minor changes 2023-03-06 21:37:58 -05:00
766C6164 d0a21f7828 Added multinode py test, fixed bug in scheduler 2023-03-06 20:42:54 -05:00
Jonathan Giszczak a0ddca815b Github 2023-03-06 19:33:56 -06:00
Jonathan Giszczak dfd1444e1c Github 2023-03-06 19:32:51 -06:00
Jonathan Giszczak 3677252f0a Indentation. (Lost in auto-merge?) 2023-03-06 18:46:17 -06:00
Kevin Heifner 283daf3d2e Use http_plugin max_response_time 2023-03-06 18:40:48 -06:00
Jonathan Giszczak 792f5184a1 Merge branch 'eosio-launcher-python-port' of github.com:AntelopeIO/leap into eosio-launcher-python-port 2023-03-06 18:13:14 -06:00
Jonathan Giszczak ac5286401c Missing seccomp setting from NP and LR tests. 2023-03-06 18:12:27 -06:00
jgiszczak e2c8a2ad81 Merge branch 'main' into eosio-launcher-python-port 2023-03-06 18:02:42 -06:00
Kevin Heifner c0c0659822 Fix merge conflicts 2023-03-06 17:53:03 -06:00
Jonathan Giszczak 70e23921de Github 2023-03-06 17:49:50 -06:00
Jonathan Giszczak b4fb60f1c9 Try uid rather than euid for Github environment. 2023-03-06 17:35:38 -06:00
Lin Huang 809d72e029 small cleanups in controller and producer_plugin 2023-03-06 18:32:51 -05:00
Kevin Heifner cfa3c11bd5 Merge pull request #781 from AntelopeIO/GH-768-logging-main
[3.2 -> main] Move subjective bill log to `all` level of `producer_plugin` logger.
2023-03-06 17:16:27 -06:00
jgiszczak f171585ae8 Merge branch 'main' into eosio-launcher-python-port 2023-03-06 16:59:29 -06:00
Jonathan Giszczak 2e896e3c5a Enable extracting stdout/stderr from CalledProcessError.
Minimum supported Python version now includes these properties.
2023-03-06 16:54:20 -06:00
Jonathan Giszczak 19bd633d07 Auto-detect running integration tests as root or not. 2023-03-06 16:47:14 -06:00
Kevin Heifner a08aeceaef Merge remote-tracking branch 'origin/main' into feature_prometheus_plugin 2023-03-06 15:57:08 -06:00
Gregory Popovitch 0da31eaa35 Merge pull request #738 from AntelopeIO/gh-451
http_plugin: add support for `Expect: 100-Continue' header.
2023-03-06 16:03:40 -05:00
greg7mdp 3e1f6cabe3 Add a comment. 2023-03-06 15:35:28 -05:00
Jonathan Giszczak 4c27d35bd0 Wait for trans in block for each group of protocol features, to ensure prerequisites complete. 2023-03-06 14:35:12 -06:00
Lin Huang 759291d018 Merge branch 'main' into parallel_readonly_trxs 2023-03-06 13:23:53 -05:00
Lin Huang 83de948f5d remove _ro_read_window_pct and use _ro_read_window_minimum_time_us instead, check _ro_read_window_time_us and _max_transaction_time_ms interaction, more conservative on EOS VM OC VM size, and several small enhancements 2023-03-06 13:02:48 -05:00
ClaytonCalabrese 0a5ea49da8 Merge pull request #778 from AntelopeIO/performance_harness_update_log_reader_tests
[PH] Update Log Reader Tests For scrapeBlockTrxDataLog
2023-03-06 11:16:17 -06:00
Huang-Ming Huang 5037c40a61 Merge pull request #744 from AntelopeIO/huangminghuang/auto-bp-peer
Add auto bp peering functionality
2023-03-06 10:59:45 -06:00
greg7mdp 6dc85d861a Address code review comments from @mikelik. 2023-03-06 11:29:23 -05:00
Kevin Heifner 3ed53c2b3e Merge remote-tracking branch 'origin/release/3.2' into GH-768-logging-main 2023-03-06 09:01:51 -06:00
Kevin Heifner 258a06ab82 Merge pull request #779 from AntelopeIO/GH-768-logging-3.2
[3.1 -> 3.2] Move subjective bill log to `all` level of `producer_plugin` logger.
2023-03-06 08:59:36 -06:00
Kevin Heifner a0ff189eab kick ci/cd 2023-03-06 08:01:08 -06:00
Huang-Ming Huang 6811be23de address PR comments 2023-03-06 07:59:56 -06:00
Kevin Heifner e9976d2ce0 Cleanup 2023-03-06 07:59:41 -06:00
Lin Huang c913c9e098 Assert no active read-only tasks when switching to write window; start read-only tasks before timer; several comment and format improvements 2023-03-06 08:42:35 -05:00
Kevin Heifner bd14a62314 Merge remote-tracking branch 'origin/main' into feature_prometheus_plugin 2023-03-06 06:53:45 -06:00
766C6164 d2aeeb7e3e Fixed pending snapshot test 2023-03-05 21:41:33 -05:00
Lin Huang 5b441a3d68 put _ro_trx_queue and its mutex into a struct, use std::atomic for _ro_num_active_trx_exec_tasks; use fc::microseconds for microsecond members 2023-03-05 21:13:47 -05:00
Vlad c4c448ea6c Merge branch 'main' into snapshot-api 2023-03-05 15:44:29 -05:00
Lin Huang 44af6d8532 use std::thread::id instead of boost::thread::id, combine start methods in thread_utils, and add override to init_thread_local_data in eosvmoc_runtime 2023-03-05 13:42:28 -05:00
Lin Huang fe49865132 Merge branch 'main' into parallel_readonly_trxs 2023-03-05 11:05:49 -05:00
Lin Huang 11c42ce651 Merge pull request #780 from AntelopeIO/fix_logconf
bump appbase version and fix logging.json not working problem
2023-03-05 11:05:17 -05:00
Lin Huang d010733bcf Merge branch 'main' into parallel_readonly_trxs 2023-03-05 10:54:37 -05:00
Kevin Heifner 5b0108f7a2 Merge pull request #774 from AntelopeIO/GH-772-head
Fix issue with reported fork head vs retrieval of block from fork db
2023-03-04 22:08:07 -06:00
Lin Huang 8f83e49f90 Merge branch 'main' into parallel_readonly_trxs 2023-03-04 21:10:16 -05:00
Lin Huang 111e4bd3e4 bump appbase version and fix logging.conf not working problem 2023-03-04 21:04:30 -05:00
Kevin Heifner 83307587a2 GH-768 Log non TRX_TRACE trx logging to all (trace) level logger of producer_plugin. 2023-03-04 14:01:23 -06:00
Kevin Heifner 0046163ad7 GH-768 Move fc_tlog to logger.hpp 2023-03-04 13:52:06 -06:00
Kevin Heifner f13bf0ab1b Merge remote-tracking branch 'origin/release/3.1' into GH-768-logging-3.2 2023-03-04 13:50:49 -06:00
Kevin Heifner a2905e7472 Merge pull request #770 from AntelopeIO/GH-659-ship-test
Test: Add a test that verifies restart from genesis not allowed
2023-03-04 13:41:28 -06:00
Kevin Heifner cf07a4e629 GH-772 Additional cleanup 2023-03-04 13:14:11 -06:00
Kevin Heifner 61173fc332 GH-772 Remove unused variables 2023-03-04 09:11:40 -06:00
Jonathan Giszczak c5e2bcc983 Remove per-node configuration of nodeos version. 2023-03-03 17:41:11 -06:00
greg7mdp 401ece1a58 Forgot to stage this file after merging 2023-03-03 18:13:52 -05:00
greg7mdp 4c93d2fafb Merge branch 'main' of github.com:AntelopeIO/leap into gh-451 2023-03-03 18:05:37 -05:00
Gregory Popovitch 447fc3c722 Merge pull request #745 from AntelopeIO/gh-643
Remove HTTPS support from nodeos & keosd
2023-03-03 17:39:39 -05:00
Clayton Calabrese 60299d5cb5 rename file passed into log_reader_tests to a proper .gz suffix 2023-03-03 15:41:35 -06:00
Clayton Calabrese a631088f4d pass along nodeos version in performance test rather than calculating in multiple places 2023-03-03 15:23:38 -06:00
Clayton Calabrese cfeaa64b41 refactor log_reader use of nodeos version so it isn't recalculated multiple times during a test run 2023-03-03 15:00:41 -06:00
greg7mdp ef17c150ea Merge branch 'main' of github.com:AntelopeIO/leap into gh-643 2023-03-03 15:57:27 -05:00
Kevin Heifner 6444b2796d GH-772 Add a fork_db_head() to consolidate db_read_mode::IRREVERSIBLE check 2023-03-03 14:55:43 -06:00
greg7mdp 837b33ef33 Address PR comment - remove unused parameter. 2023-03-03 15:49:16 -05:00
Clayton Calabrese e6bfc9e214 Add new section to log_reader_tests to ensure 2.0 compatibility doesn't get broken by changes to scrapeBlockTrxDataLog in the future. 2023-03-03 14:27:21 -06:00
jgiszczak 9e5aaf8de9 Merge pull request #538 from AntelopeIO/eosio-launcher-launch-nodeos-unshared
Launch nodeos instances per configuration, unsharing the network first.  Python launcher now used for all tests in place of eosio-launcher.
2023-03-03 14:24:36 -06:00
Jonathan Giszczak e4c20c835c Removing exception in Node pollversion to tolerate the small number of tests which use relaunch or launchcmd. 2023-03-03 13:40:16 -06:00
Jonathan Giszczak e8797dfd4f Restore an increased ctest timeout for plugin_http_api_test. 2023-03-03 11:59:36 -06:00
Lin Huang 4d4e3606b5 Merge branch main to parallel_readonly_trxs 2023-03-03 11:54:20 -05:00
Lin Huang 130fbbf804 make names better to reflect the intentions and update comments 2023-03-03 10:43:48 -05:00
Lin Huang 7d9fd3b771 remove deprecated cleos option read-only for compute_transaction 2023-03-03 10:20:38 -05:00
Peter Oschwald 1e36c5123f Update StateHistoryPluginArgs for new arguments introduced on main. 2023-03-03 09:14:12 -06:00
Kevin Heifner 629aa81aeb GH-772 Simplify fetch_block_state_by_number by using controller fork_db_head_block_id() which checks db mode. 2023-03-03 09:11:14 -06:00
greg7mdp 4ad4135fc2 Update http_pluging API definitions with lambdas taking rvalues
as specified in url_handler.
2023-03-03 10:00:00 -05:00
Kevin Heifner a215b2cd12 GH-772 Simplify fork db head interface on controller. Fixes issue with net_plugin asking for a block that should be available but is not. 2023-03-03 08:49:48 -06:00
greg7mdp 84fa8238b5 update url_handler to take rvalues. 2023-03-03 09:41:36 -05:00
greg7mdp 5613660355 Merge branch 'main' of github.com:AntelopeIO/leap into gh-451 2023-03-03 09:36:14 -05:00
Kevin Heifner 6e7d98ea2c GH-772 Remove unused methods 2023-03-03 08:34:58 -06:00
Peter Oschwald 505b5d8b4a Merge branch 'main' into feature_performance_harness_stage_2 2023-03-03 08:18:16 -06:00
greg7mdp d2a91c9398 Cleanups from PR comments. Thanks @mikelik! 2023-03-03 08:24:14 -05:00
766C6164 c7a2f6130e Made schedule_snapshot params optional 2023-03-02 23:49:54 -05:00
766C6164 4be2e1cd13 Removed debug message 2023-03-02 23:41:34 -05:00
766C6164 407e0ba5fe Multiple fixes: pendings, tests, namings 2023-03-02 23:22:52 -05:00
Jonathan Giszczak 27d1430af5 Raise TimeoutError if unable to determine nodeos version. 2023-03-02 17:24:07 -06:00
ClaytonCalabrese d74575396b Merge pull request #771 from AntelopeIO/performance_harness_fix_2_0_compatibility
[PH] Repair Nodeos 2.0 Compatibility with Performance Tests
2023-03-02 17:00:04 -06:00
Kevin Heifner 558f69064b Merge pull request #764 from AntelopeIO/GH-659-ship-rollback-main
[3.2 -> main] SHiP do not truncate logs when starting from genesis
2023-03-02 16:45:04 -06:00
Jonathan Giszczak cfc122d890 Fix merge error. 2023-03-02 16:37:42 -06:00
Jonathan Giszczak c1112fcd48 Remove timeout on plugin_http_api_test.
Have waitForHeadToAdvance sleep a block interval rather than 3s.
Fix an invalid assert syntax in transactions.
2023-03-02 16:36:51 -06:00
Clayton Calabrese 480eb31260 simplify version check for resource monitor plugin constructor in performance tests 2023-03-02 15:55:22 -06:00
Kevin Heifner 993bcbae73 GH-659 Fix indentation 2023-03-02 15:53:29 -06:00
Clayton Calabrese 3f007ba932 fix introduced compatibility issues for nodeos 2.0 in performance tests 2023-03-02 15:26:25 -06:00
Kevin Heifner 05d9c4bfe5 GH-659 Add a test that verifies restart from genesis not allowed 2023-03-02 15:11:05 -06:00
Kevin Heifner d5491960f0 GH-659 Fix merge issue 2023-03-02 15:05:21 -06:00
Kevin Heifner 42f3250826 Merge remote-tracking branch 'origin/main' into GH-659-ship-rollback-main 2023-03-02 14:52:11 -06:00
greg7mdp 5e59a1709a Merge branch 'main' of github.com:AntelopeIO/leap into gh-643 2023-03-02 15:42:41 -05:00
greg7mdp 19acc7d847 Merge branch 'main' of github.com:AntelopeIO/leap into gh-451 2023-03-02 15:42:07 -05:00
Kevin Heifner 4107e46348 Merge pull request #727 from AntelopeIO/GH-627-ship
SHiP move client handling off the main thread
2023-03-02 14:39:43 -06:00
Kevin Heifner e161d29bcf Merge remote-tracking branch 'origin/main' into GH-627-ship 2023-03-02 14:11:26 -06:00
ClaytonCalabrese 397293bd80 Merge pull request #769 from AntelopeIO/performance_harness_reduce_test_db_size
[PH] Reduce Performance Test Database Size Allocation
2023-03-02 13:49:29 -06:00
Huang-Ming Huang 44f8c70d45 Merge pull request #628 from AntelopeIO/GH-592-ship-crash-split-ship-log
Merge SHiP stability fixes & log splitting & memory usage improvements
2023-03-02 13:48:42 -06:00
Clayton Calabrese 9cf5ffe5c0 set cmake test runs of performance_test_basic to a lower value for chain-state-db-size-mb to reduce allocated space 2023-03-02 13:12:17 -06:00
Huang-Ming Huang ef96d952b9 remove unnecessary using 2023-03-02 11:48:13 -06:00
Jonathan Giszczak 19dd2520de Keep Node's self.cmd up to date if a node is relaunched. 2023-03-02 11:18:07 -06:00
Jonathan Giszczak 863360411b Restore lost raise_if_missing argument from bounce/down consolidation. 2023-03-02 11:10:52 -06:00
766C6164 9178e5ef3b Handle situation where mlock_spacing is not specified 2023-03-02 11:39:20 -05:00
Huang-Ming Huang 48a4d871db Merge pull request #758 from AntelopeIO/huangminghuang/gelf-logging
move gelf logging to another thread
2023-03-02 10:35:59 -06:00
766C6164 5819266db8 Addressing feedback 2023-03-02 10:24:21 -05:00
Lin Huang 4a85352462 remove max-read-only-transaction-time option which is not neccessary 2023-03-02 10:09:50 -05:00
Peter Oschwald 85eecb0961 Update ProducerPluginArgs for new arguments introduced on main. 2023-03-02 09:01:24 -06:00
Peter Oschwald 9de88d468b Merge branch 'main' into feature_performance_harness_stage_2 2023-03-02 08:36:30 -06:00
Peter Oschwald ce4f840bfa Merge pull request #766 from AntelopeIO/ph-handle-exception
[PH] Handle exceptions occurring during runTest.
2023-03-02 08:06:59 -06:00
greg7mdp 5530a26449 Merge branch 'main' of github.com:AntelopeIO/leap into gh-643 2023-03-02 09:03:46 -05:00
greg7mdp b71a10c21a Merge branch 'main' of github.com:AntelopeIO/leap into gh-451 2023-03-02 09:02:52 -05:00
Lin Huang f14f2b36e6 Merge branch send_read_only_trx into parallel_readonly_trxs 2023-03-02 08:53:32 -05:00
Lin Huang 3c0e506959 Merge pull request #558 from AntelopeIO/send_read_only_trx
introduce new read-only transaction RPC end point
2023-03-02 08:22:50 -05:00
Lin Huang 2ae98cb29c correct bad comments about dm logging and improve error message for scheduling/cacelling deferred transactions 2023-03-02 07:53:42 -05:00
Lin Huang 4a3b81cf9a set global_action_sequence and recv_sequence to 0 for read-only transactions 2023-03-01 22:21:43 -05:00
Lin Huang 5aecde251b correct add_pending_ram_usage's handling of deep-mind logging 2023-03-01 22:19:47 -05:00
766C6164 cd0d56ab7f Make sure snapshot state preserved 2023-03-01 22:01:21 -05:00
Lin Huang d0c8046edd do not allow state-changing readonly privilege, schedualing and canceling deferred transaction host functions 2023-03-01 21:40:26 -05:00
Kevin Heifner 6080511bbe GH-592 Add comment 2023-03-01 20:20:31 -06:00
766C6164 b14fc5a4b4 Addressing feedback (2/2 minus refactoring) 2023-03-01 21:15:11 -05:00
Huang-Ming Huang 6bc3df865d address PR comments 2023-03-01 19:18:57 -06:00
Jonathan Giszczak 837a5761f1 Restore nodeosVers to performance test ClusterConfig.
Migrate node-specific version-dependent config out of ClusterConfig into
Node.
Fix Cluster killall to use Python launcher.
2023-03-01 19:11:18 -06:00
Lin Huang a7df2e7d59 Merge branch 'main' into send_read_only_trx 2023-03-01 20:01:29 -05:00
Peter Oschwald 576ba161f2 Handle excpetions occurring during runTest. 2023-03-01 18:18:03 -06:00
ClaytonCalabrese c90430b316 Merge pull request #765 from AntelopeIO/test_harness_change_performance_test_defaults
[TH] Revert Unintentional Change to Performance Test Defaults
2023-03-01 17:50:17 -06:00
Clayton Calabrese d144ac5999 revert an unintentional change ot the defaults in performance test 2023-03-01 17:19:19 -06:00
Lin Huang 06cc38e9f7 For EOS-VM-OC, make sure the system has enough virtual memory for the number of read-only transaction execution threads 2023-03-01 18:01:47 -05:00
ClaytonCalabrese 08bd7b5941 Merge pull request #762 from AntelopeIO/performance_harness_performance_test_userTrxDataFile_fix
[PH] expose --user-trx-data-file to performance test
2023-03-01 16:31:33 -06:00
Peter Oschwald de7274be4e Merge pull request #761 from AntelopeIO/ph-update-calc-threads-min
[PH] update calc threads min to give to plugins to the plugin default.
2023-03-01 16:30:06 -06:00
Kevin Heifner d24cbb1509 Merge remote-tracking branch 'origin/release/3.2' into GH-659-ship-rollback-main 2023-03-01 16:23:25 -06:00
Kevin Heifner afd52cb105 Merge pull request #737 from AntelopeIO/GH-659-ship-rollback-3.2
[3.2] SHiP do not truncate logs when starting from genesis
2023-03-01 16:22:19 -06:00
Gregory Popovitch d42b860039 Merge pull request #763 from AntelopeIO/gh-513_main
[3.2 -> main] keosd - Exit program if keosd fails to aquire wallet lock (GH #513)
2023-03-01 17:07:02 -05:00
Clayton Calabrese b152475c8f also fix linearsearch test case for performance test. 2023-03-01 16:02:27 -06:00
greg7mdp 5bdf3fb20a Revert to using code unauthorized (see PR comment). 2023-03-01 16:54:04 -05:00
Clayton Calabrese ddd64861b0 remove unneeded arg in performPtbBinarySearch 2023-03-01 15:39:54 -06:00
greg7mdp 3ec5a36a75 Merge branch 'release/3.2' of github.com:AntelopeIO/leap into gh-513_main 2023-03-01 16:39:15 -05:00
greg7mdp b62ea2b878 Address PR Comments. Return code 417 when Expect fails. 2023-03-01 16:36:38 -05:00
Gregory Popovitch 9c7b0b721e Merge pull request #756 from AntelopeIO/gh-513_rel3.2
[3.1 -> 3.2] keosd - Exit program if keosd fails to aquire wallet lock (GH #513)
2023-03-01 16:28:59 -05:00
Clayton Calabrese bad5a9bc91 expose --user-trx-data-file to performance test 2023-03-01 15:27:55 -06:00
Peter Oschwald ec5db248b7 Update the min threads to start at when calculating number of threads to give to plugins to the plugin default. 2023-03-01 15:26:10 -06:00
Huang-Ming Huang e7a1572118 avoid join called from its own thread 2023-03-01 14:21:20 -06:00
Peter Oschwald 48022c93b6 Update ChainPluginArgs to capture arguments added to chain plugin. 2023-03-01 13:03:33 -06:00
766C6164 962f0a975d Addressing feedback comments 1/2 2023-03-01 13:49:55 -05:00
Lin Huang bc7d7e2c84 use an enum to indicate which queue to post; use write queue for default queue to post; and clean up use of app().post in producer_plugin 2023-03-01 13:41:56 -05:00
greg7mdp 8d524d965f Merge branch 'main' of github.com:AntelopeIO/leap into gh-451 2023-03-01 10:33:35 -05:00
greg7mdp 96fa497a43 Merge branch 'main' of github.com:AntelopeIO/leap into gh-643 2023-03-01 10:21:44 -05:00
Huang-Ming Huang b1b7ae76ef fix mark_bp_connection 2023-02-28 20:02:23 -06:00
Huang-Ming Huang 95852be12e address PR comments 2023-03-02 14:02:25 -06:00
Huang-Ming Huang c13777a99c address some PR comments 2023-03-01 15:16:28 -06:00
Peter Oschwald 5531d0e978 Merge branch 'main' into feature_performance_harness_stage_2 2023-02-28 19:41:24 -06:00
Kevin Heifner 248ed21b54 Merge branch 'main' into GH-592-ship-crash-split-ship-log 2023-02-28 19:31:01 -06:00
ClaytonCalabrese e6b2a4ec7e Merge pull request #740 from AntelopeIO/performance_harness_nodeos_config_options
[PH] Expose various Nodeos Options in performance_test_basic
2023-02-28 18:58:53 -06:00
Jonathan Giszczak 4e9a7ec8ec Remove use of eosio-launcher in Cluster killall(). 2023-02-28 18:32:08 -06:00
Huang-Ming Huang a28e873134 Merge pull request #532 from AntelopeIO/huangminghuang/block_log
Add block log partition functionality
2023-02-28 17:57:34 -06:00
Jonathan Giszczak b84b293e08 Consolidate bounce and down implementations in launcher. 2023-02-28 17:33:26 -06:00
Jonathan Giszczak 7c009bb934 Spacing. 2023-02-28 17:32:56 -06:00
Clayton Calabrese 7075447265 add fix for duplicate transaction in transaction generators when resigning transactions 2023-02-28 17:28:03 -06:00
Clayton Calabrese 0fbdbfa4e0 merge from dev branch 2023-02-28 16:15:39 -06:00
766C6164 2eae5267eb Updated yaml formatting 2023-02-28 16:43:31 -05:00
Lin Huang 64aee92db8 make wasmif in controller and executor in eosvmoc_runtime as default member to allow multiple controllers in unittest 2023-02-28 16:22:27 -05:00
Huang-Ming Huang c5b6b0dcc2 More merge fix 2023-02-28 15:00:36 -06:00
Vlad ca1a8d3ad7 Merge branch 'main' into snapshot-api 2023-02-28 15:40:56 -05:00
Clayton Calabrese 0d30973b85 rename eos-vm-oc-enable in performance test to represent it only affecting non producer nodes. Resolve related test failure. 2023-02-28 14:39:06 -06:00
Huang-Ming Huang 76816a83aa address PR comments 2023-02-28 14:21:05 -06:00
Peter Oschwald a5adbda94f Merge pull request #734 from AntelopeIO/ph2-update-docs
[PH] Update docs
2023-02-28 14:06:12 -06:00
Kevin Heifner eddd8373b5 GH-659 Add additional comments 2023-02-28 13:51:08 -06:00
Peter Oschwald 078197250d Update reports in readme. 2023-02-28 13:36:13 -06:00
766C6164 21630d3a5c Added second snapshot request to test 2023-02-28 13:05:23 -05:00
Peter Oschwald cdc00a2385 Merge branch 'feature_performance_harness_stage_2' into ph2-update-docs 2023-02-28 11:09:45 -06:00
ClaytonCalabrese 62126c6482 Merge pull request #757 from AntelopeIO/performance_harness_resolve_duplicate_transaction_ids
[PH] Resolve Duplicate Transaction ID Generation in Transaction Generator
2023-02-28 10:36:28 -06:00
Peter Oschwald 2940d5aa92 Updates per peer review. 2023-02-28 10:18:19 -06:00
greg7mdp 715cd765df Remove reference to http_client_plugin page, which was removed. 2023-02-28 10:30:56 -05:00
Chris Gundlach a88bf8d9fd updates based on feedback from pr 2023-02-28 08:08:27 -06:00
greg7mdp dc66574b2d remove http_client_plugin doc (unneeded after https removal) 2023-02-28 08:59:56 -05:00
Huang-Ming Huang 3b2c22d240 address PR comments 2023-02-27 21:58:09 -06:00
Huang-Ming Huang f3b5c74cc8 more merge issue fix 2023-02-27 21:57:15 -06:00
Huang-Ming Huang 21d988d279 some more merge issue fix 2023-02-28 11:52:52 -06:00
Huang-Ming Huang c5010d9df3 fix merge problem 2023-02-28 11:44:17 -06:00
Huang-Ming Huang a6872c8e84 Merge branch 'main' into huangminghuang/block_log
# Conflicts:
#	libraries/appbase
#	libraries/chain/abi_serializer.cpp
#	libraries/chain/include/eosio/chain/abi_serializer.hpp
#	plugins/chain_plugin/chain_plugin.cpp
2023-02-28 10:10:34 -06:00
Lin Huang be0054bb3c do not enforce max_action_return_value_size for read-only transactions 2023-02-27 17:54:10 -05:00
Clayton Calabrese 1ce9036357 change enable args in performance_test_basic to be store_true instead of bools. Put eos-vm-oc-enable in ptb only onto non producer nodes. Remove duplicate choice in wasm-runtime 2023-02-27 16:36:38 -06:00
Jonathan Giszczak 021597ff7b Fix timing issue in compute_transaction_test. 2023-02-27 15:44:57 -06:00
Clayton Calabrese 6dfb66edaa resolve test failure for ram and cpu performance tests due to id collision 2023-02-27 15:44:53 -06:00
Lin Huang 655c1c58da move custom_appbase from under plugin to under libraries directory 2023-02-27 16:42:51 -05:00
Huang-Ming Huang 63de610175 remove unnecessary return 2023-02-27 15:24:01 -06:00
Huang-Ming Huang 5d0abaf7a2 move gelf logging to another thread 2023-02-27 15:11:35 -06:00
Lin Huang c6df34b1e1 make multi-threaded eos-vm-oc work 2023-02-27 16:08:26 -05:00
Lin Huang 4e04ff329c add an optional init function to be called when a thread is started 2023-02-27 16:06:14 -05:00
Jonathan Giszczak cac4714b9c Fix timing issue in cli_test. 2023-02-27 14:18:32 -06:00
Huang-Ming Huang 733c6057bb fix typo 2023-02-27 12:56:47 -06:00
Huang-Ming Huang e49e1a8909 revert catching fc::exception 2023-02-27 12:50:09 -06:00
Huang-Ming Huang 3617b438b6 address PR comments 2023-02-27 12:27:24 -06:00
Clayton Calabrese 93f7a50d1f add a sanity check for number of transactions scraped from trx gen 2023-02-27 11:57:59 -06:00
greg7mdp 9892f9abf7 Merge branch 'release/3.1' of github.com:AntelopeIO/leap into gh-513_rel3.2 2023-02-27 10:44:29 -05:00
Gregory Popovitch 4957dd5b63 Merge pull request #755 from AntelopeIO/gh-530_main
[3.2 -> main] Avoid logging errors when client disconnects after request (GH #530)
2023-02-27 10:39:47 -05:00
Huang-Ming Huang e95ae9c239 address PR comments 2023-02-27 09:28:34 -06:00
Kevin Heifner 06a8032662 Merge pull request #752 from AntelopeIO/GH-659-log
Move initialization of logging before plugin_initialize
2023-02-27 08:05:53 -06:00
Lin Huang 4f9baf57c6 revert thread_ids() method 2023-02-27 09:04:47 -05:00
greg7mdp 91f689483f Merge branch 'release/3.2' of github.com:AntelopeIO/leap into gh-530_main 2023-02-25 19:30:06 -05:00
Alexander Molchevsky 34cda2a910 Merge pull request #751 from AntelopeIO/update_bios_boot_tutorial_main
[3.2 -> main] New protocol features activation was added to the bootstrap process
2023-02-26 00:49:32 +02:00
Kevin Heifner 9755a45304 GH-659 get_name() returns by value which removes the need for this comment. 2023-02-25 12:36:16 -06:00
Kevin Heifner 6e9e2edd59 GH-659 Change name() to get_name() that returns by value. This prevents accident use of returned const& after logger has been destroyed. 2023-02-25 12:35:50 -06:00
Kevin Heifner 9255393bac GH-659 resource monitor test assumes this is logged, but runs with info level logging. 2023-02-25 12:33:19 -06:00
Kevin Heifner 2c0b46f70f GH-659 Move initialization of logging before plugin_initialize so configured logging works as expected 2023-02-24 21:33:55 -06:00
Gregory Popovitch e226e464c3 Merge pull request #750 from AntelopeIO/gh-530-rel3.2
[3.2] Avoid logging errors when client disconnects after request (GH #530)
2023-02-24 21:52:33 -05:00
Lin Huang ba66693ace simplify thread data by using thread_local for timer and wasm_alloc 2023-02-24 17:52:56 -05:00
Alexander Molchevsky 3cc87ef0af Merge remote-tracking branch 'origin/release/3.2' into update_bios_boot_tutorial_main
Merge updates
2023-02-25 00:44:45 +02:00
Jonathan Giszczak 75caa12f25 Add dependency resolver for protocol features. 2023-02-24 16:30:24 -06:00
Gregory Popovitch 84cd370504 Merge branch 'release/3.2' into gh-530-rel3.2 2023-02-24 17:03:40 -05:00
Huang-Ming Huang aff761c7b4 address PR comment 2023-02-24 15:48:34 -06:00
greg7mdp 3b4c66ba50 Silently close connection upon receiving asio::error::connection_reset 2023-02-24 16:34:11 -05:00
Clayton Calabrese a13f48ba3c merge from main and rerun generate_nodeos_plugin_args 2023-02-24 13:17:55 -06:00
Clayton Calabrese 181fe40036 Merge branch 'main' into feature_performance_harness_stage_2 2023-02-24 11:33:57 -06:00
Alexander Molchevsky 1dea8a9e3d Merge pull request #748 from AntelopeIO/update_bios_boot_tutorial3.2
Backport to 3.2 of bootstrap new protocol features activation
2023-02-24 17:40:57 +02:00
Alexander Molchevsky a6c1e92aea Merge remote-tracking branch 'origin/release/3.1' into update_bios_boot_tutorial3.2
Merge updates
2023-02-24 17:00:54 +02:00
Huang-Ming Huang 90cdd6741f change file mode 2023-02-24 08:34:20 -06:00
Jonathan Giszczak cd40443f94 Get nodeos version in Node either on init or launch. 2023-02-23 19:32:54 -06:00
greg7mdp d16743f120 fix test failure (keosd_auto_launch_test.py) 2023-02-23 17:05:40 -05:00
greg7mdp f65b2ec92b fixup! Update whitespace to avoid diff in PR. 2023-02-23 16:26:40 -05:00
greg7mdp 201793adb8 Update whitespace to avoid diff in PR. 2023-02-23 16:25:10 -05:00
greg7mdp b657fc6eb7 revert removal of OPENSSL_ROOT_DIR in top CMakeLists.txt. 2023-02-23 16:23:00 -05:00
greg7mdp e3c6016bd4 Merge branch 'main' of github.com:AntelopeIO/leap into gh-643 2023-02-23 16:05:05 -05:00
greg7mdp e88ccece3f remove https options from docs. 2023-02-23 16:03:20 -05:00
Clayton Calabrese 481811969e fix some README issues in performance test 2023-02-23 14:55:50 -06:00
Clayton Calabrese dcd8bc6df1 Restore accidentally removed config option. Added new option and updated README. Use choices for wasm-runtime. Add new options to the *Args constructors in both performance tests. 2023-02-23 14:52:42 -06:00
greg7mdp d2e38e2ef5 remove HTTPS support from libfc in http_client.
Also remove `OpenSSL::SSL` from libraries/libfc/CMakeLists.tx.
2023-02-23 15:51:54 -05:00
greg7mdp ad6a0969df remove HTTPS support from http_client_plugin 2023-02-23 15:19:51 -05:00
greg7mdp 43f6dca8f5 remove HTTPS support from http_plugin. 2023-02-23 15:17:37 -05:00
Huang-Ming Huang 150c18c34f rename auto-bp-peer to p2p-auto-bp-peer 2023-02-23 14:04:29 -06:00
Huang-Ming Huang 826cf9905b fix test 2023-02-23 13:40:17 -06:00
Huang-Ming Huang 1dc4ff8cd8 Merge branch 'main' into huangminghuang/auto-bp-peer 2023-02-23 13:05:38 -06:00
Kevin Heifner a3e0756474 Merge pull request #742 from AntelopeIO/GH-741-abi-serializer
Revert interface change of abi_serializer for tester
2023-02-23 11:23:12 -06:00
Lin Huang 36f89c71e1 add tests for parallelizing read-only thransaction execution 2023-02-23 12:15:09 -05:00
Lin Huang 88322f7d6b update test contract for read-only transaction testing 2023-02-23 12:14:19 -05:00
Lin Huang 23b5f27c3c main work of parallelizing read-only thransaction execution 2023-02-23 12:13:35 -05:00
Lin Huang d6947eff58 Make chainApis and NetApis safe to multithreaded read-only transactions 2023-02-23 12:11:47 -05:00
Lin Huang d181cacf46 add support to specify which execution queue to post an RPC API 2023-02-23 12:08:05 -05:00
Clayton Calabrese 2952699ebc Merge branch 'feature_performance_harness_stage_2' into performance_harness_nodeos_config_options 2023-02-23 11:07:38 -06:00
ClaytonCalabrese 8a0adc4b18 Merge pull request #713 from AntelopeIO/performance_harness_eos_mechanics
[PH] Use EOSMechanics contract with Performance Test
2023-02-23 11:06:45 -06:00
Lin Huang 02ddc0375e update to use new app().executor().post() 2023-02-23 12:03:57 -05:00
Lin Huang 5716438cea simplify execution window setting and checking APIs 2023-02-23 11:59:49 -05:00
Kevin Heifner e9b6c9ee21 GH-659 Allow truncate call when before begin_block otherwise rollback past prune does not work. Added additional test cases. 2023-02-23 10:30:57 -06:00
766C6164 82ae03985d Included light boost integration test 2023-02-23 09:39:49 -05:00
greg7mdp cbcad80c61 Update whitespace to the PR doesn't show a diff for CMakeLists.txt 2023-02-23 09:22:35 -05:00
greg7mdp ab7c555879 Remove boost warning suppression as requested by Matt in PR review 2023-02-23 09:20:43 -05:00
Kevin Heifner b4f18d5d20 GH-741 Don't std::move abi since it is used after. 2023-02-23 07:58:58 -06:00
Kevin Heifner f6d51f1989 GH-741 Reverted interface change to deprecated methods. Changed from rvalue reference to value so backward compatible for those using abi_serializer via tester. 2023-02-23 07:31:57 -06:00
Matt Witherspoon 505bae8ef3 Merge pull request #739 from AntelopeIO/remove_unused_boostbind_header
remove unused boost/bind.hpp include that generates a warning
2023-02-22 20:16:02 -05:00
Clayton Calabrese db73142095 Expose a number of nodeos options via the CLI in performance_test_basic. Also hardcode some others. 2023-02-22 18:24:25 -06:00
Matt Witherspoon dcbb111741 remove unused boost/bind.hpp include that generates a warning 2023-02-22 17:53:36 -05:00
Kevin Heifner 4b7e8274c7 GH-659 Skip writing to ship log if log already contains block 2023-02-22 16:14:59 -06:00
Clayton Calabrese b1ce2718b7 re-report the readme report due to changes, and update performance test to accomodate chanes 2023-02-22 15:40:31 -06:00
greg7mdp a5997fe0ee Complete basic unit tests.
This test exercises both basic http 1.0 protocol, and the Expect "100-continue" from http 1.1.
2023-02-22 16:30:32 -05:00
Lin Huang b46629b9d0 make controller threaded safe for read-only transaction execution 2023-02-22 16:24:54 -05:00
Lin Huang 33c09d385e add a missing custom_appbase change for unittests 2023-02-22 16:23:49 -05:00
Kevin Heifner 4dd5651a11 GH-659 Do not allow truncate back to genesis 2023-02-22 15:12:07 -06:00
Clayton Calabrese 97a8d1299f merge from feature branch 2023-02-22 14:29:47 -06:00
Clayton Calabrese fd0c702d18 remove unavailable options from README for performance test 2023-02-22 14:20:25 -06:00
Peter Oschwald 4f90bf6ff0 Update log directory structure example. 2023-02-22 14:18:16 -06:00
Kevin Heifner f6f93c0a0a Merge pull request #728 from AntelopeIO/GH-723-json-optimization
Optimize json parsing
2023-02-22 14:12:32 -06:00
Clayton Calabrese 3f191a9adc update transaction datafiles to match new eosio.mechanics directory layout 2023-02-22 14:11:03 -06:00
ClaytonCalabrese 5980ed3431 Merge pull request #731 from AntelopeIO/performance_harness_shutdown_trxgenlauncher
[PH] Add TransactionGeneratorLauncher to TestHelper Shutdown
2023-02-22 13:48:44 -06:00
Lin Huang 60bf50dc64 add thread_ids method to return thread IDs of the threads in a thread pool 2023-02-22 13:50:41 -05:00
Clayton Calabrese c15ed53794 remove unused import 2023-02-22 12:43:10 -06:00
Clayton Calabrese 1935103562 remove shutdown change from nodeos_startup_catchup 2023-02-22 12:42:38 -06:00
Clayton Calabrese 2fd6ad6057 Unwind shutdown changes as cluster killall will handle the transactiongeneratorlauncher now that it is set 2023-02-22 12:37:52 -06:00
Peter Oschwald 3fe0fdf357 Update docs for trx_generator README. 2023-02-22 12:19:51 -06:00
Lin Huang df2060fcca add read-only trx parallelization configuration options 2023-02-22 13:16:16 -05:00
766C6164 f1affa6b8e Hook snapshot generation to block_start 2023-02-22 12:48:16 -05:00
Peter Oschwald 97ed6b6118 Update test report examples in README. 2023-02-22 11:31:41 -06:00
Peter Oschwald fd4cdbd52c Update README for new command line arguments to Performance Harness scripts. 2023-02-22 11:18:14 -06:00
Kevin Heifner 8d13c2aae1 GH-723 Avoid potential temporary 2023-02-22 10:34:05 -06:00
Kevin Heifner 90e773a370 GH-723 Use using to make less verbose. 2023-02-22 10:03:18 -06:00
Lin Huang 0b1b2a26eb customize appbase to support two queue executor in Leap, add tests, update Leap to use the cusomized appbase 2023-02-22 10:18:12 -05:00
Kevin Heifner ba6b9a95db Merge pull request #729 from AntelopeIO/GH-721-test
Test: Provide a bit more time for the contract to be cached.
2023-02-22 07:54:41 -06:00
Huang-Ming Huang 08f614c121 Add auto bp peering functionality 2023-02-22 01:51:40 -06:00
Clayton Calabrese a2ee13ad39 rearrange shutdown arguments to accomodate the 20 or so tests using shutdown without keyword arguments 2023-02-21 20:40:44 -06:00
Jonathan Giszczak f759571449 Bring cluster bootstrap into line with bios_boot.sh.
Default to using cluster boostrap rather than shell script.
Tolerate dots in integration test names.
Relocate urllib support to queries.py, highest inheritance hierarchy
level it is used.
Miscellaneous code cleanup.
To enable heterogenous clusters:
-  Self-configure Node version per node.
-  Activate protocol features supported by lowest version node.
2023-02-21 18:49:30 -06:00
Lin Huang b160db9044 Merge branch 'main' into send_read_only_trx 2023-02-21 19:27:15 -05:00
Gregory Popovitch b8cb13ffdd Merge pull request #732 from AntelopeIO/appbase_executor
Update leap to use new appbase version.
2023-02-21 18:14:44 -05:00
greg7mdp 8d300377d5 update to the latest appbase version 2023-02-21 17:39:34 -05:00
Clayton Calabrese 1cf32d615d give ability to cleanup transaction generator in TestHelper shutdown 2023-02-21 15:42:48 -06:00
Clayton Calabrese 074471b413 address PR comment to make contracts folder consistent. 2023-02-21 15:40:45 -06:00
Kevin Heifner 94424bf5c3 GH-721 Provide a bit more time for the contract to be cached. 2023-02-21 13:59:00 -06:00
greg7mdp 9d737860c0 Fix issues when using new appbase 2023-02-21 14:30:17 -05:00
Kevin Heifner 7e22fed30d GH-627 Add const as request in peer review 2023-02-21 13:26:57 -06:00
Kevin Heifner ee77041529 GH-723 Optimize json parsing by using boost stream and std::string instead of std::stringstream 2023-02-21 13:06:26 -06:00
greg7mdp af23774f13 update http_plugin test to test the Expect 100-continue support 2023-02-21 14:00:00 -05:00
766C6164 34612f2dab Little refactoring 2023-02-21 11:05:27 -05:00
Kevin Heifner 5a94445f3f Merge branch 'GH-592-ship-crash-split-ship-log' into GH-627-ship 2023-02-21 09:53:34 -06:00
Kevin Heifner d12726c58f Merge branch 'huangminghuang/block_log' into GH-592-ship-crash-split-ship-log 2023-02-21 09:07:28 -06:00
Kevin Heifner a642ad3071 Create index on hard-replay 2023-02-21 08:36:07 -06:00
Lin Huang 251c2a31d9 Merge branch 'main' into send_read_only_trx 2023-02-21 09:35:33 -05:00
ClaytonCalabrese 6e5cb4a67c Merge pull request #720 from AntelopeIO/performance_harness_capture_arg_string
[PH] Capture Full Command Line Argument String in Report
2023-02-20 19:05:14 -06:00
Clayton Calabrese 8f75c30e2e add ram performance test. Rework how keys are put into contract account for performance test. revert the reversion of the setupWallet change 2023-02-20 16:14:05 -06:00
Chris Gundlach 86791fe7cc updated named_thread_pool usage 2023-02-20 15:34:34 -06:00
Kevin Heifner 0d497be7c5 Update tests for block_log not auto re-creating index file. 2023-02-20 15:02:55 -06:00
Kevin Heifner 051546bfc2 Update block_log to handle case of a block_log with no blocks 2023-02-20 15:02:14 -06:00
Kevin Heifner fa61e5c475 GH-627 Fix merge issue 2023-02-20 13:08:19 -06:00
Kevin Heifner 16c2a92432 Merge branch 'GH-592-ship-crash-split-ship-log' into GH-627-ship 2023-02-20 13:03:30 -06:00
Kevin Heifner bd664892b3 Merge branch 'huangminghuang/block_log' into GH-592-ship-crash-split-ship-log 2023-02-20 12:58:14 -06:00
Kevin Heifner 06b6d651b3 Merge remote-tracking branch 'origin/main' into huangminghuang/block_log 2023-02-20 12:48:25 -06:00
Kevin Heifner 707e72f8db GH-627 Additional cleanup 2023-02-20 12:43:24 -06:00
Kevin Heifner a79358fd61 GH-627 Add more than one client to get better test coverage 2023-02-20 12:42:59 -06:00
Chris Gundlach 4c6de84598 Merge branch 'main' into feature_prometheus_plugin 2023-02-20 10:33:43 -06:00
Christopher Gundlach 24d9998f55 Merge pull request #722 from AntelopeIO/prom_instrument_api
Added instrumentation for number of calls to api endpoint
2023-02-20 09:56:36 -06:00
Chris Gundlach 2282b7bac1 took out cmake dependencies on chain_plugin 2023-02-20 09:55:02 -06:00
766C6164 8301c6bd7b Improved data structures 2023-02-19 22:16:49 -05:00
Kevin Heifner f0b44752c4 GH-627 Add logging of connection info 2023-02-18 15:42:17 -06:00
Clayton Calabrese 726a0333e7 rerun test and update readme 2023-02-17 19:28:21 -06:00
Kevin Heifner 897e950c4b GH-627 Cleanup and optimization 2023-02-17 15:14:31 -06:00
Clayton Calabrese 270ea091f9 improve visibility of TypeErrors and still output JSON when one occurs 2023-02-17 14:44:10 -06:00
Clayton Calabrese e27ebfa1b8 revert a number of inadvertant whitespace changes due to removed code from merge. Fix printing of account type in json. 2023-02-17 13:49:15 -06:00
Kevin Heifner a2aecb3e23 GH-627 Refactor state_history_plugin to use a session_manager. The session_manager is used to coordinate sending since only one session can access the trace/delta log files at a time. 2023-02-17 10:55:09 -06:00
Kevin Heifner 4d31b149ff GH-627 Optimize empty() 2023-02-17 10:51:23 -06:00
Jonathan Giszczak 2dd3a18235 Add log messages, remove cruft and commented code. 2023-02-16 20:13:04 -06:00
greg7mdp 37f0b285b4 wip 2023-02-16 19:19:35 -05:00
greg7mdp 52cfbd8346 wip 2023-02-16 19:10:08 -05:00
greg7mdp 210b884ffe wip - http_plugin unit tests 2023-02-16 18:55:11 -05:00
Clayton Calabrese 5a67397e1c reduce size of specifiedContract through use of .account 2023-02-16 17:10:08 -06:00
Clayton Calabrese 724ba6cdae readd test-duration-sec to cpu performance test, remove lingering commas, set back assert in trx_generator main 2023-02-16 16:29:44 -06:00
Clayton Calabrese 96ae1ec49a revert some no longer necessary changes following merge and resolve test failures in doing so. 2023-02-16 15:48:43 -06:00
Huang-Ming Huang a7a401edb2 Merge pull request #724 from AntelopeIO/huangminghuang/update-bn256
merge bn256 submodule change
2023-02-16 15:29:13 -06:00
Huang-Ming Huang 71378b9b1a remove fix-irreversible_block option 2023-02-16 15:12:28 -06:00
Huang-Ming Huang 679b2053a0 merge bn256 submodule change 2023-02-16 13:10:49 -06:00
Clayton Calabrese 94d4b4be24 add missing cpuTrxData.json file 2023-02-16 11:03:18 -06:00
Chris Gundlach 8f84257950 added url to count metric 2023-02-16 10:22:37 -06:00
Chris Gundlach 12ec8ece1d added metrics tracking for api calls 2023-02-16 09:59:49 -06:00
mikelik 2f9903033a Merge pull request #718 from AntelopeIO/mikelik/valgrind_fix_low
Change INCBIN to INCTXT for abi in tests to fix invalid read
2023-02-16 16:55:19 +01:00
Kevin Heifner 9283b46856 Merge pull request #715 from AntelopeIO/GH-669-ship-main
[3.2 -> main] Fix SHiP stability
2023-02-16 07:04:34 -06:00
Michal Lesiak 3364a714a1 Change INCBIN to INCTXT for abi to add trailing null terminator and fix invalid read 2023-02-16 11:38:44 +01:00
Michal Lesiak fe98d62640 Increase vectors used in testing by 1 to fix invalid read 2023-02-16 11:38:44 +01:00
766C6164 46502e5814 Added execution handlers, several updates 2023-02-15 21:38:52 -05:00
Clayton Calabrese 1b77051987 improve reporting for command line in performance tests. Replace README output with new data. 2023-02-15 16:47:33 -06:00
Clayton Calabrese d00908e0f4 add variable to be saved in report which captures arg string in full 2023-02-15 16:18:44 -06:00
766C6164 2aad1dcaef Work in progress, moved things around 2023-02-15 16:47:26 -05:00
Kevin Heifner d8485297bb GH-627 WIP moving ship sending off main thread 2023-02-15 15:15:43 -06:00
Clayton Calabrese 06c418e813 merge from feature branch 2023-02-15 14:16:47 -06:00
greg7mdp 986dc8f388 Start implementing http_plugin unit tests 2023-02-15 13:23:20 -05:00
Kevin Heifner 077f4fbf93 GH-627 Add empty() method to sha256 2023-02-15 11:03:12 -06:00
greg7mdp 8bb930c87b Merge branch 'main' of github.com:AntelopeIO/leap into gh-451 2023-02-15 10:46:40 -05:00
Kevin Heifner 165e72ff95 GH-627 Update net_plugin to use new thread-safe block retrieval methods. 2023-02-15 09:17:37 -06:00
Kevin Heifner 84e8facc78 GH-627 Make get_block_id_from_num thread-safe. 2023-02-15 09:16:50 -06:00
Kevin Heifner dd59a99722 Merge pull request #696 from AntelopeIO/GH-677-get-block
Move get_block abi serialization off the main thread
2023-02-15 07:24:13 -06:00
Lin Huang 0dee765de8 Merge pull request #717 from AntelopeIO/bump_to_latest_appbase
bump appbase to the latest version for fixing test failures
2023-02-14 17:29:01 -05:00
Lin Huang 8adaef4cf0 bump appbase to the latest version for fixing test failures 2023-02-14 16:42:28 -05:00
Kevin Heifner 8a176e9ec5 GH-627 Make block_log thread safe 2023-02-14 15:35:13 -06:00
Jonathan Giszczak aaaa31184b Fix merge error. 2023-02-14 13:37:39 -06:00
Kevin Heifner f79b1a21c7 Merge remote-tracking branch 'origin/main' into GH-627-ship 2023-02-14 09:06:02 -06:00
766C6164 576143901a Added ut to a snapshot scheduler 2023-02-13 21:47:22 -05:00
Kevin Heifner 6f9ad52fbb Merge pull request #704 from AntelopeIO/GH-395-resource-monitor
Add absolute value threshold to resource monitor
2023-02-13 20:10:18 -06:00
Jonathan Giszczak e7a7f211a5 Fix merge errors.
Partially lost conversion to pathlib.
2023-02-13 17:01:23 -06:00
Jonathan Giszczak 3c78db6777 Stop using deprecated boost resolver overload.
Boost authors, in their infinite wisdom, have written different default
resolver flags across overloads which take the same parameters at
different layers in the API.
2023-02-13 16:35:08 -06:00
Clayton Calabrese d35b2f9515 merge from dev branch 2023-02-13 16:21:05 -06:00
Peter Oschwald 8a1fecd9a7 Merge pull request #702 from AntelopeIO/ph-gen-newaccounts
[PH] Transaction Generator support generating newaccount transactions
2023-02-13 16:02:08 -06:00
Peter Oschwald f25de1b5a8 Addressing peer review comments. 2023-02-13 15:34:21 -06:00
Peter Oschwald 239fa1fdc8 Addressing peer review comments. 2023-02-13 14:09:20 -06:00
greg7mdp c9df8e9f1b small cleanups 2023-02-13 13:25:24 -05:00
Jonathan Giszczak ac8002b2d1 nodeosLogPath still a string, not a pathlib Path. 2023-02-13 12:21:03 -06:00
greg7mdp 016183a467 Complete support for "100-continue" 2023-02-13 13:08:11 -05:00
Peter Oschwald 66fc7ddeec Correct the default priv keys to be valid key format. 2023-02-13 12:04:40 -06:00
Peter Oschwald 4384455481 Make private helper to protect usage. 2023-02-13 12:03:59 -06:00
Peter Oschwald 77ba8eacfe Fix typo in argument. 2023-02-13 11:42:34 -06:00
Peter Oschwald dd4fb9143f Add commentary and unit tests for account name generator. 2023-02-13 11:20:10 -06:00
Peter Oschwald 73105095a5 Merge pull request #712 from AntelopeIO/gh711-update-missing-python-dep
GH-711 Update dependencies to include numpy.
2023-02-13 08:51:14 -06:00
Kevin Heifner d0be3b93ef Merge remote-tracking branch 'origin/release/3.2' into GH-669-ship-main 2023-02-13 06:29:43 -06:00
Kevin Heifner 3ee279a10d Merge pull request #714 from AntelopeIO/GH-669-ship
[3.2] Fix SHiP stability
2023-02-13 06:29:04 -06:00
Kevin Heifner 8fa412616e Merge pull request #710 from AntelopeIO/GH-695-dirty-db-main
[3.2 -> main] Fix reporting of dirty db
2023-02-13 06:01:24 -06:00
Jonathan Giszczak ec5681d775 Enum class _generate_next_value can't be staticmethod on older Pythons 2023-02-13 01:24:03 -06:00
Jonathan Giszczak 9837593164 Omit typing not understood on most platforms. 2023-02-13 00:20:51 -06:00
766C6164 b1654c9763 wip schedule/unschedule to update json db 2023-02-12 20:46:41 -05:00
766C6164 5ee9f0f3d0 intermediate commit to sync changes 2023-02-12 01:03:44 -05:00
Kevin Heifner c42d216143 Merge branch 'release/3.2' into GH-669-ship 2023-02-11 19:17:40 -06:00
Clayton Calabrese 1ca46a897c add eosiomechanics cpu run to performance test basic 2023-02-10 19:13:48 -06:00
Jonathan Giszczak e0f14275f5 Implement support for generating logging.json.
Add support for --logging-level, --logging-level-map, is-nodeos_v2
Fix remaining merge error.
2023-02-10 18:58:50 -06:00
greg7mdp 2fda9e983e wip - fix issue with regular request 2023-02-10 18:04:04 -05:00
Huang-Ming Huang 86ba65b852 make split log safer 2023-02-10 16:37:55 -06:00
greg7mdp 9a1fd644ad wip - 100-continue works but not regular request. 2023-02-10 17:21:37 -05:00
Huang-Ming Huang 4fc996d0a0 remove memory mapped file 2023-02-10 15:56:19 -06:00
Peter Oschwald 56863d0f69 Address additional peer review comments. 2023-02-10 15:44:15 -06:00
Peter Oschwald 12868230fb Address peer review comment. Virtual destructor added. 2023-02-10 15:29:34 -06:00
Huang-Ming Huang 273a4a2fdf Merge branch 'huangminghuang/block_log' into GH-592-ship-crash-split-ship-log
# Conflicts:
#	libraries/chain/include/eosio/chain/log_catalog.hpp
#	libraries/chain/include/eosio/chain/log_data_base.hpp
#	libraries/chain/include/eosio/chain/log_index.hpp
2023-02-10 14:57:32 -06:00
Peter Oschwald d14493b75a GH-711 Update dependencies to include numpy.
Was already in unpinning build instructions but missing for pinned builds and overarching requirements in readme.
2023-02-10 14:31:49 -06:00
Peter Oschwald 24e376cf87 Additional peer review comments being addressed. 2023-02-10 13:51:14 -06:00
Huang-Ming Huang b2c8fb8f72 address some more PR comments 2023-02-10 13:20:55 -06:00
Peter Oschwald 1ad0888997 Address some peer review comments. 2023-02-10 13:19:45 -06:00
Peter Oschwald 0dc7b3ae58 Rename id to generator_id to be more specific. 2023-02-10 13:04:45 -06:00
Huang-Ming Huang 82bcada40a updated based on PR #628 2023-02-10 12:47:12 -06:00
Huang-Ming Huang 422878fb11 Merge branch 'main' into huangminghuang/block_log 2023-02-10 12:16:34 -06:00
Huang-Ming Huang 3edbfdda74 remove memory mapped file usage 2023-02-10 12:16:08 -06:00
Kevin Heifner 5eff003966 Merge remote-tracking branch 'origin/release/3.2' into GH-695-dirty-db-main 2023-02-10 09:54:55 -06:00
Kevin Heifner 91720b8f74 Merge pull request #708 from AntelopeIO/GH-695-dirty-db-3.2
[3.1 -> 3.2] Fix reporting of dirty db
2023-02-10 09:54:30 -06:00
Kevin Heifner 305f41b7c6 GH-395 Avoid overflow 2023-02-10 09:34:40 -06:00
Kevin Heifner d47c760921 GH-395 Log values in GiB instead of Bytes. Other misc minor cleanup. 2023-02-10 09:27:18 -06:00
Kevin Heifner 30e99e66c2 Merge remote-tracking branch 'origin/main' into GH-395-resource-monitor 2023-02-10 08:28:11 -06:00
Kevin Heifner 5169a113bd Merge remote-tracking branch 'origin/release/3.1' into GH-695-dirty-db-3.2 2023-02-10 08:17:37 -06:00
Peter Oschwald 3c6bb070d0 Merge branch 'feature_performance_harness_stage_2' into ph-gen-newaccounts 2023-02-09 15:16:15 -06:00
Peter Oschwald 938d4abc53 Merge branch 'main' into feature_performance_harness_stage_2 2023-02-09 15:13:30 -06:00
Peter Oschwald f6f56e5c5d Fix logic in log_transactions.
Now that default contract is loaded to eosio again, it teased out a logic error here.  Should be 'or' not 'and'.
2023-02-09 14:31:13 -06:00
Peter Oschwald 299c9e9ee0 Fix Cluster's arguments for TransactionGeneratorsLauncher. 2023-02-09 10:53:00 -06:00
Peter Oschwald 310e6b8de7 Make actions data and auths const. 2023-02-09 10:52:39 -06:00
Lin Huang 424a0a7fe2 Merge pull request #705 from AntelopeIO/bump__to_latest_appbase
bump appbase to the latest for clang compile errors
2023-02-09 11:19:34 -05:00
Peter Oschwald 68fe107e1a Apply nonparallelizable_tests flag to new tests. 2023-02-09 10:08:32 -06:00
Lin Huang e9ef2026be bump appbase to the latest for clang compile errors 2023-02-09 10:45:00 -05:00
Peter Oschwald 7d250f6866 Merge branch 'feature_performance_harness_stage_2' into ph-gen-newaccounts 2023-02-09 09:30:14 -06:00
Peter Oschwald 3022c7c9f7 Fix validate_nodeos_plugin_args test by updating NetPlugingArgs default. 2023-02-09 09:21:19 -06:00
Kevin Heifner c91f3c6c45 GH-395 Combine all the unittests into one executable. Greatly improve run time for tests. Add new tests for resource-monitor-space-absolute-gb option. 2023-02-09 08:48:04 -06:00
Kevin Heifner def487d61b GH-395 Added resource-monitor-space-absolute-gb that overrides resource-monitor-space-threshold percentage option if specified. Also made sure file space warning is logged on exit when shutting down. 2023-02-09 08:46:08 -06:00
Peter Oschwald 5082223a01 Merge branch 'main' into feature_performance_harness_stage_2 2023-02-09 08:41:38 -06:00
Peter Oschwald 9a8d79212d Control test-duration-sec for these tests.
Default is 90 sec, don't need that long for these tests.
2023-02-09 08:07:44 -06:00
Peter Oschwald df12ef4835 Fix argument names. 2023-02-09 08:07:06 -06:00
Jonathan Giszczak 9aaac36e12 Fix merge error. 2023-02-08 19:00:04 -06:00
Jonathan Giszczak eba31b1187 Merge branch 'eosio-launcher-python-port' into eosio-launcher-launch-nodeos-unshared 2023-02-08 18:14:21 -06:00
Peter Oschwald d8d9fa3195 Expand transaction generator to support new account trx
Update user data transaction specification to support multiple actions and automatically generating an account namer per transaction to substitute into defined actions using the 'ACCT_PER_TRX' key word.

Removed arguments for action data pieces that have been moved into the larger transaction spec in the json files.

Added/Updated tests to exercise the new feature.
2023-02-08 17:35:47 -06:00
jgiszczak 9cbca20f81 Merge pull request #685 from AntelopeIO/launcher_merge_main_2_3
merge from main into launcher dev branch
2023-02-08 17:02:13 -06:00
Gregory Popovitch e302b74fd9 Merge pull request #636 from AntelopeIO/greg7mdp/gh-585
Update appbase/plugins to support multiple instances/exe
2023-02-08 16:21:50 -05:00
Clayton Calabrese 1ffa26a3df fix failure of performance test 2023-02-08 15:16:01 -06:00
Chris Gundlach 0bfc796926 added lambda for named thread pool start 2023-02-08 10:45:56 -06:00
Chris Gundlach e2e591fb54 mod to named_thread_pool construction 2023-02-08 10:25:52 -06:00
Chris Gundlach 3d2ad4de22 Merge branch 'main' into feature_prometheus_plugin 2023-02-08 09:47:36 -06:00
Gregory Popovitch a4129fc6d9 Merge pull request #697 from eosswedenorg/main
Producer Plugin: Add block number to account_failures::report()
2023-02-08 08:29:35 -05:00
Kevin Heifner 8d95662be5 Merge pull request #687 from AntelopeIO/named-thread
named_thread_pool template description for debugger
2023-02-08 06:32:45 -06:00
Henrik Hautakoski 40f04073d3 plugins/producer_plugin/producer_plugin.cpp: fix log message in account_failures::report()
Co-authored-by: Gregory Popovitch <greg7mdp@gmail.com>
2023-02-08 08:57:30 +01:00
Kevin Heifner 34baed929b GH-677 Revert unneeded explicit copy 2023-02-07 20:02:17 -06:00
Kevin Heifner 2eb0b43a65 GH-677 Use unnamed copy 2023-02-07 20:01:36 -06:00
Clayton Calabrese f44705d37d fixed performance test basic, the main pt is still failing 2023-02-07 18:28:38 -06:00
Kevin Heifner a10d6bc3be GH-677 Fix some uses of std::move 2023-02-07 16:22:24 -06:00
Kevin Heifner b1af6cf101 GH-677 Use unnamed copy 2023-02-07 15:58:50 -06:00
Kevin Heifner cd3aaf24c1 GH-677 Fix invalid move 2023-02-07 15:57:44 -06:00
Kevin Heifner ed2e91d68d GH-677 Constrain scope 2023-02-07 13:23:23 -06:00
Kevin Heifner eb0d3dc090 GH-677 Minor cleanup 2023-02-07 13:19:35 -06:00
Jonathan Giszczak 368fdd4ba9 Catch ProcessLookupError during terminate call and react appropriately 2023-02-07 12:36:52 -06:00
Kevin Heifner 62903c04ab GH-677 Use std::move for abi into abi_serializer to avoid string copies. 2023-02-07 11:58:41 -06:00
Kevin Heifner b7fdd1c884 GH-677 Refactor get_block into multiple methods for testing. Also fix issue with invalid abi should not throw exception. 2023-02-07 11:56:06 -06:00
Jonathan Giszczak 625662a2d2 Capture ProcessLookupError independently of OSError. 2023-02-07 10:59:41 -06:00
Henrik Hautakoski d34e1cf1d0 plugins/producer_plugin/producer_plugin.cpp: Add block number to account_failures::report() 2023-02-07 16:57:53 +00:00
Huang-Ming Huang 26c03a57d3 Merge branch 'main' into huangminghuang/block_log 2023-02-07 10:53:38 -06:00
Huang-Ming Huang 54ff3feba9 Merge branch 'main' into GH-592-ship-crash-split-ship-log 2023-02-07 10:15:38 -06:00
Kevin Heifner 38f3988ac5 GH-677 Move abi serialization off the main thread for get_block 2023-02-07 08:34:33 -06:00
Jonathan Giszczak 2aa860d871 Fix typo. 2023-02-06 19:02:04 -06:00
Jonathan Giszczak b245ba43c2 Implement wait for terminating process on platforms without pidfd_open
Remove spurious whitespace change in Cluster.
2023-02-06 18:08:17 -06:00
Kevin Heifner 7b010976a4 Merge pull request #693 from AntelopeIO/GH-662-terminate-at-block-main
[3.2 -> main] Fix --terminate-at-block to stop at correct block
2023-02-06 15:24:50 -06:00
Kevin Heifner eb2d2d5d6e Merge pull request #694 from AntelopeIO/GH-548-error-msg
Log exception details for failed transactions
2023-02-06 15:08:04 -06:00
Kevin Heifner c4629c7c3a Remove std::abort() 2023-02-06 15:06:19 -06:00
Kevin Heifner e702efa4d4 Use tag type for name instead of eosio::chain::name so no conversion from uint64_t needed. Thanks @greg7mdp for the idea. 2023-02-06 15:03:46 -06:00
Jonathan Giszczak 7eb38c4cd5 Remove nodeos_remote_test.
A test which doesn't test a feature we no longer support.
2023-02-06 14:21:38 -06:00
Huang-Ming Huang ffc8716284 update based on PR comment 2023-02-06 14:18:34 -06:00
Kevin Heifner 08d545a566 GH-548 Pass correct type 2023-02-06 12:28:19 -06:00
Kevin Heifner 511ec439a2 GH-548 Make constructor explicit to avoid auto conversion from int64_t 2023-02-06 12:27:43 -06:00
Huang-Ming Huang 94cb1d6353 use block_num_t consistently 2023-02-06 12:15:52 -06:00
Huang-Ming Huang 89963f6fdc address some PR comments 2023-02-06 11:42:33 -06:00
Christopher Gundlach 34a45f8d92 Merge pull request #635 from AntelopeIO/prometheus_metrics_listener
First cut at a more message based interface between prometheus and instrumented plugins
2023-02-06 09:52:41 -06:00
Chris Gundlach a8022cdd1b used std::move() to update metrics map rather than copy 2023-02-06 09:23:34 -06:00
Chris Gundlach 3ac58ebd50 Merge branch 'feature_prometheus_plugin' into prometheus_metrics_listener 2023-02-06 09:14:44 -06:00
Chris Gundlach 754b2d81f9 minor cleanup 2023-02-06 09:10:27 -06:00
Kevin Heifner 2def372081 GH-548 Log exception details 2023-02-06 09:02:59 -06:00
Kevin Heifner 2281382f15 Merge remote-tracking branch 'origin/release/3.2' into GH-662-terminate-at-block-main 2023-02-06 07:52:58 -06:00
Kevin Heifner f93a6084ea Merge pull request #691 from AntelopeIO/GH-662-terminate-at-block-3.2
[3.1 -> 3.2] Fix --terminate-at-block to stop at correct block
2023-02-06 07:49:46 -06:00
Kevin Heifner 217152d7fe Remove out of date comment 2023-02-06 07:47:23 -06:00
Kevin Heifner 3e89847085 Merge remote-tracking branch 'origin/release/3.1' into GH-662-terminate-at-block-3.2 2023-02-04 15:18:24 -06:00
Kevin Heifner 6fa01ee6ac Merge branch 'main' into named-thread 2023-02-04 14:51:31 -06:00
Kevin Heifner 44434bc5f1 Use method so named_thread_pool template is on the stack. Thanks @spoonincode for the idea. 2023-02-04 14:51:12 -06:00
greg7mdp d13d06886c Merge branch 'main' of github.com:AntelopeIO/leap into greg7mdp/gh-585 2023-02-04 13:46:03 -05:00
greg7mdp 889de5b282 Update appbase to tip 2023-02-04 13:44:35 -05:00
Matt Witherspoon f6643e434e Merge pull request #686 from AntelopeIO/clear_executable_cpp
clear executable flag on a couple source files
2023-02-04 11:54:34 -05:00
Kevin Heifner 286d570ba5 Remove abort() 2023-02-04 09:14:21 -06:00
Kevin Heifner d77ba4071d Make named_thread_pool a template that can be named via an eosio::chain::name. 2023-02-04 08:58:36 -06:00
Matt Witherspoon 2a08a0febd clear executable flag on a couple source files 2023-02-03 22:38:29 -05:00
Clayton Calabrese 6c5bc1e721 merge from main again 2023-02-03 16:07:20 -06:00
Clayton Calabrese 8d17b5cf40 merge from main 2023-02-03 15:59:15 -06:00
Kevin Heifner 7e1ef84c9b Merge remote-tracking branch 'origin/main' into GH-592-ship-crash-split-ship-log 2023-02-03 09:06:05 -06:00
Gregory Popovitch 9f0679bd0a Merge pull request #663 from AntelopeIO/greg7mdp/gh-470_ship_accept
SHiP: add delay when `accept()` fails with `too_many_files_open`
2023-02-03 08:48:25 -05:00
Jonathan Giszczak 404e5a9372 Implement bounce argument.
Finish fixing down argument.
2023-02-03 01:03:58 -06:00
Lin Huang 717685c037 change contracts to test_contracts 2023-02-02 21:26:38 -05:00
greg7mdp 3d609ae106 Implement Matt's suggestion to collapse two classes into a single templated one. 2023-02-02 21:24:25 -05:00
Lin Huang 4365542bc4 add no_auth_table to new unittests/test_contracts.hpp.in due to change by merge from main 2023-02-02 20:56:33 -05:00
Lin Huang 1b18206a79 Merge branch 'main' into send_read_only_trx 2023-02-02 20:52:26 -05:00
Kevin Heifner 02e4cc55a8 Merge pull request #682 from AntelopeIO/GH-588-handshake-main
[3.2 -> main] net_plugin improve block latency calculation
2023-02-02 18:44:45 -06:00
Kevin Heifner 1b5efcf6fa Merge remote-tracking branch 'origin/release/3.2' into GH-588-handshake-main 2023-02-02 17:12:00 -06:00
Kevin Heifner 8feca18ccc Merge pull request #681 from AntelopeIO/GH-588-handshake-3.2
[3.1 -> 3.2] net_plugin improve block latency calculation
2023-02-02 17:11:19 -06:00
Kevin Heifner b1f187c890 Merge remote-tracking branch 'origin/release/3.1' into GH-588-handshake-3.2 2023-02-02 14:47:45 -06:00
Peter Oschwald b35c3d6fba Add ability to configure log level for cluster via cli arg. 2023-02-02 13:35:14 -06:00
greg7mdp 88cbbb5b71 Update appnbase to tip 2023-02-02 11:05:20 -05:00
greg7mdp 2914633fc3 Update appbase to tip. 2023-02-02 11:01:31 -05:00
greg7mdp febc1a1629 update appbase to tip 2023-02-01 16:03:25 -05:00
greg7mdp 2b6775334d Merge branch 'main' of github.com:AntelopeIO/leap into greg7mdp/gh-585 2023-02-01 13:39:44 -05:00
766C6164 d865960c07 Work in progress - requests scaffold, db 2023-02-01 13:39:00 -05:00
greg7mdp 165a5a575e Use scoped_app consistently in main programs. 2023-02-01 13:37:35 -05:00
Peter Oschwald f52beda0a2 Fix compiler warnings in tests. 2023-02-01 10:41:10 -06:00
Peter Oschwald caa8f41586 Refactoring. Moving functions into classes. 2023-02-01 10:35:45 -06:00
Peter Oschwald cfe83467aa Add way to specify auth acct when using json trx description.
Add support for actionAuthAcct and actionAuthPrivKey for more explicit control when specifying transaction directly.

Add actionAuthAcct to json transaction description

Add trx generator id to allow differentiation of trx generators for use in create accounts.

Factored out set_transaction_headers into own helper function.
2023-02-01 09:45:50 -06:00
Jonathan Giszczak 01bb0d406b Support more than 26 producers in launcher. 2023-01-31 19:15:15 -06:00
Jonathan Giszczak 04815fa968 Write start script when node isn't started by launcher. 2023-01-31 16:58:46 -06:00
greg7mdp 7f0b67f6b8 call register_plugin() as a static member, so that static variable initializers don't create an application instance before the program is started. 2023-01-31 16:53:43 -05:00
Chris Gundlach a6565005ff updates to prometheus_plugin to support message based updates 2023-01-31 13:47:15 -06:00
Kevin Heifner 24b533397a GH-592 Move files back as they are used by block log splitting as well 2023-01-31 13:35:25 -06:00
greg7mdp 8e7b6ec66b update appbase to tip 2023-01-31 13:51:41 -05:00
Peter Oschwald a4d6ecc40b Rename for generalization, not strictly for transfers. 2023-01-31 04:38:27 -06:00
Jonathan Giszczak 585dca0157 Temporarily remove some error suppression not yet ready for prime time. 2023-01-30 18:26:42 -06:00
Jonathan Giszczak 61969f6701 Honor unstarted nodes flag and validate total vs prod/unstarted.
Fix up --down implementation.
2023-01-30 18:06:21 -06:00
Jonathan Giszczak 5c5a37395e Tolerate empty specific extra nodeos args used by some tests as docs 2023-01-30 16:49:23 -06:00
Kevin Heifner c137951259 Merge branch 'GH-592-ship-crash-split-ship-log' of https://github.com/AntelopeIO/leap into GH-592-ship-crash-split-ship-log 2023-01-30 13:40:40 -06:00
Kevin Heifner ed420c2198 GH-592 Minor cleanup from peer review comments 2023-01-30 13:40:23 -06:00
Kevin Heifner 0e5cd164ed Merge branch 'main' into GH-592-ship-crash-split-ship-log 2023-01-30 11:47:32 -06:00
Peter Oschwald 96930a1616 Rename in prep to support additional trx desc files. 2023-01-30 11:29:56 -06:00
766C6164 e17e772e0c Updates to schema 2023-01-30 11:56:56 -05:00
Kevin Heifner 337b81122c GH-592 Add missing return 2023-01-30 10:51:33 -06:00
Kevin Heifner dc542bd122 GH-592 Increase to have more than one connection to ship 2023-01-30 10:51:16 -06:00
Kevin Heifner 6b708e375c GH-669 Do not reset socket_stream as it can still be in use. 2023-01-27 17:18:48 -06:00
ClaytonCalabrese ac1c5db6cc Merge pull request #647 from AntelopeIO/performance_harness_csv
[PH] Performance Harness csv improvements
2023-01-27 16:18:26 -06:00
Kevin Heifner 33656e3ee6 GH-592 Remove unneeded use of this-> 2023-01-27 15:32:51 -06:00
Kevin Heifner f149ce6af0 GH-592 Remove explicit close and just let websocket destructor take care of it 2023-01-27 15:19:10 -06:00
Kevin Heifner 34b8e11f2e GH-592 Fix shutdown issue with session_test 2023-01-27 15:18:25 -06:00
Kevin Heifner a4c2960847 Merge pull request #590 from AntelopeIO/GH-568-block-propagate
Propagate block after header validation
2023-01-27 15:15:22 -06:00
Kevin Heifner 491665441a Merge branch 'main' into GH-568-block-propagate 2023-01-27 14:35:44 -06:00
Clayton Calabrese de7c7b0e48 change csv variable names to something more proper 2023-01-27 14:35:05 -06:00
Kevin Heifner b25add6e51 Merge pull request #671 from AntelopeIO/GH-631-fork-test-main
[3.2 -> main] Test fix: nodeos_forked_chain_lr_test
2023-01-27 14:34:45 -06:00
Kevin Heifner 5f451d486d Merge remote-tracking branch 'origin/release/3.2' into GH-631-fork-test-main 2023-01-27 14:04:41 -06:00
Kevin Heifner 6842647a33 Merge pull request #670 from AntelopeIO/GH-631-fork-test-3.2
[3.1 -> 3.2] Test fix: nodeos_forked_chain_lr_test
2023-01-27 14:04:21 -06:00
Kevin Heifner 99116edf47 Merge remote-tracking branch 'origin/release/3.1' into GH-631-fork-test-3.2 2023-01-27 13:30:48 -06:00
Kevin Heifner f0ff749c20 GH-568 Revert passing block_num to peer_block_state_index methods as it can just be calculated quickly from id 2023-01-27 13:28:16 -06:00
Kevin Heifner 30637af65a GH-568 Use block_header::num_from_id instead of storing block_num 2023-01-27 12:53:14 -06:00
Kevin Heifner 406b4eb6ab Merge remote-tracking branch 'origin/main' into GH-568-block-propagate 2023-01-27 12:47:29 -06:00
Kevin Heifner 8c37219708 GH-568 Combined by_block_num index into by_connection_id so only one index has to be maintained. 2023-01-27 12:43:36 -06:00
Kevin Heifner 1a24e95fae GH-568 Remove redundant bcast_block call for accepted_block signal. 2023-01-27 12:21:07 -06:00
Jonathan Giszczak 2540fc16c8 Don't launch nodes when --output is specified.
Write and read topology file in nodeosLogPath.
Convert nodeosLogPath to pathlib.
Implement support for --down argument.
Add minor additional debugging output to Node.
2023-01-26 17:34:25 -06:00
Gregory Popovitch df6ffbb016 Merge pull request #665 from AntelopeIO/greg7mdp/gh-654_net_plugin_accept
net_plugin: add delay when `accept()` fails with `too_many_files_open`
2023-01-26 16:59:06 -05:00
greg7mdp 107ef62ab4 Merge branch 'main' of github.com:AntelopeIO/leap into greg7mdp/gh-470_ship_accept 2023-01-26 16:37:55 -05:00
greg7mdp f876c96919 Implement Matt's suggestion to forego the unique_ptr for the timer. 2023-01-26 16:30:29 -05:00
Clayton Calabrese 5add73c439 change from .txt to .csv 2023-01-26 15:21:21 -06:00
greg7mdp f28136f60c Merge branch 'main' of github.com:AntelopeIO/leap into greg7mdp/gh-654_net_plugin_accept 2023-01-26 15:40:47 -05:00
greg7mdp 36d0aa8c7c Update with code review comments and fix uninitialized variable 2023-01-26 15:34:14 -05:00
Kevin Heifner 23089d6545 GH-592 Move log_* files only used by state_history into state_history library. 2023-01-26 13:10:49 -06:00
Clayton Calabrese 5f1770b58e rename csv 2023-01-26 11:13:46 -06:00
Kevin Heifner 0271a56e9a Merge remote-tracking branch 'origin/main' into GH-592-ship-crash-split-ship-log 2023-01-26 10:01:47 -06:00
Kevin Heifner 6fda64452c GH-592 Fix spelling 2023-01-26 10:01:32 -06:00
Kevin Heifner cab88df475 Merge pull request #612 from AntelopeIO/GH-54-contracts
Add test contract code for existing abi/wasm and clean up libraries/testing & unittests dependencies
2023-01-26 07:43:05 -06:00
Kevin Heifner bcd4a8c4dd GH-586 Fix merge issue 2023-01-25 17:53:20 -06:00
greg7mdp fb139e70a6 Merge branch 'main' of github.com:AntelopeIO/leap into greg7mdp/gh-470_ship_accept 2023-01-25 18:43:49 -05:00
greg7mdp 0e86228c0d Merge branch 'main' of github.com:AntelopeIO/leap into greg7mdp/gh-654_net_plugin_accept 2023-01-25 18:41:47 -05:00
Kevin Heifner c738ea7d86 Empty commit to kick of ci/cd 2023-01-25 17:38:00 -06:00
Kevin Heifner 93173ce827 Merge remote-tracking branch 'origin/main' into GH-592-ship-crash-split-ship-log 2023-01-25 16:30:07 -06:00
Kevin Heifner ec4a9af3fb Merge remote-tracking branch 'origin/main' into GH-568-block-propagate 2023-01-25 16:19:09 -06:00
Kevin Heifner e55669c42d Merge pull request #632 from AntelopeIO/named-tp-except
Add handling of exceptions to named_thread_pool
2023-01-25 15:58:14 -06:00
766C6164 e54032ab72 Added snapshot status to get_snapshots_requests 2023-01-25 14:30:16 -05:00
Kevin Heifner 1d2b98363c Add reserve() 2023-01-25 09:57:44 -06:00
greg7mdp 2a904da020 Update appbase to tip. 2023-01-25 10:33:26 -05:00
greg7mdp c5ed01ed37 Merge branch 'main' of github.com:AntelopeIO/leap into greg7mdp/gh-654_net_plugin_accept 2023-01-25 09:34:55 -05:00
greg7mdp c532a4018f Create deadline timer when thread pool is created (thanks Matt!) 2023-01-25 09:30:41 -05:00
greg7mdp 09c4ebb42d Update wlog() call to correct fc_wlog() which specifies the logger to be used. 2023-01-25 09:16:27 -05:00
Kevin Heifner 76374f884f Changed named_thread_pool to always delay start() 2023-01-25 07:53:41 -06:00
Kevin Heifner cca83e0c10 Merge remote-tracking branch 'origin/main' into named-tp-except 2023-01-25 06:59:05 -06:00
Matt Witherspoon 7ea9f61a07 Merge pull request #664 from AntelopeIO/gcc13
add missing include statements for gcc13 (libstdc++13)
2023-01-24 19:00:29 -05:00
Matt Witherspoon 2b69bd28cb bump abieos submodule to HEAD w/ gcc13 fixes applied 2023-01-24 18:44:00 -05:00
Clayton Calabrese 8f32316705 add header to csv and filter out ungenerated transactions 2023-01-24 17:25:56 -06:00
greg7mdp 3f193900d8 Update another elog instance to fc_elog 2023-01-24 17:08:38 -05:00
greg7mdp 98dea84c0a Update a couple log statements 2023-01-24 16:44:57 -05:00
greg7mdp 5ad310d5fb Implement suggestions from Kevin's code review 2023-01-24 14:42:47 -05:00
greg7mdp 9b40540a5d Add a couple comments 2023-01-24 10:13:59 -05:00
greg7mdp 040d0e8b04 Add timer when async_accept() gets a too_many_files_open error 2023-01-24 10:07:42 -05:00
greg7mdp 6459fbb9f9 more straightforward management of the socket in async_accept 2023-01-23 15:43:41 -05:00
greg7mdp e094184801 Cleanup do_accept code, add timer on "too many files", keep accepting on error 2023-01-23 14:53:25 -05:00
Chris Gundlach b950953ae6 fixes based on peer review 2023-01-23 10:08:23 -06:00
Matt Witherspoon f5f92a69d0 fixes for gcc13 2023-01-22 19:13:37 -05:00
Kevin Heifner 009b4f6c73 Rethrow exception if no on_except provided. 2023-01-21 09:04:41 -06:00
Kevin Heifner aa46c518c4 Cleanup from peer review comments 2023-01-21 08:50:15 -06:00
Kevin Heifner 3be3fccaf6 Rename async_thread_pool to post_async_task to better describe its function 2023-01-21 08:44:51 -06:00
greg7mdp 9cd3fc4271 Update appbase tip 2023-01-20 14:41:32 -05:00
greg7mdp f0196780b1 Update appbase to tip 2023-01-20 14:13:03 -05:00
Kevin Heifner 3ed8ac7eee Merge branch 'main' into GH-592-ship-crash-split-ship-log 2023-01-20 13:03:23 -06:00
greg7mdp 2ee7407eb5 Update appbase to tip 2023-01-20 13:07:32 -05:00
greg7mdp 7143ea4269 Update appbase to tip 2023-01-20 12:06:37 -05:00
greg7mdp b815f304aa update appbase to tip 2023-01-20 11:55:51 -05:00
Kevin Heifner 20547b9ec0 Merge branch 'main' into named-tp-except 2023-01-20 08:07:06 -06:00
Jonathan Giszczak 8e95e7c2c9 Add support for custom topologies and fix shell argument handling.
Remove broken nodes placeholder from Cluster.
2023-01-20 01:10:25 -06:00
Lin Huang fe8dc3fb3d Merge pull request #658 from AntelopeIO/merge_3_2_1_version_bump_to_main
[3.2 -> main] Merge 3.2.1 version bump to main
2023-01-19 20:25:43 -05:00
Lin Huang 40e9c74865 restore 4.0.0 after merging 3.2.1 version bump 2023-01-19 18:46:16 -05:00
Lin Huang 3f9cb99e06 Merge pull request #657 from AntelopeIO/bump_leap_to_3_2_1
[3.2] bump Leap version to v3.2.1
2023-01-19 18:03:48 -05:00
Lin Huang 5753eb04e7 bump Leap version to 3.2.1 2023-01-19 17:16:36 -05:00
Lin Huang 84dfe08940 Merge pull request #655 from AntelopeIO/merge_3_1_4_version_bump_to_main
[3.2->main] Merge 3.1.4 version bump to main
2023-01-19 15:16:59 -05:00
Peter Oschwald 031f5959bb Merge branch 'main' into feature_performance_harness_stage_2 2023-01-19 12:07:12 -06:00
Lin Huang 9826436079 Merge remote-tracking branch 'origin/release/3.2' into merge_3_1_4_version_bump_to_main 2023-01-19 11:46:00 -05:00
Lin Huang ee37bb1d14 Merge pull request #653 from AntelopeIO/merge_3_1_4_version_bump
[3.1->3.2] Merge release 3.1.4 version bump
2023-01-19 11:43:10 -05:00
greg7mdp acb1bdb79e update appbase to tip 2023-01-19 11:06:11 -05:00
greg7mdp 2aad4aecd8 update appbase to tip 2023-01-19 10:56:23 -05:00
Lin Huang a8f94ee5d8 restore 3.2.0 version after merging 3.1.4 version bump 2023-01-19 10:28:27 -05:00
Kevin Heifner fe5e1f77c7 Merge branch 'main' into GH-592-ship-crash-split-ship-log 2023-01-18 18:36:50 -06:00
Peter Oschwald 8f7fefb8ff Merge pull request #639 from AntelopeIO/fix-nodeos-snapshot-diff-test
Working to fix nodeos_snapshot_diff_test by sync on trx gen startup
2023-01-18 17:56:58 -06:00
greg7mdp 62c426081f Update appbase to latest commit 2023-01-18 18:41:17 -05:00
Kevin Heifner 21bdaed5f2 GH-592 truncate/prune only called from other public methods that already have a lock 2023-01-18 16:54:24 -06:00
Kevin Heifner 9aa3ffc00a GH-592 Fix bad merge issue which was causing core dump 2023-01-18 16:01:12 -06:00
greg7mdp 922d4486fa Update to latest commit in appbase branch 2023-01-18 16:40:03 -05:00
greg7mdp 112702a870 fix test_trx_retry_db test so that it initializes appbase correctly. 2023-01-18 16:33:59 -05:00
Kevin Heifner f43f0408af Merge remote-tracking branch 'origin/main' into GH-568-block-propagate 2023-01-18 14:46:06 -06:00
Kevin Heifner 51c11175e5 Merge pull request #649 from AntelopeIO/GH-525-block-propagation-main-merge
[3.2 -> main] Interrupt speculative start_block when a block is received
2023-01-18 14:38:13 -06:00
Kevin Heifner 5c1a4f42b3 Merge remote-tracking branch 'origin/release/3.2' into GH-525-block-propagation-main-merge 2023-01-18 14:09:40 -06:00
Kevin Heifner 4107ba4be0 Merge pull request #648 from AntelopeIO/GH-525-block-propagation-3.2-merge
[3.1 -> 3.2] Interrupt speculative start_block when a block is received
2023-01-18 13:59:54 -06:00
Kevin Heifner bce4029e41 Merge remote-tracking branch 'origin/release/3.1' into GH-525-block-propagation-3.2-merge 2023-01-18 12:34:27 -06:00
Clayton Calabrese 9af6e9023d seperate out new csv file containing data and rework as necessary 2023-01-18 12:29:20 -06:00
Kevin Heifner b69a03f3dc GH-592 WIP Fixing threading issues with state_history_log and sessions 2023-01-18 12:11:42 -06:00
Chris Gundlach 8f62c272fb format fix 2023-01-18 09:45:57 -06:00
766C6164 7cb3a08ef3 Updates to swagger spec 2023-01-17 14:03:26 -05:00
Chris Gundlach ed72be42f7 made call to metrics async; using strands/named_thread_pool 2023-01-17 11:17:34 -06:00
Kevin Heifner 1381a0f19e GH-592 Remove unused methods 2023-01-16 12:58:33 -06:00
ClaytonCalabrese 4ca1528956 Merge pull request #633 from AntelopeIO/performance_harness_dropped_blocks_tracking
[PH] Log Dropped Blocks, Dropped Transactions, and Production Windows
2023-01-16 11:03:19 -06:00
Peter Oschwald 81c53afc4a GH-637 Initialize trxGenLauncher to None. 2023-01-16 10:56:19 -06:00
Peter Oschwald 9fea12ef88 GH-637 Reintroduce the generic sleep for trx generation.
Prod node has already been killed at this point so can't synchronize on trxs making it into blocks since no prod nodes left.
2023-01-16 10:42:35 -06:00
Peter Oschwald 2bcab03611 GH-637 Make sure trx generators are cleaned up now that they are internal to Cluster. 2023-01-16 10:41:20 -06:00
Peter Oschwald de3a1c8392 Updates addressing peer review comments. 2023-01-16 10:15:29 -06:00
Peter Oschwald e6b523220b Merge branch 'main' into fix-nodeos-snapshot-diff-test 2023-01-16 10:04:58 -06:00
Peter Oschwald 889cc01795 GH-637 Working to fix nodeos_snapshot_diff_test by sync on trx gen startup.
Refactor - move launchTrxGenerators from Node to Cluster where it fits better.

Add waitForTrxGeneratorsSpinup function which allows tests to wait for initial trx from each generator to appear in a block.  This allows the tests to sync on the trx generators spinning up and knowing that trxs are flowing before proceeding with tests.

Update tests that used launchTrxGenerators for the refactor and to use the waitForTrxGeneratorsSpinup function.

trx_generator now logs first transaction it is preparing to send right before sending it to allow synchronization by tests without influencing its generation rate since it occurs prior only on initil trx and prior to initial trx send.
2023-01-16 10:03:09 -06:00
Kevin Heifner ba0f16834c Merge remote-tracking branch 'origin/main' into GH-592-ship-crash-split-ship-log 2023-01-16 08:27:49 -06:00
greg7mdp 6c95e51b5a update submodules to same version as main 2023-01-13 17:51:55 -05:00
Gregory Popovitch e1320e7931 Merge branch 'main' into greg7mdp/gh-585 2023-01-13 17:26:29 -05:00
greg7mdp 0db18fc295 Update submodules 2023-01-13 17:25:03 -05:00
Clayton Calabrese da7dff2c39 refactor calcProductionWindows 2023-01-13 14:54:51 -06:00
Kevin Heifner 4c60db9b69 Merge remote-tracking branch 'origin/main' into named-tp-except 2023-01-13 14:53:12 -06:00
Kevin Heifner 1626490985 Merge pull request #638 from AntelopeIO/GH-592-ship-crash-main
[3.2 -> main] Backport SHiP fixes from eosio/eos release/2.2.x
2023-01-13 13:59:34 -06:00
Clayton Calabrese 031f5fe969 merge from feature branch and resolve conflicts 2023-01-13 13:43:35 -06:00
Kevin Heifner 253d648505 Merge remote-tracking branch 'origin/release/3.2' into GH-592-ship-crash-main 2023-01-13 12:37:53 -06:00
Kevin Heifner d7dd7156ab Merge pull request #624 from AntelopeIO/GH-592-ship-crash-3.2
[3.2] Backport SHiP fixes from eosio/eos release/2.2.x
2023-01-13 12:27:54 -06:00
Clayton Calabrese f72b6fd047 redo generated report using single producer 2023-01-13 12:04:05 -06:00
Clayton Calabrese a70daf9c87 remove sorted keys and regenerate report for readme to reduce diff 2023-01-13 11:59:47 -06:00
Peter Oschwald 0743686658 Another fixup from Merge branch 'main' into feature_performance_harness_stage_2 2023-01-13 10:57:07 -06:00
Peter Oschwald 1334957ae5 Fixup from Merge branch 'main' into feature_performance_harness_stage_2 2023-01-13 10:13:55 -06:00
Kevin Heifner 20d7b80d40 GH-54 Update deep mind log for new bios contract 2023-01-13 10:03:47 -06:00
Kevin Heifner 759a0690b5 GH-54 Add a print to activate so this bios contract is different then the bios contract used in eos-system-contracts avoiding a duplicate trx error on set_code of its bios contract. 2023-01-13 09:41:14 -06:00
Peter Oschwald be375bf42e Merge branch 'main' into feature_performance_harness_stage_2 2023-01-13 09:40:33 -06:00
greg7mdp 9d2235b672 restore file deleted by mistake 2023-01-12 18:18:21 -05:00
greg7mdp fb12fe627f Update appbase/plugins to support multiple instances/exe 2023-01-12 18:05:16 -05:00
Clayton Calabrese bda0d82103 count first and last window as complete windows if containing 12 blocks, otherwise ignore them. 2023-01-12 17:04:07 -06:00
Clayton Calabrese 18d654f3bc commit print statement that was unsaved in past commit 2023-01-12 16:53:29 -06:00
Clayton Calabrese 3775f5050a undo unintentional default change. Inform users when adjusting lbto and lbcep from defaults. Add DroppedTransactions to report 2023-01-12 16:49:38 -06:00
Kevin Heifner 1e3b4a3631 GH-54 Update eosio.token contract location 2023-01-12 16:04:05 -06:00
Kevin Heifner dd66bfc075 GH-54 Now that txn_test_gen_plugin has been removed eosio.token can move back into ./unittests/contracts and ./libraries/testing/CMakeLists.txt can go back to eosio_testing_contracts being INTERFACE only. 2023-01-12 16:00:33 -06:00
Kevin Heifner b3a6e00148 Merge remote-tracking branch 'origin/main' into GH-54-contracts 2023-01-12 15:38:08 -06:00
Kevin Heifner baac068f92 GH-592 Remove unused code 2023-01-12 15:37:18 -06:00
Kevin Heifner f164461d6c GH-592 Start thread after listen 2023-01-12 15:36:59 -06:00
Peter Oschwald 9461180b53 Merge pull request #634 from AntelopeIO/rem-trx-test-gen-plugin
Remove trx_test_gen_plugin
2023-01-12 15:35:48 -06:00
Peter Oschwald 18428070e9 Create launchTrxGenerators helper in Node.py.
Factor out common trx generator launch setup and launch capabilities into Node.py for tests to utilize.

Move launch_transaction_generators.py into the TestHarness module.  This made sense and also helped alleviate circular dependencies between modules.
2023-01-12 13:55:47 -06:00
Peter Oschwald 02163a4519 Merge pull request #626 from AntelopeIO/ph-trx-gen-json
[PH] Support configuring transaction type to send in trx generator through JSON transaction description
2023-01-12 11:59:28 -06:00
Peter Oschwald 08746f0e55 Merge branch 'feature_performance_harness_stage_2' into ph-trx-gen-json 2023-01-12 11:29:39 -06:00
ClaytonCalabrese 92870e10d4 Merge pull request #598 from AntelopeIO/performance_harness_specifiy_contract
[PH] Add Ability to Specify Contract for Performance Tests
2023-01-12 10:59:26 -06:00
Peter Oschwald 6253abcc49 Peer review comment. Resolve IPv4 addresses for p2p plugin. 2023-01-12 10:54:10 -06:00
Chris Gundlach 2651eaf7d1 first cut at new interface between prometheus and other plugins 2023-01-12 10:12:30 -06:00
Peter Oschwald d86782461b Replace cout in favor of xlog statements. 2023-01-12 08:45:27 -06:00
Peter Oschwald 777d9d30bf Remove UserTrxData in favor of loading user data from json file.
Replace prev argument --user-trx-data with --user-trx-data-file.

Read user trx data in from file and use that directly in lieu of UserTrxData.

Update tests to exercise this path with sample userTrxData.json file.

Update report construction to support Paths.
2023-01-11 22:55:12 -06:00
Peter Oschwald 03750c994a Refactor common transaction generator code into base class.
Fix trx_expr to be fc::microseconds instead of int64_t
2023-01-11 21:24:17 -06:00
Peter Oschwald e290f59aef Refactor user defined trx data into easily modifiable dataclass UserTrxData.
Update performance_test_basic to support user specified transaction data through the use of the --user-trx-data command argument and the UserTrxData class.  Now supports creation of named accounts for use in user defined transactions.

Cluster supports populating wallet with named accounts.

Renamed command line argument for making use of user provided trx data to --user-trx-data.
2023-01-11 20:37:14 -06:00
Peter Oschwald 48174929b2 Rename for clarity as this is not a string. 2023-01-11 20:04:06 -06:00
Jonathan Giszczak 3fe6780a91 Honor launch = 'none' and delay arguments.
Fix arithmetic error calculating producers per node.
2023-01-11 18:01:50 -06:00
Peter Oschwald 559d82165e Remove txn_test_gen_plugin.
Deprecating txn_test_gen_plugin in favor of txn_generator

Remove Node.py helper functions to the txn_test_gen_plugin.

Remove documentation for plugin.
2023-01-11 16:22:24 -06:00
Peter Oschwald 57e7dd0cb3 Update test to use txn generator. 2023-01-11 16:16:00 -06:00
Gregory Popovitch db563f2e3e Merge pull request #603 from AntelopeIO/greg7mdp/gh-471_accept_too_many_files
Add timer on http listener to avoid fast looping on accept
2023-01-11 16:58:15 -05:00
Peter Oschwald af54717809 Add support for setting peer endpoint and port in trx generator.
Transaction Geneators Launcher adds support for setting peer endpoint and port in trx generator.

Cluster adds p2pBasePort and means to calculate a given node's p2p listen port from node id.

Update tests using trx generator to specify peer endpoint and port to send trxs to.
2023-01-11 15:55:24 -06:00
Jonathan Giszczak 292a0a3826 Python alias no present; use python3 alias. 2023-01-11 15:32:29 -06:00
Kevin Heifner 912cc20f24 Merge branch 'named-tp-except' into GH-592-ship-crash-split-ship-log 2023-01-11 15:21:33 -06:00
Clayton Calabrese c26432e9be more explicit constructor names 2023-01-11 14:21:05 -06:00
Peter Oschwald a50057b2c7 Use multiple trx generators to more closely mirror existing behavior.
Need to increase the allowed connections for the trx generators to work.
2023-01-11 14:20:15 -06:00
Peter Oschwald 165823bb0b Fix usage of multiple trx generators by allowing enough connections. 2023-01-11 14:07:34 -06:00
Clayton Calabrese 26f0b5a111 change production window size to constant 2023-01-11 14:07:02 -06:00
Jonathan Giszczak b0e950a660 Revise NP and LR tests with seccomp=unconfined instead of privileged 2023-01-11 13:41:09 -06:00
Clayton Calabrese 24ce5d97d8 merge and resolve conflicts from feature branch 2023-01-11 13:35:47 -06:00
Peter Oschwald af9deeb161 Replace txn_test_gen_plugin with trx_generator in test.
Make sure txnGenLauncher is initialized before trying to kill in finally block at end of test.
2023-01-11 13:31:36 -06:00
Jonathan Giszczak f84884ccfa Try unconfined seccomp rather than --privileged test execution. 2023-01-11 13:24:21 -06:00
Clayton Calabrese 060be863a3 log production windows, dropped blocks, and dropped transactions in performance harness 2023-01-11 13:19:36 -06:00
Peter Oschwald 6dedf4fbef Replace txn_test_gen_plugin with trx_generator in test.
Create python module for performance_tests to gain access to launch_transaction_generators utilities.

Update trx_generator and trx_provider to allow stopping generation on failure of transaction to send.
2023-01-11 12:51:48 -06:00
jgiszczak 136262250a Merge pull request #629 from AntelopeIO/eosio-launcher-support-nodeos-path-args
Add support for specifying paths to nodeos in launcher.
2023-01-11 12:22:40 -06:00
Peter Oschwald d219741057 Remove txn_test_gen_plugin from test as it was not being used. 2023-01-11 11:47:33 -06:00
Kevin Heifner 5f29e56ce1 GH-592 Add restart() needed to actually be able to restart io_context 2023-01-11 11:14:37 -06:00
Kevin Heifner c955f558ad Added tests and fixed issue with ioc needing restart() 2023-01-11 11:09:21 -06:00
766C6164 6da9928831 Updates to snapshot scheduling api 2023-01-11 12:05:19 -05:00
Kevin Heifner 3b8a5fd940 Add ability to delay start of thread pool 2023-01-11 10:38:05 -06:00
Gregory Popovitch f5f57214c7 Merge branch 'main' into greg7mdp/gh-471_accept_too_many_files 2023-01-11 10:46:46 -05:00
greg7mdp 6248ef49d3 Revert to earlier implementation based on Matt's feedback. 2023-01-11 10:44:31 -05:00
Kevin Heifner f0fad92b38 GH-592 Delay start of thread pool until after listen 2023-01-11 09:41:32 -06:00
Kevin Heifner 25a7621b30 GH-592 Add ability to delay start of thread pool 2023-01-11 09:33:19 -06:00
Kevin Heifner a482ad8ab8 Add handling of exceptions to named_thread_pool 2023-01-10 12:16:42 -06:00
Clayton Calabrese eb8337adb1 use explicit names on constructor for specified contract 2023-01-10 12:06:13 -06:00
Kevin Heifner 77738071f0 Merge pull request #630 from AntelopeIO/revert-ship
Update abieos to head of main
2023-01-10 08:12:56 -06:00
Kevin Heifner 95b711dcfa Update abieos to head of main 2023-01-10 07:28:37 -06:00
Kevin Heifner a88bdf75e2 Merge pull request #584 from AntelopeIO/GH-551-sub-bill-fail
Subjectively bill for failed transactions during block production
2023-01-10 06:59:03 -06:00
Jonathan Giszczak a3fcefbd3f Add support for specifying paths to nodeos in launcher.
Modify nodeos_run_test to exercise nodeos path specification.
2023-01-10 01:49:06 -06:00
Kevin Heifner 9185b4fde9 GH-592 Make sure ws::stream is destroyed on ship thread 2023-01-09 17:38:02 -06:00
Kevin Heifner 6df9b2bbd7 GH-592 Use to_send_block_num 2023-01-09 17:25:08 -06:00
Kevin Heifner 2970357110 GH-592 Debug log for request messages. 2023-01-09 17:17:35 -06:00
Kevin Heifner e75b2dda6a GH-592 Merge GH-624 changes into split-ship-log branch. 2023-01-09 17:08:55 -06:00
Kevin Heifner 2c12c7285c Merge pull request #607 from AntelopeIO/GH-260-code-cache-test
Tests: Add is_code_cached and use in tests to verify
2023-01-09 17:04:09 -06:00
766C6164 9e32a10396 Added snapshot scheduling calls to schema 2023-01-09 16:18:28 -05:00
Peter Oschwald 00a552f1b0 Add action_name, action_data, and abi_file argument support. 2023-01-09 13:21:19 -06:00
Peter Oschwald 58fed8c512 Trx Generator config support for JSON transaction description
Add functionality to transaction generator to take input of abi from file, transaction action type, and action data from a string or file json description and generate transactions matching that description.

Rename handler_account to contract_owner_account for more accurate description.

Add integration test exercising the new functionality that builds transactions from abi, action type and action data.  Makes use of the performance_test_basic with new argument '--exercise-trx-specification', but generates the transfer transactions from the abi, action name and action description in the test.

Added unit test to exercise the new trx_generator constructor.
2023-01-09 13:02:48 -06:00
Lin Huang 654aadedda completely review deep mind logging to make sure no deep mind logging for dry-run or read-only transactions 2023-01-09 13:29:44 -05:00
Areg Hayrapetian d3fe5bd772 Merge pull request #557 from AntelopeIO/use-fallthrough-options
CLI11: Use inherited option vs duplicating it in leap-util (blocklog)
2023-01-09 10:28:11 -08:00
ClaytonCalabrese 95ebafbcf1 Merge pull request #618 from AntelopeIO/performance_harness_log_forks
[PH] Performance harness Log Number of Forks and Forked Blocks
2023-01-09 11:10:17 -06:00
Kevin Heifner b2baf8da70 GH-592 Use named_thread_pool instead of explicit thread, io_context, etc. Old versions of boost do not have an acceptor that takes a strand in constructor. 2023-01-07 16:55:24 -06:00
Kevin Heifner 66bdc383d5 GH-592 Back-port fixes from eosio/eos release/2.2.x and removed use of mutex for protecting session_set. 2023-01-07 15:39:46 -06:00
Christopher Gundlach 596487257d Merge pull request #617 from AntelopeIO/merge_main_into_prometheus
Merge main into prometheus
2023-01-06 11:35:56 -06:00
Lin Huang 5260e4c8a5 use single get_deep_mind_logger method from control and pass trx_is_transient directly to indicate doing deep mind logging or not 2023-01-06 12:18:14 -05:00
Gregory Popovitch c39d95e6a0 Merge branch 'main' into greg7mdp/gh-471_accept_too_many_files 2023-01-06 10:29:55 -05:00
Lin Huang 0148c8d162 Merge branch 'main' into send_read_only_trx 2023-01-05 18:26:11 -05:00
Lin Huang 92f751d0d4 revert the trx_execution_mode changes 2023-01-05 16:48:35 -05:00
Lin Huang 9380de4812 rework to make sure deep-mind loggins is not generated for dry-run and read-only transactions 2023-01-05 15:27:18 -05:00
766C6164 8837b12c01 Added fallthrough option to other subcommands 2023-01-05 14:33:12 -05:00
Clayton Calabrese 22b60a3ae3 add a +1 to how many forked blocks are logged 2023-01-05 12:07:43 -06:00
Clayton Calabrese 15061f94fb merge from feature branch 2023-01-05 12:03:40 -06:00
Clayton Calabrese 186a0b038e revert unintended change made to get logs for testing. 2023-01-05 12:00:38 -06:00
Clayton Calabrese fba333be4d report forks and forked blocks in performance harness 2023-01-05 11:58:00 -06:00
Chris Gundlach 6caa809804 Merge branch 'main' into merge_main_into_prometheus 2023-01-05 10:49:00 -06:00
Kevin Heifner b7e18846c0 Merge pull request #616 from AntelopeIO/GH-605-dup-sync-stop-main
[3.2 -> main] Attempt connection retry for duplicate connections
2023-01-05 10:21:26 -06:00
766C6164 8933c34715 Included additional comments to generic template 2023-01-05 11:04:18 -05:00
Kevin Heifner 3f8bc9ae07 Merge remote-tracking branch 'origin/release/3.2' into GH-605-dup-sync-stop-main 2023-01-05 09:04:09 -06:00
Kevin Heifner cf6297e396 Merge pull request #615 from AntelopeIO/GH-605-dup-sync-stop-3.2-merge
[3.1 -> 3.2] Attempt connection retry for duplicate connections
2023-01-05 09:03:41 -06:00
Kevin Heifner ee93897888 Merge remote-tracking branch 'origin/release/3.1' into GH-605-dup-sync-stop-3.2-merge 2023-01-05 08:23:40 -06:00
Lin Huang e990619600 do not perform key recovery if there are no signatures 2023-01-04 21:57:48 -05:00
Kevin Heifner 4ff794875b GH-260 Fix return type 2023-01-04 19:44:59 -06:00
Lin Huang b646c92db3 improve max-read-only-transaction-time description, fix a comment typo, and do not use _max_read_only_transaction_time_ms as it is not thread-safe when called from net plugin 2023-01-04 19:09:38 -05:00
Jonathan Giszczak bb1943de18 Move --privileged to test runner command, from template.
Manually update index.mjs to match source.
2023-01-04 17:29:04 -06:00
Jonathan Giszczak 7a5d57b434 Run db_modes_test with verbose flag. 2023-01-04 16:58:06 -06:00
Kevin Heifner 4e1d593d1e Merge branch 'main' into GH-54-contracts 2023-01-04 16:10:22 -06:00
Kevin Heifner e83c91d359 GH-54 Copy over abi/wasm compiled with latest Antelope CDT 3.2.0-dev ea6d926c3d2e9fa37dd513b8a946d8283b1aa233 2023-01-04 15:43:43 -06:00
Kevin Heifner a9281f5e9a GH-54 Add contract code for eosio.msig, eosio.system, eosio.wrap. Update contract code for eosio.bios and eosio.token to match as close as possible what matches the existing abi/wasm. 2023-01-04 15:20:48 -06:00
Clayton Calabrese 7ab1586970 merge from feature branch to resolve conflicts 2023-01-04 14:06:56 -06:00
Kevin Heifner 2bf719df38 GH-54 Remove call to set_parameters_packed as many tests assume that its protocol feature has not been activated. 2023-01-04 13:15:35 -06:00
Clayton Calabrese a8ea37a27c remove unnecessary new lines 2023-01-04 12:45:19 -06:00
ClaytonCalabrese 6dd154b4e0 Merge pull request #571 from AntelopeIO/performance_harness_replace_os_path
[PH] Replace usage of os.path with Path and PurePath
2023-01-04 12:35:55 -06:00
Clayton Calabrese 5cc242518e rework custom contract activation in performance harness 2023-01-04 12:32:06 -06:00
Gregory Popovitch a577669df9 Merge branch 'main' into greg7mdp/gh-471_accept_too_many_files 2023-01-04 11:24:29 -05:00
greg7mdp a6052e16b5 Use the single argument ctor as suggested in the review. 2023-01-04 11:22:18 -05:00
Kevin Heifner 1fc40bf7b3 GH-54 eosio.token contract moved to libraries/testing/contracts from unitests/contracts 2023-01-04 09:30:44 -06:00
Kevin Heifner b8fadad454 GH-54 eosio.token contract moved to libraries/testing/contracts from unitests/contracts 2023-01-04 09:11:44 -06:00
Kevin Heifner c3e46863fe GH-54 Remove moved test_chain_plugin test 2023-01-04 07:47:19 -06:00
Kevin Heifner e0c9fafa84 GH-54 Add comment 2023-01-04 07:46:52 -06:00
Kevin Heifner b9e99f0902 GH-54 Split contracts.cpp.in for libraries/testing and unittests. Remove dependency of libraries/testing on unittests. 2023-01-04 07:25:19 -06:00
Matt Witherspoon 61b2f98a6f Merge pull request #614 from AntelopeIO/cleos_spelling_parameters
fix spelling of "parameters" in cleos' `set action permission`
2023-01-03 22:11:20 -05:00
Jonathan Giszczak 20951f1ce0 Manually add --privileged flag to minified javascript. 2023-01-03 19:08:33 -06:00
Matt Witherspoon e2ac52ec0a fix spelling of "parameters" 2023-01-03 20:06:22 -05:00
Kevin Heifner 6e0d8a08fb GH-54 Move snapshot_suites out of libraries/testing as it is not needed for libraries/testing 2023-01-03 17:24:58 -06:00
Kevin Heifner 6c17992d6b GH-54 Remove mostly unused CORE_SYM_STR and just use CORE_SYMBOL 2023-01-03 16:58:51 -06:00
Kevin Heifner 4dc42963ec Revert "GH-54 Remove mostly unused CORE_SYM_STR and just use CORE_SYMBOL_NAME"
This reverts commit bb470faef2.
2023-01-03 16:31:35 -06:00
Kevin Heifner c168977c1b GH-54 Missed a few locations where python tests refer to old eosio.bios contract 2023-01-03 15:46:43 -06:00
Kevin Heifner bb470faef2 GH-54 Remove mostly unused CORE_SYM_STR and just use CORE_SYMBOL_NAME 2023-01-03 15:33:45 -06:00
ClaytonCalabrese 3fd598ba65 Merge pull request #611 from AntelopeIO/ph_merge_main_phase2_1_2
[PH] Ph merge main
2023-01-03 15:25:47 -06:00
Kevin Heifner 1c80bab44e GH-54 Move eosio.bios to libraries/testing and provide ability to build it from source 2023-01-03 11:54:18 -06:00
Clayton Calabrese bd1bd7d573 Merge branch 'main' into ph_merge_main_phase2_1_2 2023-01-03 11:23:11 -06:00
Clayton Calabrese bbfe01eb34 update NodeosPluginArgs to match addition of --state-dir 2023-01-03 11:20:14 -06:00
Kevin Heifner 239c55e155 Merge pull request #609 from AntelopeIO/GH-570-nodeos-v2-support
Fix nodeos v2 performance harness support
2023-01-03 09:44:39 -06:00
greg7mdp 5cce266f9f Implement some suggestions from the code reviews. 2023-01-02 17:15:50 -05:00
Clayton Calabrese dc1575ba6b resolve failures for 2.0 following merge. 2023-01-02 15:27:07 -06:00
Clayton Calabrese 099bbe45fa merge from main 2023-01-02 14:55:19 -06:00
Kevin Heifner 1b04b4f7f5 GH-570 cleos v2 does not have --time-limit option 2023-01-02 10:04:01 -06:00
Lin Huang 5e5a2c60c4 add test for max_read_only_transaction_time deadline exception 2022-12-31 19:45:53 -05:00
Kevin Heifner 1bf42bceba GH-568 Remove unused zipkin support 2022-12-30 15:11:54 -06:00
Kevin Heifner b4db5ce4ab GH-260 Additional uses of is_code_cached 2022-12-30 12:14:16 -06:00
greg7mdp 65766979af Remove outdated comment 2022-12-29 16:13:50 -05:00
Huang-Ming Huang a9cea07eca revert commit for threaded write 2022-12-29 14:21:05 -06:00
greg7mdp 963f4c1aa8 Add timer on http listener to avoid fast looping on accept 2022-12-29 14:44:42 -05:00
Huang-Ming Huang 7b2efb8ee7 remove ff 2022-12-29 11:54:12 -06:00
Huang-Ming Huang 65163a90d4 fix ship threaded write 2022-12-29 11:06:11 -06:00
Kevin Heifner cafceaa6d7 GH-260 Add is_code_cached method to wasm_interface and use in api_tests. 2022-12-28 15:04:53 -06:00
Kevin Heifner 1688568cd4 GH-568 Post block processing to dispatcher strand so that only one thread is doing block header validation at a time. 2022-12-28 12:27:05 -06:00
Lin Huang eacc66da47 simplify and streamline deep-mind logging for dry-run and read-only transactions 2022-12-27 16:23:41 -05:00
Lin Huang 1c667f77be Add transaction execution mode to controller for better managing dry-run and read-only transactions 2022-12-27 16:06:47 -05:00
Huang-Ming Huang 9329fa3a62 fix issue #592 2022-12-26 14:54:16 -06:00
Lin Huang 2e9de779f9 Add configurable max-read-only-transaction-time; add node_configured_max_read_only_transaction_time for tx_cpu_usage_exceeded_reason 2022-12-26 15:02:29 -05:00
Huang-Ming Huang 068ac71968 fix truncate 2022-12-26 11:18:45 -06:00
Clayton Calabrese 1b1a191816 more changes to using specified contracts in performance tests. 2022-12-23 18:13:50 -06:00
Luis Paris 7c534bf3af Merge pull request #597 from AntelopeIO/fix-devrel#60-main
[3.2 -> main] Update nodeos options help usage [docs]
2022-12-23 18:54:27 -05:00
Clayton Calabrese 99dd39dd8f more path to string changes 2022-12-23 17:11:07 -06:00
Clayton Calabrese 4a53c71ed0 replace repeated path calls with concatonated strings using / operator from path 2022-12-23 17:09:18 -06:00
Luis 33adf255f0 update txn_test_gen plugin options :doc 2022-12-23 18:00:52 -05:00
Luis 933b5d7a8f update state history plugin options (main) :doc 2022-12-23 17:56:40 -05:00
Luis b1a08f08f9 update producer plugin options (main) :doc 2022-12-23 17:54:08 -05:00
Luis 445c439964 update http plugin options (main) :doc 2022-12-23 17:46:02 -05:00
Luis 3a9f1577f6 update chain plugin options (main) :doc 2022-12-23 17:42:23 -05:00
Luis 22ff6df3be Merge remote-tracking branch 'origin/release/3.2' into fix-devrel#60-main 2022-12-23 17:35:49 -05:00
Luis Paris 2f01e9eb8b Merge pull request #595 from AntelopeIO/fix-devrel#60-3.2
[3.1 -> 3.2] Update nodeos options help usage [docs]
2022-12-23 17:31:13 -05:00
Luis dc398b5877 Merge remote-tracking branch 'origin/release/3.1' into fix-devrel#60-3.2 2022-12-23 15:31:57 -05:00
Huang-Ming Huang 1d3bc44203 add ship log partition options
# Conflicts:
#	libraries/state_history/include/eosio/state_history/log.hpp
#	plugins/state_history_plugin/include/eosio/state_history_plugin/session.hpp
#	plugins/state_history_plugin/tests/session_test.cpp
2022-12-23 12:58:44 -06:00
Huang-Ming Huang ec3c5ed1dc add ro_stream_for_block overload 2022-12-23 12:58:44 -06:00
Huang-Ming Huang a33f61099a add log catalog files 2022-12-23 12:58:43 -06:00
mikelik 539502a174 Merge pull request #495 from AntelopeIO/mikelik/valgrind_fix
Fix undefined behavior - uninitialized variables revealed by valgrind
2022-12-23 10:16:31 +01:00
766C6164 407d3581a1 Switched to require_subcommand() which is 1 or more 2022-12-22 21:41:19 -05:00
Jonathan Giszczak e10013e9b9 Support nodeos-log_path argument and non-producing nodes. 2022-12-22 17:39:11 -06:00
Lin Huang 290fc7a04b Merge branch 'main' into send_read_only_trx 2022-12-22 17:26:47 -05:00
Kevin Heifner d956b55abe Merge branch 'GH-525-block-propagation-main' into GH-568-block-propagate 2022-12-22 15:07:33 -06:00
Kevin Heifner fa178a9583 Merge remote-tracking branch 'origin/main' into GH-525-block-propagation-main 2022-12-22 15:05:36 -06:00
Kevin Heifner d192253709 GH-568 Do not send handshake to peer when dropping a block do to block received during block production 2022-12-22 15:04:34 -06:00
Eric Passmore 1b8eadea55 Merge pull request #589 from AntelopeIO/ehp/GH-547-producer-api-doc-cleanup
Fixes Producer Plugin Schema Fixes and Better Alignment with OpenAPI spec
2022-12-22 12:59:54 -08:00
Jonathan Giszczak 7beadb0a2c Maybe fix YAML syntax. 2022-12-22 14:53:19 -06:00
Jonathan Giszczak 15300dc01b Maybe fix YAML syntax. 2022-12-22 14:08:23 -06:00
Jonathan Giszczak 0351d913b0 Maybe fix YAML syntax. 2022-12-22 13:52:55 -06:00
Kevin Heifner a24ce77440 Merge remote-tracking branch 'origin/main' into GH-568-block-propagate 2022-12-22 13:03:31 -06:00
Kevin Heifner edbded1a77 Merge pull request #581 from AntelopeIO/GH-330-tx-cpu-errors
Include additional info in tx_cpu_usage_exceeded exceptions
2022-12-22 12:32:18 -06:00
Kevin Heifner 9b0a648e3d GH-551 Minor cleanup 2022-12-22 12:30:00 -06:00
Kevin Heifner ec1089bf5f Merge pull request #594 from AntelopeIO/multi-prod-perf
Fix for mulit-producer run of performance test
2022-12-22 12:04:38 -06:00
Kevin Heifner 27515b74a7 Merge pull request #575 from AntelopeIO/misc-python-test
Small Misc python test improvements
2022-12-22 12:04:15 -06:00
Lin Huang 842fa04bce honor block_deadline, set deadline_exception_code, and split a large if statement 2022-12-22 13:03:22 -05:00
Kevin Heifner e27004e2da GH-330 Minor perf improvements and cleanup 2022-12-22 12:03:19 -06:00
Kevin Heifner 3ad766a99d GH-330 Take by value and move 2022-12-22 12:02:29 -06:00
Huang-Ming Huang afbb418cb5 move session.hpp 2022-12-22 11:45:07 -06:00
Kevin Heifner 19c87a6aac Fix for mulit-producer run of performance test 2022-12-22 11:31:01 -06:00
Huang-Ming Huang d9fd83b82b Merge branch 'huangminghuang/ship-memory' of https://github.com/antelopeio/leap into huangminghuang/ship-memory 2022-12-22 11:16:19 -06:00
Huang-Ming Huang fb4b5d5fab remove unused code 2022-12-22 11:15:53 -06:00
Huang-Ming Huang b90e937734 Merge branch 'main' into huangminghuang/ship-memory 2022-12-22 11:11:25 -06:00
766C6164 f86d1f66aa Bumped cli11 sub 2022-12-22 10:57:40 -05:00
Huang-Ming Huang 08be3db08b Merge pull request #461 from AntelopeIO/huangminghuang/bn256
Replace implementation of alt_bn128 host functions with faster bn256 library
2022-12-22 09:56:39 -06:00
Vlad c1064fdc04 Merge branch 'main' into use-fallthrough-options 2022-12-22 10:45:50 -05:00
Huang-Ming Huang 1a82cbd342 Merge remote-tracking branch 'origin/main' into huangminghuang/bn256 2022-12-22 09:22:37 -06:00
Huang-Ming Huang e370adf3d7 address PR comments 2022-12-22 09:11:02 -06:00
Kevin Heifner 80aa64f56b GH-568 Optimize bcast_block by removing need for conn_mtx. 2022-12-22 08:04:04 -06:00
Lin Huang 372005e8c1 Merge branch 'main' into send_read_only_trx 2022-12-21 21:41:16 -05:00
Kevin Heifner 42a5c96918 GH-568 Handle case of close of connection after recording of peer block id. 2022-12-21 20:02:39 -06:00
Huang-Ming Huang c4490901ba add smaller cases 2022-12-21 19:37:28 -06:00
Jonathan Giszczak 726b56ec71 Maybe fix YAML syntax. 2022-12-21 19:22:59 -06:00
Jonathan Giszczak 8a43b014df Proliferate privileged option to more configurations. 2022-12-21 19:20:07 -06:00
Lin Huang 18f4ce2c75 remove duplicate code from merging, improve deadline calculation for read-only transactions 2022-12-21 19:14:18 -05:00
Jonathan Giszczak e084cce8f8 Maybe fix YAML syntax. 2022-12-21 17:25:43 -06:00
Jonathan Giszczak 827ffe89f3 Maybe fix YAML syntax. 2022-12-21 17:16:45 -06:00
Eric Passmore 18b4aeccc9 updated document meta-tag to version 4.0 2022-12-21 15:09:07 -08:00
Eric Passmore 475200f14c added defaults 2022-12-21 15:02:17 -08:00
Jonathan Giszczak 64f4c4b57e Merge branch 'eosio-launcher-launch-nodeos-unshared' of github.com:AntelopeIO/leap into eosio-launcher-launch-nodeos-unshared 2022-12-21 16:37:33 -06:00
Jonathan Giszczak 272d5f3afc Invoke launcher.py with generic python interpreter name.
Remove commented code.
2022-12-21 16:33:32 -06:00
Vlad c36f68d00b Merge pull request #466 from AntelopeIO/make-cli11-submodule
[4.0] Use leap's cli11 as submodule for leap-util and cleos
2022-12-21 17:22:29 -05:00
jgiszczak 77f8a4a6d2 Merge branch 'eosio-launcher-python-port' into eosio-launcher-launch-nodeos-unshared 2022-12-21 16:09:35 -06:00
Jonathan Giszczak 4de10f5a45 Use launcher.py for tests.
Write bios_boot.sh script from Python launcher for the time being.
Relocate Python libc wrapper into TestHarness from tests.
Use unshare in Cluster instead of launcher.py.
Add --privileged flag to Github test container configuration.
2022-12-21 16:05:27 -06:00
Eric Passmore c1930cc9b6 Merge branch 'release/3.2' into ehp/GH-547-producer-api-doc-cleanup
- add producer.swagger.yaml updates from release/3.2 into branch
2022-12-21 13:57:11 -08:00
Gregory Popovitch 00e3f98124 Merge pull request #563 from AntelopeIO/greg7mdp/GH-433_state-dir_config
Adds support for a 'state-dir' command line option in chain_plugin.
2022-12-21 16:40:56 -05:00
Kevin Heifner 3885747495 GH-568 If after full validation block is unlinkable then mark as not received so it can be processed when valid later. 2022-12-21 15:35:22 -06:00
Lin Huang 97b28b66b4 fix merge error, do not enforce block_cpu_limit or on-chain max_transaction_cpu_usage for read-only transactions 2022-12-21 15:52:03 -05:00
Huang-Ming Huang 78d8c3ca7a add tests for invalid input length 2022-12-21 14:38:44 -06:00
Eric Passmore 5a97068ae4 Merge pull request #587 from AntelopeIO/ehp/GH-547-producer-api-doc-cleanup-3.2
[3.2] Fixes Producer Plugin Schema Fixes and Better Alignment with OpenAPI spec
2022-12-21 12:26:51 -08:00
Vlad e70845c4a0 Merge branch 'main' into make-cli11-submodule 2022-12-21 14:59:08 -05:00
ClaytonCalabrese d2348f31c6 Merge pull request #570 from AntelopeIO/performance_harness_old_nodeos_compatibility
[4.0] [PH] enable compatibility for 2.0 and 2.1 nodeos on performance tests.
2022-12-21 12:33:32 -06:00
Kevin Heifner ffaf94571e GH-568 Broadcast block after validating block header instead of after full validation of the block. 2022-12-21 11:14:46 -06:00
Clayton Calabrese 17ada31c33 remove more unused imports 2022-12-21 11:09:47 -06:00
Clayton Calabrese 54af028748 remove unused import 2022-12-21 11:07:20 -06:00
Clayton Calabrese 339d1c8624 convert log reader tests to use pathlike objects) 2022-12-21 11:06:23 -06:00
Kevin Heifner 9de45ed460 GH-568 Cleanup and optimize peer block tracking 2022-12-21 10:44:57 -06:00
Kevin Heifner f6caf63083 GH-568 Remove unused zipkin calls. 2022-12-21 09:29:25 -06:00
Huang-Ming Huang 914c0cb96c add 4GB test case 2022-12-21 08:52:51 -06:00
Lin Huang 789d077cde fix a merge from main error 2022-12-20 19:26:19 -05:00
greg7mdp 4d754284b1 Use fc::temp_directory to alleviate the need to do manual cleanup 2022-12-20 18:56:56 -05:00
Lin Huang 7adb00bc92 Merge branch 'main' into send_read_only_trx 2022-12-20 18:52:45 -05:00
Huang-Ming Huang e0aa788ce2 fix counter overflow problem 2022-12-20 17:11:29 -06:00
greg7mdp 3142924eff Merge branch 'main' of github.com:AntelopeIO/leap into greg7mdp/GH-433_state-dir_config 2022-12-20 18:09:03 -05:00
greg7mdp 7d2ce5d6b3 Undo whitespace change 2022-12-20 17:59:53 -05:00
greg7mdp c5f407ff07 Undo change to fix warning unrelated to this PR. 2022-12-20 17:57:25 -05:00
Eric Passmore 90c1566a24 text/plain return for paused 2022-12-20 14:24:18 -08:00
Huang-Ming Huang 2b6f6bb74c address PR comments 2022-12-20 15:38:18 -06:00
Kevin Heifner fcad3c3d05 Merge branch 'GH-525-block-propagation-3.2' into GH-525-block-propagation-main 2022-12-20 12:37:35 -06:00
Kevin Heifner 95d562038a Merge branch 'GH-525-block-propagation-3.1' into GH-525-block-propagation-3.2 2022-12-20 12:24:48 -06:00
Clayton Calabrese bf1126db27 fix some problems with pathLike changes 2022-12-20 11:17:16 -06:00
greg7mdp 9c342ac981 Add unit test for state-dir option configuration 2022-12-20 11:58:24 -05:00
Clayton Calabrese acfdfc53a6 convert additional string paths to pathLike objects 2022-12-20 10:56:49 -06:00
Peter Oschwald 39342990c3 Merge branch 'main' into feature_performance_harness_stage_2 2022-12-20 09:52:38 -06:00
Kevin Heifner 351be6630a GH-551 Subjectively bill for failures when producing 2022-12-20 09:46:04 -06:00
Kevin Heifner 2fae41c5b5 GH-551 Remove subjective billing support for speculative blocks since speculative read-mode was removed via GH-414. 2022-12-20 09:45:01 -06:00
Eric Passmore 6521a53bc0 fixed duplicate producer in url 2022-12-20 03:37:59 -08:00
Eric Passmore 4141184a40 added get unapplied transactions 2022-12-19 19:22:49 -08:00
Eric Passmore 434eed6ddf on this feature branch merged release/3.2 with previous release/3.1 changes 2022-12-19 18:52:45 -08:00
766C6164 b86b7f0e2b Removed commented out line 2022-12-19 17:04:49 -05:00
Kevin Heifner df43faf888 GH-330 Report reached account cpu limit 2022-12-19 09:43:41 -06:00
Huang-Ming Huang 4de50072fe Fix input check 2022-12-19 08:58:17 -06:00
Kevin Heifner d3f0ed8f26 Merge remote-tracking branch 'origin/main' into GH-330-tx-cpu-errors 2022-12-19 07:55:00 -06:00
Kevin Heifner 167bcf781c Merge pull request #562 from AntelopeIO/GH-329-subjective-deadline
Include subjective cpu limit in trx deadline
2022-12-19 07:54:37 -06:00
Kevin Heifner 1f4e4680ae Merge remote-tracking branch 'origin/main' into GH-330-tx-cpu-errors 2022-12-17 08:15:00 -06:00
Kevin Heifner 5498f5b3d9 GH-330 Add test for reached speculative executed adjusted trx max time 2022-12-17 08:06:28 -06:00
Kevin Heifner 325a0aa3c1 GH-330 Estimated account limit is always account 2022-12-16 17:15:19 -06:00
Kevin Heifner b824ac123c Merge branch 'GH-329-subjective-deadline' into GH-330-tx-cpu-errors 2022-12-16 16:55:55 -06:00
Kevin Heifner e3f97ea076 GH-330 WIP: Add additional information to tx_cpu_usage_exceeded exception messages 2022-12-16 16:55:40 -06:00
Areg Hayrapetian 22daed5030 Merge pull request #580 from AntelopeIO/greg7mdp/undo_incorrect_submodule_checkin
revert to previous appbase version
2022-12-16 14:37:54 -08:00
greg7mdp f9dcdc4a2e revert to previous appbase version 2022-12-16 17:30:28 -05:00
greg7mdp 195d9762ee revert to main branch of submodule appbase 2022-12-16 15:47:12 -05:00
Huang-Ming Huang ed08c5e8ab use regular mutex for prune mutex 2022-12-16 12:58:38 -06:00
Kevin Heifner 1292b4996a Merge pull request #578 from AntelopeIO/fix-warn
Fix trx_generator warnings
2022-12-16 11:19:43 -06:00
Huang-Ming Huang 2fb428f796 Merge branch 'main' into huangminghuang/ship-memory 2022-12-16 10:53:17 -06:00
Huang-Ming Huang f7c341b74a Suport hole punching with lock 2022-12-16 10:48:15 -06:00
Christopher Gundlach 2fb3e06c60 Merge pull request #537 from AntelopeIO/instrument_producer_plugin
Instrument producer_plugin for Prometheus
2022-12-16 10:07:58 -06:00
Chris Gundlach a1f8820031 added base struct for plugin metrics 2022-12-16 09:56:57 -06:00
Huang-Ming Huang eae61b7d9e address PR comment 2022-12-16 08:51:18 -06:00
Kevin Heifner eb5ae91257 Fix warnings 2022-12-16 08:16:01 -06:00
Lin Huang 525055fb9d bump chainbase version to main which contains final changes for read-only transactions support 2022-12-16 08:52:11 -05:00
Clayton Calabrese 893e4a3018 address futureproof issues by converting nodeosVers from enum to string. Assert that an unsupport nodeos is not being used. Reduce code. 2022-12-15 16:18:19 -06:00
Huang-Ming Huang de376b1106 Merge branch 'main' into huangminghuang/bn256 2022-12-15 15:52:58 -06:00
Huang-Ming Huang 95d99fb643 reduce ship memory usage 2022-12-15 15:51:22 -06:00
Kevin Heifner e497a58902 Better output on errors 2022-12-15 13:43:20 -06:00
Kevin Heifner 0327b13313 Set launched keosd timeout to effectively unlimited 2022-12-15 13:42:57 -06:00
Huang-Ming Huang d496437e83 remove libff based test case 2022-12-15 12:33:55 -06:00
Clayton Calabrese 36855331ed change isNodeosV2 name and from bool to enum. Conver to use postinit handling for functions 2022-12-14 17:43:31 -06:00
Kevin Heifner 6f3ad96c50 GH-525 Only interrupt start_block for validated block_header. 2022-12-14 17:07:13 -06:00
greg7mdp 1e098a34ae update appbase 2022-12-14 17:23:58 -05:00
greg7mdp ff81b77fad commit appbase change revert, and remove outdated referece in modeos/main.cpp 2022-12-14 16:55:48 -05:00
greg7mdp e69011e5cd Restore using default state dir name from config 2022-12-14 16:55:48 -05:00
greg7mdp 4167a56e41 Move state-dir config from appbase to chain_plugin 2022-12-14 16:55:48 -05:00
greg7mdp 952f1ef173 Revert "update submodule appbase"
This reverts commit 4f262f3f83a16f9665135d8a4fcd083727950d78.
2022-12-14 16:55:48 -05:00
greg7mdp fd93d2d242 use state_dir() which can now be configured 2022-12-14 16:55:48 -05:00
Clayton Calabrese c4726da567 address pr comments to make old nodeos code more efficient 2022-12-14 15:16:22 -06:00
Kevin Heifner a1438030a2 GH-525 Use shared_mutex to allow multiple readers 2022-12-14 13:59:40 -06:00
Kevin Heifner b408aa229b GH-525 Move scope_exit of schedule_production_loop since any call should restart block because speculative block may have been interrupted. 2022-12-14 13:30:39 -06:00
Kevin Heifner 99533befa8 GH-525 Remove unused block channel. 2022-12-14 13:29:34 -06:00
Chris Gundlach bd017586b6 added enabled for metrics 2022-12-14 10:43:06 -06:00
Kevin Heifner 74366a2bf7 GH-525 Make forkdb thread-safe 2022-12-14 09:38:56 -06:00
Clayton Calabrese e095f2b154 replace use of os.path with pathlib's Path and PurePath 2022-12-13 17:34:07 -06:00
Clayton Calabrese 8f5095b460 rename oldNodeos to isNodeosv2 to improve clarity 2022-12-13 16:31:32 -06:00
Clayton Calabrese a6ad4d7239 remove unused and unneeded cl option for old nodeos 2022-12-13 16:15:25 -06:00
Clayton Calabrese 53a6902856 enable compatibility for 2_0 and 2_1 nodeos on performance tests. 2022-12-13 16:05:53 -06:00
Lin Huang 79e387ea76 use is_transient in producer_plugin; refine unit tests 2022-12-13 13:45:09 -05:00
Chris Gundlach b7bf037e4c code reformat / added bool for collecting of metrics 2022-12-13 10:49:52 -06:00
Lin Huang 864e31e798 finish changeing is_read_only() to is_transient() for deep-mind logging 2022-12-13 10:34:25 -05:00
Gregory Popovitch c365dc2020 Merge pull request #539 from AntelopeIO/greg7mdp/GH-488_bytes_in_flight
Update management of `in_flight` bytes in http_plugin
2022-12-13 08:59:58 -05:00
greg7mdp 5e51edf9b4 address Lin's code review remarks 2022-12-12 18:01:51 -05:00
Jonathan Giszczak 75994a38c1 Use kernel call directly to bring up namespaced loopback interface 2022-12-12 16:55:00 -06:00
greg7mdp ad4e8360f2 fix whitespace 2022-12-12 17:42:19 -05:00
greg7mdp 2881eab935 Additional changes after talking with Kevin 2022-12-12 17:42:11 -05:00
greg7mdp 870b0a9a5c address some if Kevin's code review remarks 2022-12-12 17:40:43 -05:00
greg7mdp f5611f97e0 Remove overly complicated in_flight struct and manage in_flight_bytes directly and consistently. 2022-12-12 17:40:39 -05:00
greg7mdp bc91564fa2 Address Kevin's remark to avoid copy, and fix a mistaken change 2022-12-12 17:39:07 -05:00
greg7mdp 37ef02a489 consistent management of in_flight bytes, incl. through http::async_write call 2022-12-12 17:38:57 -05:00
Kevin Heifner 16214bbe6c Merge pull request #567 from AntelopeIO/GH-561-test-fail-main
[3.2 -> main] Fix Test: Specify a large time limit for cleos get table
2022-12-12 16:13:39 -06:00
Kevin Heifner 1996d5bdd2 Merge remote-tracking branch 'origin/release/3.2' into GH-561-test-fail-main 2022-12-12 15:38:49 -06:00
Kevin Heifner 3890add68f Merge pull request #566 from AntelopeIO/GH-561-test-fail-3.2
[3.2] Fix Test: Specify a large time limit for cleos get table
2022-12-12 15:38:22 -06:00
Kevin Heifner 308f991812 GH-561 Specify a large time limit for new user configurable time-limit to get table. 2022-12-12 14:44:32 -06:00
Chris Gundlach 525a454414 cleanup in chain an net plugins based on changes in producer plugin 2022-12-12 14:41:23 -06:00
Chris Gundlach 0d5f7ddad8 changed to use const refs and other pr changes 2022-12-12 13:20:47 -06:00
Kevin Heifner 4cdbfdcee6 Merge branch 'GH-525-block-propagation-3.1' into GH-525-block-propagation-3.2 2022-12-12 13:07:08 -06:00
ClaytonCalabrese d444a1a616 Merge pull request #467 from AntelopeIO/test_harness_var_lib_replacement
[TH] Replace hardcoded use of var/lib in tests
2022-12-12 10:58:56 -06:00
Lin Huang bf92e33c5b use make_scoped_exit to protect chainbase from being stuck in read_only_mode 2022-12-12 11:52:10 -05:00
Lin Huang 30e77a1db1 revert the changes for elpased and net_usage for non-read-only transactions; add tests for elpased and net_usage for read-only transactions 2022-12-12 10:33:54 -05:00
Kevin Heifner 304948a461 GH-329 Include subjective cpu limit in trx deadline 2022-12-12 08:14:13 -06:00
Lin Huang 53caa49d80 Do not undo_session for read-only transaction, prevent chainbase read_only_mode from stuck, add more unit tests 2022-12-10 17:24:44 -05:00
Lin Huang 059330e9ac restructure transaction init and finalize; add is_transient() to simplify code, do not allow non-zero delay_sec; do not do validate_expiration and validate_tapo; add back elapsed and net_usage to trace 2022-12-10 16:10:35 -05:00
Lin Huang f5ac3f77bc do not check authorization for read-only transactions; do not allow canceldelay 2022-12-10 14:54:18 -05:00
Lin Huang 110303d87d Refactor cleos main and chain_plugin to remove duplicate code 2022-12-10 14:28:04 -05:00
Kevin Heifner 4c7c07c13e Merge pull request #560 from AntelopeIO/GH-535-trace-api-main
[3.1 -> main] Do not run maintenance task on shutdown
2022-12-10 07:22:04 -06:00
Jonathan Giszczak 39464f00ad Find loopback interface and bring it up in the launch namespace 2022-12-09 19:09:43 -06:00
Kevin Heifner 06022692a4 Merge pull request #556 from AntelopeIO/GH-230-max-response-time
Set keosd max http response time to unlimited
2022-12-09 12:55:23 -06:00
Peter Oschwald f2afae6626 Merge pull request #350 from AntelopeIO/feature_performance_harness
[PH -> main] Performance Harness MVP [PH]
2022-12-09 11:36:31 -06:00
Kevin Heifner 6eb815d24c Merge remote-tracking branch 'origin/release/3.2' into GH-535-trace-api-main 2022-12-09 09:36:11 -06:00
Kevin Heifner 45e0596d36 Merge pull request #559 from AntelopeIO/GH-535-trace-api-3.2
[3.1 -> 3.2] Do not run maintenance task on shutdown
2022-12-09 09:34:25 -06:00
Kevin Heifner 348a4f4fce GH-559 Fix merge issue 2022-12-09 06:40:54 -06:00
Kevin Heifner 2c751798fa Merge remote-tracking branch 'origin/release/3.1' into GH-535-trace-api-3.2 2022-12-09 06:19:45 -06:00
Kevin Heifner e8d9e27790 Merge pull request #540 from AntelopeIO/http-shutdown
Handle shutdown of http_plugin lifetime
2022-12-09 06:17:53 -06:00
Lin Huang 367123bdea restructure unit tests so they are modularized 2022-12-08 20:19:35 -05:00
Lin Huang 598a2c8086 Merge branch 'main' into send_read_only_trx 2022-12-08 19:13:21 -05:00
Lin Huang 817f9f1ccf Fix a compile error on Ubuntu 22, do not use designated initializers on non-aggregate types 2022-12-08 17:17:19 -05:00
Clayton Calabrese 19ff2d0f89 Remove hardcoded test names in favor of __file__. Remove .py from path. 2022-12-08 14:58:22 -06:00
Lin Huang 4091091b2e check in missing read_only_trx_tests.cpp 2022-12-08 15:50:54 -05:00
Lin Huang 08e7e1c103 check in missing read_only_trx_test.py 2022-12-08 15:44:53 -05:00
Lin Huang 4e5a2cc197 implement read-only transaction 2022-12-08 15:05:20 -05:00
766C6164 6cee4e2bf6 Use inherited option vs duplicating it 2022-12-08 14:02:02 -05:00
Kevin Heifner b063ddcfc9 GH-230 Use very large deadline for keosd http response time 2022-12-08 10:02:27 -06:00
Kevin Heifner 2b11608f34 GH-230 cleanup exception handling 2022-12-08 10:01:56 -06:00
Peter Oschwald 54b1c4f8af Merge pull request #546 from AntelopeIO/ph-nodeos-defaults
[PH] Provide *PluginArgs dataclasses to capture and validate nodeos config options
2022-12-07 15:53:21 -06:00
jgiszczak 45c6376270 Fix typos and formatting. 2022-12-07 15:11:11 -06:00
Peter Oschwald 2e4495e651 Add suggestion to regen classes if test fails due to updated nodeos config options. 2022-12-07 14:58:44 -06:00
Peter Oschwald 792a0f8559 Add purpose and limitations statement to generation script.
Also add note to each generated class calling out that it was generated.
2022-12-07 14:50:31 -06:00
Peter Oschwald 52b7903d92 Remove redundant paths in CMake files. 2022-12-07 14:17:54 -06:00
Huang-Ming Huang 098e53528c fix bn256 installation 2022-12-07 12:38:11 -06:00
Peter Oschwald cc6879c467 Fix module name. 2022-12-07 12:11:16 -06:00
Peter Oschwald bea0ec0195 Fix imports. 2022-12-07 11:53:23 -06:00
Peter Oschwald cdb1342fc8 Create NodeosPluginArgs python package 2022-12-07 11:19:44 -06:00
Peter Oschwald 7703c6ef08 Remove cruft. 2022-12-07 08:49:27 -06:00
Peter Oschwald d1d717d8b0 Remove threads setter function and use setattr instead. 2022-12-07 08:46:58 -06:00
Peter Oschwald 0cd997ff6e Provide BasePluginArgs base class.
BasePluginArgs provides generic implementations of __str__ and supportedNodeosArgs functions for use in each *PluginArgs classes.

Update generation script to no longer generate base class functions, but to inherit from base class.
2022-12-07 08:45:28 -06:00
Peter Oschwald d23ae4cde9 Merge branch 'feature_performance_harness' into feature_performance_harness_stage_2 2022-12-06 19:57:07 -06:00
Peter Oschwald be7640ee47 Make CI/CD performance_test_basic run less perfomance and more unit test. 2022-12-06 19:50:54 -06:00
Peter Oschwald 94cc5a96cd Merge branch 'main' into feature_performance_harness 2022-12-06 19:49:08 -06:00
Peter Oschwald 7dc7133cd0 Fixup generator for proper quote detection and selection. 2022-12-06 19:48:07 -06:00
Peter Oschwald 6936b4144f Fixup invalid syntax error. 2022-12-06 19:45:12 -06:00
Peter Oschwald 8655e4dca1 Script that generates *PluginArgs.py dataclass files from nodeos --help output. 2022-12-06 17:52:28 -06:00
Peter Oschwald 23aea602b1 Fixup some of the config options. 2022-12-06 17:50:58 -06:00
Clayton Calabrese 44d9bb75c0 fix nodeos_run_remote_test failing on nodeos_run_test log check step 2022-12-06 16:40:24 -06:00
Peter Oschwald cf4097217f Provide *PluginArgs dataclasses to capture and validate nodeos config options.
Each *PluginArgs dataclass captures the command line argument and default for each option as specificed in nodeos.

New test validate_nodeos_plugin_args uses nodeos's --help command to parse out each plugin's available options and defaults to validate current status vs. the *PluginArgs classes.  Any addition, removal, update will cause a test failure with note of what has changed.  This will allow easy maintenance going forward.
2022-12-06 16:19:10 -06:00
Huang-Ming Huang 2bda949c35 add split-blocks and merge blocks option to leap-util 2022-12-06 11:45:25 -06:00
Kevin Heifner ae1f75109c Handle shutdown of http_plugin lifetime 2022-12-06 08:24:02 -06:00
Christopher Gundlach b745639b0a Merge pull request #468 from AntelopeIO/http_plugin_text_plain
Add text/plain content type to http_plugin
2022-12-05 15:38:46 -06:00
Kevin Heifner 03235ed3d2 Merge pull request #536 from AntelopeIO/GH-430-fork-test-main
[3.2 -> main] Test nodeos_forked_chain_test: Fix race on kill of bridge node
2022-12-05 13:16:47 -06:00
Jonathan Giszczak b805a8802c Launch nodeos instances per configuration, unsharing the network first. 2022-12-05 10:40:04 -06:00
Chris Gundlach de6fe8c595 added base metrics for producer_plugin 2022-12-05 10:31:58 -06:00
Kevin Heifner 48ae96a972 Merge remote-tracking branch 'origin/release/3.2' into GH-430-fork-test-main 2022-12-05 10:23:18 -06:00
Kevin Heifner c15f84507d Merge pull request #534 from AntelopeIO/GH-430-fork-test-3.2
[3.1 -> 3.2] Test nodeos_forked_chain_test: Fix race on kill of bridge node
2022-12-05 10:22:08 -06:00
Kevin Heifner d65158aa00 Merge remote-tracking branch 'origin/release/3.1' into GH-430-fork-test-3.2 2022-12-05 09:42:09 -06:00
Huang-Ming Huang d4fa489e80 Merge branch 'main' into huangminghuang/block_log 2022-12-05 08:45:50 -06:00
Huang-Ming Huang 2954299bd8 bug fixes 2022-12-02 15:50:54 -06:00
Huang-Ming Huang 6ad0eb7668 refactor block_log_impl 2022-12-02 14:28:59 -06:00
Huang-Ming Huang 9af2dafa72 Merge branch 'main' into huangminghuang/bn256 2022-12-02 14:25:07 -06:00
Huang-Ming Huang 2e09a536be update bn256 and tester dependency 2022-12-02 14:01:33 -06:00
Chris Gundlach c15e275e38 fixes based on pr comments 2022-12-02 10:54:13 -06:00
Lin Huang 2640009e79 Merge pull request #531 from AntelopeIO/fix_test_harness_crash
Fixed test harness crash when actiob_traces is empty
2022-12-01 21:47:56 -05:00
Lin Huang 41eea630df move except check before adding action_traces 2022-12-01 17:27:12 -05:00
Lin Huang 60103935b9 Fixed test harness crash when actiob_traces is empty 2022-12-01 16:02:51 -05:00
Clayton Calabrese 6eabf64f74 address pr comment regarding github actions log path 2022-12-01 10:59:21 -06:00
Peter Oschwald 7861f772f5 Merge branch 'feature_performance_harness' into feature_performance_harness_stage_2 2022-12-01 10:31:02 -06:00
Clayton Calabrese 0c2e0e61e7 fix incorrect list in github actions 2022-12-01 10:29:37 -06:00
Chris Gundlach ecea4c38ff changes based on pr comments 2022-12-01 10:24:57 -06:00
Peter Oschwald 94167d13bc Merge pull request #528 from AntelopeIO/ph-test-tweaking
[PH] Test tweaking - Decrease perf expectations for lower performing vms in CI/CD
2022-12-01 10:04:37 -06:00
Peter Oschwald 756bfe9c22 Decrease target tps for lower performance vms in CI/CD 2022-12-01 09:23:48 -06:00
Peter Oschwald 7df5fc7f79 Decrease tps-limit-per-generator for lower performance vms in CI/CD 2022-12-01 09:07:44 -06:00
Peter Oschwald 46366ce1b0 Decrease perf expectations for lower performing vms in CI/CD 2022-12-01 08:47:20 -06:00
Peter Oschwald 0d2ce63027 Merge pull request #527 from AntelopeIO/ph-test-tweaking
[PH] test tweaking
2022-12-01 08:22:35 -06:00
Peter Oschwald 72a6c1b877 Decrease perf expectations for lower performing vms in CI/CD 2022-12-01 07:51:37 -06:00
Peter Oschwald 7562f07879 Decrease perf expectations for lower performing vms in CI/CD 2022-12-01 06:34:39 -06:00
Peter Oschwald 14cf0bfcc5 Decrease tps-limit-per-generator for lower performance vms in CI/CD 2022-12-01 06:34:12 -06:00
Peter Oschwald 811817f60c Merge branch 'feature_performance_harness' into feature_performance_harness_stage_2 2022-12-01 05:28:35 -06:00
Peter Oschwald a4061cb4b0 Merge branch 'main' into feature_performance_harness 2022-12-01 05:27:04 -06:00
Peter Oschwald e1b51aa0f3 Merge pull request #524 from AntelopeIO/fix-nodeos-snapshot-diff-test
[4.0] nodeos_snapshot_diff_test fix
2022-12-01 05:20:19 -06:00
Clayton Calabrese ffffe77a96 resolve test failures due to use of var 2022-11-30 17:35:11 -06:00
Peter Oschwald 948e4f261c GH-523 Roll fixes to steady state average calculation with leeway forward to other test using same logic. 2022-11-30 17:19:32 -06:00
Peter Oschwald 0eba51d1f6 GH-523 Fix assert to be greater than or equal for correctness. 2022-11-30 17:00:12 -06:00
Peter Oschwald c6a5e4360f GH-523 Add small amount of leeway in expectation. 2022-11-30 16:52:22 -06:00
Peter Oschwald c20dc4f977 GH-523 Revert change to transPerPeriod. Fix steady state avg calculation. 2022-11-30 16:29:10 -06:00
Peter Oschwald 118a2a0b1b Merge pull request #518 from AntelopeIO/ph-argparse
[PH] argparse.ArgumentParser usage updates
2022-11-30 15:11:27 -06:00
Peter Oschwald dc76de1576 Merge pull request #510 from AntelopeIO/ph-thread-count-tests
[PH] thread count recommendation tests
2022-11-30 15:11:08 -06:00
Peter Oschwald c175d6be97 Resuse encoder from log_reader. 2022-11-30 14:43:26 -06:00
Peter Oschwald 33b94ba2a4 Remove redundant calls to close when using with statement. 2022-11-30 14:43:02 -06:00
Peter Oschwald 1d5256786d GH-523 Decrease min trx expectations in test to allow to run in nonparallelizable_tests env. 2022-11-30 14:32:48 -06:00
Peter Oschwald f89e6a1bb1 Merge branch 'main' into feature_performance_harness 2022-11-30 13:28:07 -06:00
Peter Oschwald 6bbc91b136 Merge pull request #522 from AntelopeIO/ph-truncate-verbose-response
[PH] Update response order and truncate when printing.
2022-11-30 12:46:49 -06:00
Peter Oschwald 8b9a98c26e Update response order and truncate when printing.
The payload object can be extremely long when printing out during verbose logging.  Rarely is the entire response needed for debugging.  However, the code is often useful when something goes wrong.  Reverse the order of code and payload so that, when trunctating printed responsed, the return code is always available.  Truncate the response to 1024 characters.
2022-11-30 12:14:51 -06:00
Peter Oschwald d291e17022 Use encoder to handle datetime and None type conversions for reporting. 2022-11-30 11:12:12 -06:00
Peter Oschwald 0d5980d2da Use Python introspection to simplify. 2022-11-30 10:29:33 -06:00
Kevin Heifner 31c3f60ab2 Merge pull request #268 from AntelopeIO/mandel-301-snapshot
[4.0] Regression test for: fix replay to correctly add trxs into the de-dup list
2022-11-30 09:57:06 -06:00
Kevin Heifner 732e3820e3 GH-268 Remove unneeded --dump-error-detail 2022-11-30 08:57:14 -06:00
Kevin Heifner f008c78b7a GH-521 Move initialize_protocol_features functionality out of chain_plugin into protocol_feature_manager so it can be used by both chain_plugin and leap-util snapshot. This fixes issue with leap-util snapshot not being able to read snapshots with protocol features activated. 2022-11-29 15:11:37 -06:00
Kevin Heifner 776f07bbd2 GH-268 Update nodeos_snapshot_diff_test.py to use leap-util 2022-11-29 13:17:18 -06:00
Kevin Heifner ed9e742eff Merge remote-tracking branch 'origin/main' into mandel-301-snapshot 2022-11-29 11:49:32 -06:00
Peter Oschwald 8bfa573dfc Merge pull request #520 from AntelopeIO/ph2-merge-feature-br
[PH] Ph2 merge feature br
2022-11-29 11:33:52 -06:00
Peter Oschwald f1d78e2be2 Merge branch 'feature_performance_harness' into ph2-merge-feature-br 2022-11-29 11:04:45 -06:00
Peter Oschwald 8d1e967ff6 Merge pull request #519 from AntelopeIO/ph-main-merge
[PH] main merge
2022-11-29 11:03:27 -06:00
Clayton Calabrese c1bbfe226d add new paths for GHA error logs 2022-11-29 10:21:46 -06:00
Clayton Calabrese d32cc2066f Merge branch 'eosio-launcher-python-port' into test_harness_var_lib_replacement 2022-11-29 10:06:10 -06:00
Peter Oschwald b239f06676 Merge branch 'main' into ph-main-merge 2022-11-29 10:04:14 -06:00
ClaytonCalabrese 119dd4dce8 Merge pull request #516 from AntelopeIO/test_harness_master_merge_11_28
[TH] Merge main into test harness
2022-11-29 09:53:39 -06:00
Peter Oschwald bd4a525f2f Fix performance_test_basic.py parser. 2022-11-29 09:38:24 -06:00
Peter Oschwald b6b6bcf767 Clarify TPS Test Config is part of Performance Harness. 2022-11-29 09:11:01 -06:00
Peter Oschwald ee1795570d Don't print Application Specific Arguments group if there are none. 2022-11-29 09:09:07 -06:00
Peter Oschwald ed975c6425 Make use of ArgumentParser parents and groups.
This will greatly reduce work to bubble up arguments between scripts/modules.  Also brings clarity and grouping of arguments by use with group titles and descriptions.

Test Helper arguments can now be bubbled up to user scripts via direct access to the ArgumentParser.  Performance Test Basic makes use of Test Helper arguments.  Perfomance Test makes use of both Performance Test Basic and Test Helper arguments as well.
2022-11-29 09:04:29 -06:00
Clayton Calabrese 452b719504 update main and merge 2022-11-28 16:10:20 -06:00
Clayton Calabrese 8e2da33d08 merge from main 2022-11-28 16:07:25 -06:00
Clayton Calabrese 577b088713 resolve collision in test path for tests which are run multiple times 2022-11-28 14:31:23 -06:00
Peter Oschwald 84b11790c4 Fix reference before assignment error on results objects when not configured to run tests. 2022-11-28 11:41:06 -06:00
Peter Oschwald 1db0e6c7c3 Fix check for thread calc being 'none' 2022-11-28 11:14:06 -06:00
ClaytonCalabrese c00d71ff3a Merge pull request #514 from AntelopeIO/performance_harness_remove_throw_chains
[PH] Performance harness remove unnecessary throw chains
2022-11-28 11:00:51 -06:00
Clayton Calabrese 7a90c935ad Remove try catch which aren't doing anything besides throwing 2022-11-28 10:25:12 -06:00
Lin Huang 013bbea3d9 Merge pull request #512 from AntelopeIO/libcurl_handle_init_fix
Fixed broken cleos due to reuse of curl handle
2022-11-24 17:04:55 -05:00
Lin Huang 14f193e772 Keep curl handle as a static for performance and unset CURLOPT_UNIX_SOCKET_PATH for non-unix-domain request 2022-11-24 14:30:23 -05:00
Lin Huang 695688e94b fixed broken cleos due to reuse of curl handle 2022-11-23 19:55:32 -05:00
Peter Oschwald 2ca2eb9d44 Fix typo. 2022-11-23 13:17:53 -06:00
Peter Oschwald 92fa92a1b2 Update defaults for producer threads to 6 and chain threads to 3 based on performance run calculations. 2022-11-23 12:44:38 -06:00
Peter Oschwald 7ba252b71c Add options to calculate recommended producer, chain, and net worker thread pool size.
Each plugin's option determines whether to calculate number of worker threads to use in the thread pool with options of: 'none', 'lmax', or 'full'. In 'none' mode, the default, no calculation will be attempted and default configured thread count will be used. In 'lmax' mode, thread count will incrementally be tested until the performance rate ceases to increase with the addition of subsequent threads. In 'full' mode thread count will incrementally be tested from 2..num logical processors, recording each performance and choosing the local max performance (same value as would be discovered in 'lmax' mode). Useful for graphing the full performance impact of each available thread.

Added log directory to collect results of thread optimization calculations.

Added option to opt out of running the tps test.

Updated README for new options and to show the updates to the result reports.
2022-11-23 12:33:34 -06:00
Michal Lesiak 48fb28eb37 Code review fixes.
Revert changes in Operators.h as apparently some unit tests were failing.
2022-11-23 11:58:05 +01:00
Michal Lesiak a629507b4e Revert "Code review fix."
This reverts commit bd3a600cd81e7d08c199f37c4f193d428083c3ec.
2022-11-23 11:58:05 +01:00
Michal Lesiak 253aae4bd0 Code review fix. 2022-11-23 11:58:05 +01:00
Michal Lesiak ce57001c7b Fix undefined behavior - uninitialized variables revealed by valgrind 2022-11-23 11:58:05 +01:00
Matt Witherspoon d5f65b3030 Merge pull request #507 from AntelopeIO/libcurl_readme
[4.0] add libcurl to README build instructions
2022-11-22 20:24:06 -05:00
Matt Witherspoon b87d5f4845 add libcurl to README build instructions 2022-11-22 17:57:50 -05:00
Peter Oschwald 22b0118aae Factor PerformanceTest out into its own class.
Break out config and logging classes.

Update documentation.
2022-11-21 16:36:14 -06:00
Lin Huang a2f3a67003 Merge pull request #492 from AntelopeIO/compute_transaction_clean_up
clean up compute_transaction: replace read_only flag with dry_run, refactor trx_type in transaction_metadata and transaction_context
2022-11-21 17:24:16 -05:00
Lin Huang ad8317f62d Merge branch 'main' into compute_transaction_clean_up 2022-11-21 16:52:06 -05:00
Lin Huang 5a02bd39e0 remove unnecessary const return type and correct an indentation 2022-11-21 16:23:43 -05:00
Kevin Heifner 67dc134361 Merge pull request #505 from AntelopeIO/deepmind-plugin-config-checks-main
[3.2 -> main] Added validation of plugin configuration for deep-mind
2022-11-21 15:10:05 -06:00
Kevin Heifner fd593224c7 Merge remote-tracking branch 'origin/release/3.2' into deepmind-plugin-config-checks-main 2022-11-21 14:00:13 -06:00
Kevin Heifner 5b71d02dd2 Merge pull request #504 from AntelopeIO/deepmind-plugin-config-checks-3.2
[3.1 -> 3.2] Added validation of plugin configuration for deep-mind
2022-11-21 13:59:13 -06:00
Kevin Heifner 52a10c5aa4 Merge pull request #499 from systemzax/libfc-cleanup
libfc cleanup
2022-11-21 13:29:13 -06:00
Kevin Heifner 11a58c587d Merge remote-tracking branch 'origin/release/3.1' into deepmind-plugin-config-checks-3.2 2022-11-21 13:25:29 -06:00
Chris Gundlach c7f962836a added support for metric_type 2022-11-21 10:38:58 -06:00
Chris Gundlach 40a0507b3b added producer_plugin metrics 2022-11-21 10:38:22 -06:00
Chris Gundlach ae8eee9824 added metric types to metrics 2022-11-21 10:37:53 -06:00
Chris Gundlach be41cdbdf4 added chain_plugin metrics 2022-11-21 10:36:06 -06:00
Chris Gundlach 56a11f1874 added metric_type 2022-11-21 10:35:12 -06:00
Guillaume Babin-Tremblay e5cc2d361c Removed commented files from libraries/libfc/CMakeLists.txt 2022-11-21 16:31:04 +00:00
Lin Huang 33acf3f330 Merge pull request #502 from AntelopeIO/merge_3_2_version_bump
[3.2->main] Merge release/3.2 version bump to Main
2022-11-21 10:21:15 -05:00
Lin Huang 202abefadd restore VERSION_SUFFIX to dev after merging 3.2.0 version bump 2022-11-21 09:46:40 -05:00
Lin Huang 9efc569ae5 Merge pull request #501 from AntelopeIO/bump_3_2_0
bump Leap to 3.2.0
2022-11-21 09:36:57 -05:00
Lin Huang bee268ca10 bump Leap to 3.2.0 2022-11-21 09:05:35 -05:00
Guillaume Babin-Tremblay af702454dc Removed unused files. Moved byteswap.hpp from src/ to include/fc/ and updated include references. 2022-11-19 13:30:28 +00:00
Guillaume Babin-Tremblay ed4b06507a Removed unused files. Moved byteswap.hpp from src/ to include/fc/ and updated include references. 2022-11-19 13:26:25 +00:00
Peter Oschwald d4b31f341c Factor out test params into PtbConfig and LoggingConfig objects.
Using PtbConfig and LoggingConfig objects simplifies test initializer params and encapsulates related config items into an object describing their use. It also allows easy reporting of test configuration in test report and will allow reporting to come for free if additional config arguments are added.

Some renaming for efficiency and clarity.
2022-11-18 16:58:47 -06:00
Peter Oschwald d35b65c863 Rename to PerformanceTestBasic to better align with script names.
Also renaming to use Ptb abbreviation in light of the name change.
2022-11-18 14:22:39 -06:00
Peter Oschwald 8d25f21d9f Merge pull request #496 from AntelopeIO/ph-remove-res-mon-argument
[PH] Remove argument to disable resmon shutdown.
2022-11-18 10:16:13 -06:00
Peter Oschwald 25768770c3 Remove argument to disable resmon shutdown.
Removing --resource-monitor-not-shutdown-on-threshold-exceeded in Cluster.py to allow resmon to shutdown as expected.  Shouldn't default to disabling this.  Also allows for Cluster.py to continue to be able to support older versions of nodeos for perf harness testing.
2022-11-18 09:23:55 -06:00
Peter Oschwald 3fe37f3b92 Merge pull request #484 from AntelopeIO/ph-log-dir-add-tps-target
[PH] log dir add tps target
2022-11-18 08:35:56 -06:00
Lin Huang c9bfbd0ccc clean up compute_transaction: replace read_only flag with dry_run, refactor trx_type in transaction_metadata and transaction_context 2022-11-17 21:03:10 -05:00
Peter Oschwald f7a486f88f Merge branch 'feature_performance_harness_stage_2' into ph-log-dir-add-tps-target 2022-11-17 16:26:28 -06:00
Peter Oschwald f09a1becd0 Merge branch 'feature_performance_harness' into feature_performance_harness_stage_2 2022-11-17 16:24:49 -06:00
Peter Oschwald 93d33db246 Merge pull request #489 from AntelopeIO/ph-fix-trx-gen-err-detection
[PH] fix trx gen err detection
2022-11-17 16:23:31 -06:00
Kevin Heifner 13ba3b5ad7 Merge pull request #491 from AntelopeIO/GH-485-log-main
[3.2 -> main] Use net_plugin_impl logger instead of default logger
2022-11-17 16:07:06 -06:00
Peter Oschwald e2746ebfd9 Attempt to lower trx gen limit for cicd ubuntu 18 machine. 2022-11-17 15:56:10 -06:00
Kevin Heifner bfdb1288f7 Merge remote-tracking branch 'origin/release/3.2' into GH-485-log-main 2022-11-17 15:39:57 -06:00
Kevin Heifner 9a15597983 Merge pull request #490 from AntelopeIO/GH-485-log-3.2
[3.1 -> 3.2] Use net_plugin_impl logger instead of default logger
2022-11-17 15:38:55 -06:00
Kevin Heifner 552aedc95c Merge remote-tracking branch 'origin/release/3.1' into GH-485-log-3.2 2022-11-17 15:04:33 -06:00
Peter Oschwald a1e4799bee Fix detection of trx generator failing.
Trx generator can fail to keep up with configured tps generation rate. Detect that failure case and report it as test failure.

Move transaction recvd and expected check to similar location and handling.

Rename launcherExitCodes to trxGenExitCodes for clarity.
2022-11-17 14:46:47 -06:00
Lin Huang 04b46386ee Merge pull request #487 from AntelopeIO/compute_transaction_fix_main
[3.2->main] compute_transaction: add --dry-run, deprecate --read-only, and sign a transaction only when explicitly requested
2022-11-17 15:06:57 -05:00
Lin Huang 3b16c62e69 Merge remote-tracking branch 'origin/release/3.2' into compute_transaction_fix_main 2022-11-17 14:35:39 -05:00
Lin Huang b641746863 Merge pull request #483 from AntelopeIO/compute_transaction_fix
[3.2] compute_transaction: add --dry-run, deprecate --read-only, and sign a transaction only when explicitly requested
2022-11-17 14:32:03 -05:00
Lin Huang 2d2f7880ca Do not change the behavior of existing --read-only that transactions by --read-only will be signed by default 2022-11-17 14:04:54 -05:00
Peter Oschwald bda146d96e Add target tps number to test log dir name for ease of locating specific run. 2022-11-17 11:45:07 -06:00
Peter Oschwald 841011b13e Merge branch 'feature_performance_harness' into feature_performance_harness_stage_2 2022-11-17 10:52:45 -06:00
Peter Oschwald 65c13bd8c3 Merge branch 'main' into feature_performance_harness 2022-11-17 10:35:34 -06:00
Peter Oschwald 4530c518b1 Merge pull request #476 from AntelopeIO/perf_harness_curl_replacement
[PH] Update performance harness to main
2022-11-17 10:33:04 -06:00
Peter Oschwald f7c008ad72 Merge pull request #481 from AntelopeIO/ph-db-map-mode
[PH] add database map mode
2022-11-17 10:32:10 -06:00
Lin Huang 5d6dc09dd9 compute_transaction: add --dry-run, deprecate --read-only, and sign a transaction only when --sign-with is provided 2022-11-17 10:55:09 -05:00
Peter Oschwald 90a1cbd5e8 Add cpu count to top level report. 2022-11-17 09:27:30 -06:00
Peter Oschwald 20f7ccf399 Update docs for new argument 2022-11-16 17:08:17 -06:00
Peter Oschwald f852de1a13 Add argument to configure --database-map-mode.
Use namespace alias to simplify and make easier to read. Rename some variables for brevity.
2022-11-16 17:06:24 -06:00
Peter Oschwald e3e688ad51 Refactor to use __str__ function override. 2022-11-16 15:44:42 -06:00
Peter Oschwald 4dd551f00f Rename to simplify and shorten plugin argument classes. 2022-11-16 15:30:41 -06:00
Clayton Calabrese 54931b63ff merge from main to include curl replacement. 2022-11-16 12:24:33 -06:00
Peter Oschwald b7bc0fece0 Merge pull request #475 from AntelopeIO/ph-thread-configs
[PH] Update docs for new arguments.
2022-11-16 10:00:08 -06:00
Peter Oschwald ce9b26faf3 Merge pull request #474 from AntelopeIO/ph-chain-state-db-size
[PH] Add argument to configure --chain-state-db-size-mb and default to 10GB
2022-11-16 09:04:27 -06:00
Peter Oschwald 8fd065c0cf Update docs for new arguments. 2022-11-16 08:34:12 -06:00
Peter Oschwald 8206a6df01 Update docs for new argument. 2022-11-16 08:29:59 -06:00
Peter Oschwald 4ba4548af4 Add argument to configure --chain-state-db-size-mb and default to 10GB 2022-11-16 08:25:42 -06:00
Peter Oschwald 9f59b5ea4c Merge pull request #469 from AntelopeIO/ph-thread-configs
[PH] Add support for thread configs
2022-11-16 08:23:08 -06:00
Peter Oschwald 2afac0031c Add support for configuring number of worker threads in producer thread pool (--producer-threads). 2022-11-15 16:11:24 -06:00
Peter Oschwald 138fb0e096 Add support for configuring number of worker threads in net_plugin thread pool (--net-threads). 2022-11-15 15:43:23 -06:00
Matt Witherspoon 48c7251a34 Merge pull request #464 from AntelopeIO/boost181_path_overload
[?.?] resolve `path` ambiguous overload in boost 1.81
2022-11-15 16:35:30 -05:00
Matt Witherspoon 139593d7e5 Merge pull request #465 from AntelopeIO/boost181_string_view_tostring
[?.?] refactor `boost::beast::string_view` to `std::string` conversion for changes in boost 1.81
2022-11-15 16:35:18 -05:00
Peter Oschwald 9986399867 Add support for configuring number of worker threads in controller thread pool (--chain-threads). 2022-11-15 15:16:00 -06:00
Chris Gundlach 0780d77b60 changed url from /scrape to /metrics, which is default for prometheus 2022-11-15 13:00:57 -06:00
Chris Gundlach 722508e86e took out unnecessary content_type_ member 2022-11-15 12:52:43 -06:00
Chris Gundlach 0ef5a84596 set content type for prometheus_plugin to plain text 2022-11-15 11:25:16 -06:00
Chris Gundlach 7417565481 added ability to set content type on api 2022-11-15 11:24:31 -06:00
Clayton Calabrese 5ae2aef2ed convert hardcoded use of var lib to a dynamic one based off test name. 2022-11-15 11:22:47 -06:00
Matt Witherspoon e16bd9404f Merge pull request #462 from MaximSmolskiy/remove-dump-error-details-from-all-tests-in-tests/CMakeLists.txt
Remove --dump-error-details from all tests in tests/CMakeLists.txt
2022-11-14 20:01:58 -05:00
ClaytonCalabrese b757d02a77 Merge pull request #442 from AntelopeIO/replace_curl_with_urllib
[4.0] replace usage of curl in python with urllib
2022-11-14 15:36:55 -06:00
766C6164 e872980baf Use cli11 as submodule 2022-11-14 14:44:10 -05:00
Matt Witherspoon 074dd1437a Merge pull request #463 from AntelopeIO/remove_platform_tls_rootCA
[4.0] remove platform root CA population for TLS connections
2022-11-14 12:15:10 -05:00
Chris Gundlach 4b17541372 Merge branch 'main' into feature_prometheus_plugin 2022-11-14 10:10:23 -06:00
Huang-Ming Huang 21cd3a0201 Merge pull request #444 from AntelopeIO/huangminghuang/libcurl
[4.0] Use libcurl  for cleos
2022-11-14 08:32:12 -06:00
Matt Witherspoon b9029e8a01 boost::beast::string_view no longer has to_string() in boost 1.81 2022-11-13 22:55:38 -05:00
Matt Witherspoon 9f91f5a99b resolve 'path' ambiguous overload in boost 1.81 2022-11-13 22:52:43 -05:00
Clayton Calabrese 3faa5cf1c1 convert some strings to fstring. Fix indenting on multi-line blocks. 2022-11-11 18:52:41 -06:00
MaximSmolskiy 5dd1f2b995 Remove --dump-error-details from all tests in tests/CMakeLists.txt 2022-11-12 01:57:56 +03:00
Huang-Ming Huang f1142ffb6d address PR comments 2022-11-11 15:44:22 -06:00
Huang-Ming Huang 02a065b497 fix gcc8 compile problem 2022-11-11 13:57:36 -06:00
Huang-Ming Huang b24a270683 fix find gmp 2022-11-11 11:03:15 -06:00
Christopher Gundlach 6be258e1aa Merge pull request #436 from AntelopeIO/prometheus_metric_updates
Updates to runtime_metrics / interface between instrumented plugins and prometheus plugin
2022-11-11 10:22:28 -06:00
jgiszczak c0edf6c3ef Merge pull request #459 from AntelopeIO/eosio-launcher-create-queries-class
Migrate chain queries out of Node.py into their own class
2022-11-10 18:23:12 -06:00
Jonathan Giszczak 96a377cdcf Move wait methods back to Node. 2022-11-10 18:08:58 -06:00
Jonathan Giszczak 5f857313ac Redirect naughty usage of Python 'private' method in cli_test 2022-11-10 17:47:04 -06:00
Clayton Calabrese a2dd619621 fix another test failure 2022-11-10 17:29:05 -06:00
Clayton Calabrese f33fcdaf77 fix test failures as a result of return type changing for json in processUrlLibRequest 2022-11-10 16:54:11 -06:00
Clayton Calabrese a36a4f350f return the http retcode as well as the payload in processurllibrequest 2022-11-10 15:37:13 -06:00
Jonathan Giszczak 91e96d01b8 Move chain transactions API out of Node into its own class.
Still avoiding modifying tests for the time being.
2022-11-10 15:09:14 -06:00
Jonathan Giszczak d5e9dcdc86 Add missing imports. 2022-11-10 14:40:18 -06:00
Huang-Ming Huang e4a8edc2ac Merge branch 'main' into huangminghuang/libcurl 2022-11-10 14:25:52 -06:00
Huang-Ming Huang 9772bedd6b Merge branch 'main' into huangminghuang/bn256
# Conflicts:
#	libraries/libfc/libraries/ff
2022-11-10 13:00:49 -06:00
Huang-Ming Huang 64c953db4b remove ff submodule 2022-11-10 12:59:03 -06:00
Huang-Ming Huang 6cb2b24475 remove easy handle map 2022-11-10 11:51:30 -06:00
Huang-Ming Huang 0704f63200 address PR comments 2022-11-10 11:35:44 -06:00
Clayton Calabrese ba5e93d2ed revert reversion of new default. 2022-11-10 10:58:17 -06:00
Peter Oschwald 6430f7057e Merge pull request #460 from AntelopeIO/ph-merge-main
[PH] merge main
2022-11-10 09:00:50 -06:00
Peter Oschwald 68d3b15559 Merge branch 'main' into ph-merge-main 2022-11-10 07:57:22 -06:00
Jonathan Giszczak 4a52633f5d Migrate chain queries out of Node.py into their own class
Node inherits from new Queries class to avoid intrusive changes to tests
processCurlCommand is left in Node to avoid merge conflicts with #442
2022-11-09 18:01:33 -06:00
Clayton Calabrese 4ad6a58c6f fix test failures 2022-11-09 16:00:54 -06:00
Huang-Ming Huang 89a34d0e89 don't show detail exception 2022-11-09 13:22:29 -06:00
Clayton Calabrese 806f08fc34 Change txn_test_gen_plugin to send a response when no problems occur in push_next_transaction due to it causing errors when using urllib 2022-11-09 13:10:24 -06:00
Clayton Calabrese 0756eb865c revert change of defaulting for SilentErrors. 2022-11-09 13:09:39 -06:00
Clayton Calabrese 17e1d30b60 fix problem in http_api_test where incorrect command and args were being used. 2022-11-09 13:09:09 -06:00
Peter Oschwald bbacf249bb Merge pull request #457 from AntelopeIO/ph-readme-updates
[PH] README updates
2022-11-09 09:32:01 -06:00
Peter Oschwald cb690cfc28 Collapse example directory structure. 2022-11-09 09:28:47 -06:00
Peter Oschwald ad06833564 Merge pull request #456 from AntelopeIO/ph-readme-updates
[PH] README updates.
2022-11-09 09:19:23 -06:00
Peter Oschwald b438106b3b Fix indentation. 2022-11-09 09:16:22 -06:00
Peter Oschwald 27f8039d77 Merge pull request #455 from AntelopeIO/ph-fix-readme-links
[PH] Fix links to Build and Install From Source directions.
2022-11-09 08:51:25 -06:00
Peter Oschwald 4d421ef788 Fix links to Build and Install From Source directions. 2022-11-09 08:46:41 -06:00
Peter Oschwald a2ace6314e Merge pull request #454 from AntelopeIO/ph-fix-readme-links
[PH] Fix links to test report sections.
2022-11-09 08:36:01 -06:00
Peter Oschwald 8b36f6191d Merge pull request #453 from AntelopeIO/ph-rm-err-det-dump
[PH] Remove --dump-error-detail test arg
2022-11-09 08:35:46 -06:00
Peter Oschwald 113fcdb860 Fix links to test report sections. 2022-11-09 08:33:54 -06:00
Huang-Ming Huang 06e69ea263 more change to connection error message 2022-11-09 08:19:08 -06:00
Peter Oschwald 080aefd5fb Remove --dump-error-detail option now that logs are automatically collected during CICD runs. 2022-11-09 08:07:34 -06:00
Huang-Ming Huang e93f29d796 fix cli_test.py 2022-11-09 08:01:40 -06:00
Kevin Heifner 2aaa7abe94 Merge pull request #414 from AntelopeIO/GH-271-kill-speculative
[4.0] Remove read-mode speculative & disable-api-persisted-trx
2022-11-09 07:06:25 -06:00
Huang-Ming Huang 38dc095d8c restore connection refused message 2022-11-08 19:01:32 -06:00
Scott B 84cd74a1c5 Merge pull request #449 from AntelopeIO/wall-fix
Wall fix
2022-11-08 12:18:30 -06:00
Matt Witherspoon 7cf26920d6 remove platform root CA population for TLS connections 2022-11-08 11:53:37 -05:00
Vlad e16a17114c Merge pull request #450 from AntelopeIO/add-snapshot-subcommand
[4.0] Added snapshot to-json subcommand to leap-util
2022-11-08 11:34:04 -05:00
766C6164 5e4134da93 Fixes 2022-11-08 10:59:53 -05:00
766C6164 f1a60adff0 Multiple updates 2022-11-07 23:40:18 -05:00
Scott Bailey 71a2f1135f Review comment correction. 2022-11-07 21:21:30 -06:00
Kevin Heifner 70762315c9 GH-271 Additional info to comments. 2022-11-07 16:42:26 -06:00
Scott Bailey 53c462bf09 Address review comments. 2022-11-07 16:09:42 -06:00
766C6164 5d3689d9b4 Adjusted help texts 2022-11-07 15:47:44 -05:00
766C6164 17c9ef5c3d Added snapshot subcommand 2022-11-07 15:39:55 -05:00
Huang-Ming Huang e0ecd31f55 disable Expect 100-Continue header 2022-11-07 14:09:20 -06:00
jgiszczak 1a7212c931 Merge pull request #331 from AntelopeIO/eosio-launcher-data-and-topology
Add data classes, populators, and topology generators
2022-11-07 14:02:36 -06:00
Scott Bailey 7d5c3c9f70 Remove warnings. 2022-11-07 11:31:17 -06:00
Scott Bailey ed1068b411 Include system libraries with SYSTEM keyword to remove included warnings. 2022-11-07 11:31:17 -06:00
Scott Bailey ccf35ef625 Add warning options: ENABLE_WMAX, ENABLE_WERROR, ENABLE_WEXTRA. 2022-11-07 11:31:17 -06:00
Scott Bailey 6b2ae8e72e Improve ignore for '[Bb]uild*/' directories and ignore QtCreator user files. 2022-11-07 11:31:17 -06:00
Scott Bailey 58e4c327cc Update submodules with wall-fix changes. 2022-11-07 11:31:17 -06:00
Chris Gundlach 1557592bd5 added dropped trxs metric 2022-11-07 10:59:48 -06:00
Clayton Calabrese 258fbc352e Merge remote-tracking branch 'origin/main' into replace_curl_with_urllib 2022-11-07 10:56:34 -06:00
Chris Gundlach a370d138a0 changed to use references rather than pointers 2022-11-07 10:30:11 -06:00
Chris Gundlach 4cb2657ac8 updated to net_plugin to return a struct rather than a vector of pointers 2022-11-07 10:21:25 -06:00
Peter Oschwald 3151be3e1f Merge branch 'main' into feature_performance_harness 2022-11-07 09:23:34 -06:00
Peter Oschwald 05d107b387 Merge pull request #447 from AntelopeIO/ph-consolidate-args
[PH] Consolidate some of the arguments to log_reader.py's calcAndReport
2022-11-07 09:08:33 -06:00
Peter Oschwald 4495867be5 Merge pull request #446 from AntelopeIO/ph-prod-node-config-updates
[PH] Update producer node configurations for performance
2022-11-07 09:08:17 -06:00
Huang-Ming Huang 6326878363 Merge branch 'main' into huangminghuang/libcurl 2022-11-07 08:41:11 -06:00
Peter Oschwald 2982ba9756 Update to use disable-subjective-billing.
If providing disable-subjective-api-billing, should also provide disable-subjective-p2p-billing, otherwise simply add the disable-subjective-billing option which covers both. Opt to use the overarchign argument for now.
2022-11-07 08:17:53 -06:00
Kevin Heifner 7312368096 Merge pull request #448 from AntelopeIO/GH-419-trx-finality-test-main
[3.2 -> main] Fix test failure due to trx hitting near end of block production time
2022-11-07 08:06:20 -06:00
Kevin Heifner 7790b4618d Merge remote-tracking branch 'origin/release/3.2' into GH-419-trx-finality-test-main 2022-11-04 18:41:59 -05:00
Kevin Heifner 87359e262a Merge pull request #443 from AntelopeIO/GH-419-trx-finality-test-3.2
[3.1 -> 3.2] Fix test failure due to trx hitting near end of block production time
2022-11-04 18:41:47 -05:00
Jonathan Giszczak 58c9879d69 Use cleos to generate unique producer keys for non-bios producer nodes 2022-11-04 18:33:04 -05:00
Jonathan Giszczak 6eabcab35e Merge branch 'eosio-launcher-data-and-topology' of github.com:AntelopeIO/leap into eosio-launcher-data-and-topology 2022-11-04 17:48:59 -05:00
Jonathan Giszczak 8034303068 Move launcher.py out of TestHarness. 2022-11-04 17:43:48 -05:00
Huang-Ming Huang a99c1d5f1e increase trx_finality_status_test timeout 2022-11-04 17:37:02 -05:00
jgiszczak 760ddde988 Merge pull request #432 from AntelopeIO/eosio-launcher-write-genesis-file
Write a genesis file for each node.
2022-11-04 16:35:58 -05:00
Peter Oschwald 2fcd2f1ec5 Consolidate some of the arguments to log_reader.py's calcAndReport
Factor related arguments out into classes to cut down on how verbose the method signature is.
2022-11-04 16:16:21 -05:00
Jonathan Giszczak 8e6242da0f Support using an existing genesis.json file. 2022-11-04 16:09:43 -05:00
Huang-Ming Huang 06c9e25327 enable http connection resuse 2022-11-04 15:40:13 -05:00
Peter Oschwald 1b3ef361c5 Update documentation for updates to launch transaction generators script.
Documentation updates were missed when the script was updated.
2022-11-04 15:19:48 -05:00
Peter Oschwald 695f9e1d5d Add support for additional producer configuration.
Leverage extraNodeosArgs configuration argument to support performance tuning of last block and cpu effort percentages, last block and produce time offsets, and signature cpu billable percent.

Default these performance tuning options for single producer node topology where production window will not pass to another producer node.

Update documentation for new features.
2022-11-04 15:18:43 -05:00
Huang-Ming Huang 728faf5339 increase trace_plugin_test timeout 2022-11-04 12:11:24 -05:00
Huang-Ming Huang 25b35c17d4 fix make_scoped_exit 2022-11-04 11:31:32 -05:00
Peter Oschwald 17218ec24d Merge pull request #445 from AntelopeIO/ph-merge-main
[PH] merge main
2022-11-04 10:00:58 -05:00
Peter Oschwald c8501e7de0 Merge branch 'main' into feature_performance_harness 2022-11-04 08:08:46 -05:00
Huang-Ming Huang 2664e0c918 address PR comments 2022-11-04 08:02:10 -05:00
Huang-Ming Huang 18f58f62c7 fix test failures 2022-11-03 19:17:10 -05:00
Kevin Heifner 339853d3f5 GH-271 Update comment to be clearer and not reference speculative mode which no longer exists. 2022-11-03 16:37:06 -05:00
Huang-Ming Huang 26f6f341f4 change cleos to use libcurl 2022-11-03 14:23:45 -05:00
Kevin Heifner 9b948c0150 Merge remote-tracking branch 'origin/release/3.1' into GH-419-trx-finality-test-3.2 2022-11-03 13:03:30 -05:00
Peter Oschwald 218e27e60e Merge pull request #402 from AntelopeIO/ph-launch-trx-gens-updates
[PH] Launch Trx Generators updates
2022-11-03 12:38:00 -05:00
Peter Oschwald e4b96908e1 Merge branch 'feature_performance_harness' into ph-launch-trx-gens-updates 2022-11-03 12:09:23 -05:00
Peter Oschwald dab2d3b3df Merge pull request #393 from AntelopeIO/ph-default-keep-logs
[PH] Default perf harness to saving logs
2022-11-03 12:05:38 -05:00
Clayton Calabrese d377753da3 replace usage of curl in python with urllib 2022-11-03 11:46:34 -05:00
Matt Witherspoon bf33fdabea Merge pull request #439 from AntelopeIO/http_server_header_main
[3.2 -> main] change the HTTP Server header to be nodeos/keosd version
2022-11-02 22:02:38 -04:00
Matt Witherspoon fab0b7c793 Merge remote-tracking branch 'origin/release/3.2' into http_server_header_main 2022-11-02 21:41:34 -04:00
Matt Witherspoon b52647b2c9 Merge pull request #438 from AntelopeIO/http_server_header_32x
[3.2] RFC: change the HTTP Server header to be nodeos/keosd version
2022-11-02 21:40:42 -04:00
Matt Witherspoon 8d2637e6a5 change the HTTP Server header to be nodeos/keosd version 2022-11-02 16:56:59 -04:00
Matt Witherspoon 27573c7724 Merge pull request #437 from AntelopeIO/armlinux_from_json_float_war
work around abieos test failure on ARM float min/max roundtrip to&from string in JSON parsing
2022-11-02 14:33:48 -04:00
Matt Witherspoon 0c4352e821 bump abieos submod to main with ARM float JSON string workaround 2022-11-02 14:11:13 -04:00
Matt Witherspoon 91af790fca bump abieos submod to version with ARM float JSON string workaround 2022-11-02 12:10:13 -04:00
Chris Gundlach 3c699a43ec used new alias 2022-11-02 11:07:03 -05:00
Chris Gundlach a084e2e001 update runtime_metric to int64_t; added aliases 2022-11-02 10:51:01 -05:00
Chris Gundlach 3b4fa6f59c added num_clients/num_peers metrics 2022-11-01 18:03:18 -05:00
Chris Gundlach 811ac8aab8 added handling of runtime_metrics from net plugin 2022-11-01 18:02:46 -05:00
Chris Gundlach 50859e7b81 added definition for runtime_metrics 2022-11-01 18:01:45 -05:00
Kevin Heifner 7b77458c9a Merge branch 'main' into GH-271-kill-speculative 2022-11-01 15:04:01 -05:00
Jonathan Giszczak bab3b16795 Support max-[block,transaction]-cpu-usage when writing genesis.json 2022-11-01 14:50:29 -05:00
Jonathan Giszczak 590dfce426 Write a genesis file for each node. 2022-11-01 14:39:38 -05:00
Kevin Heifner 2b64357ccb GH-271 Remove persist until expired functionality 2022-11-01 13:54:24 -05:00
Matt Witherspoon 4d11419160 Merge pull request #431 from AntelopeIO/cpack-fix-debian-dev-package-dependancies-main
[3.2 -> main] (noop) Cpack fix debian dev package dependancies main
2022-11-01 14:02:22 -04:00
Matt Witherspoon 88a34cd9b4 Merge remote-tracking branch 'origin/release/3.2' into cpack-fix-debian-dev-package-dependancies-main 2022-11-01 13:33:31 -04:00
Matt Witherspoon 216534d5e9 Merge pull request #429 from AntelopeIO/cpack-fix-debian-dev-package-dependancies-32
[3.1 -> 3.2] CPack: fix separator in depends field of debian dev pacakge
2022-11-01 13:33:03 -04:00
Matt Witherspoon cabcc2fe3a Merge pull request #427 from AntelopeIO/update_libfc_path_noop
[3.2 -> main] (noop) update libfc path in EosioTesterBuild.cmake.in for building integration tests in CDT and System Contracts
2022-11-01 13:22:55 -04:00
Lin Huang aba2cdfcce Merge pull request #426 from AntelopeIO/merge_3_2_rc2_to_main
[3.2->main] Merge release/3.2 rc2 version bump to Main
2022-11-01 13:11:54 -04:00
Matt Witherspoon 59ba45da4e Merge remote-tracking branch 'origin/release/3.1' into cpack-fix-debian-dev-package-dependancies-32 2022-11-01 12:20:03 -04:00
Lin Huang 8d1b8a5698 Merge branch 'main' into merge_3_2_rc2_to_main 2022-11-01 12:13:41 -04:00
Matt Witherspoon 3297d97a43 Merge pull request #425 from AntelopeIO/cpack-fix-debian-dev-package-dependancies-31
[3.1] CPack: fix separator in depends field of debian dev pacakge
2022-11-01 11:39:08 -04:00
Lin Huang f922a86ab0 Merge branch 'main' into merge_3_2_rc2_to_main 2022-11-01 11:19:17 -04:00
Matt Witherspoon 0ed399830f Merge remote-tracking branch 'origin/release/3.2' into update_libfc_path_noop 2022-11-01 11:14:33 -04:00
Lin Huang 8540836ffe keep 4.0 version after merging from 3.2 2022-11-01 11:04:47 -04:00
Matt Witherspoon 9497c0897a Merge pull request #419 from AntelopeIO/update_libfc_path_32x
[3.2] update libfc path in EosioTesterBuild.cmake.in for building integration tests in CDT and System Contracts
2022-11-01 10:56:56 -04:00
Matt Witherspoon a9ef9fff63 Merge pull request #379 from eosswedenorg/cpack-fix-debian-dev-package-dependancies
CPack: fix separator in depends field of debian dev pacakge.
2022-11-01 10:55:04 -04:00
Lin Huang 2fdb55e340 Merge pull request #424 from AntelopeIO/bump_to_3_2_0_rc2
[3.2] bump Leap to 3.2.0-rc2
2022-11-01 10:46:34 -04:00
Kevin Heifner aab82cdc40 GH-271 Keep trx metas in pending so abort puts them in unapplied queue. 2022-11-01 09:46:18 -05:00
Lin Huang a92fd7cb16 Merge pull request #423 from AntelopeIO/merge_3_2_to_main
[3.2->main] merge original release/3.1.3 version bump PR
2022-11-01 10:24:57 -04:00
Lin Huang 2d96bfe3b2 bump Leap to 3.2.0-rc2 2022-11-01 10:16:21 -04:00
Lin Huang bb531f373e Merge remote-tracking branch 'origin/release/3.2' into merge_3_2_to_main 2022-11-01 09:48:56 -04:00
Henrik Hautakoski 1120377466 package.cmake: Packages in the "CPACK_DEBIAN_DEV_PACKAGE_DEPENDS" variable should be separated by commas and not semicolon. 2022-11-01 14:34:33 +01:00
Lin Huang e0ecbb649f Merge pull request #422 from AntelopeIO/merge_3_1_to_3_2
[3.1->3.2] merge release/3.1.3 version bump PR
2022-11-01 09:25:14 -04:00
Lin Huang 20b0d9d60e keep release/3.2 version after merging from 3.1 2022-11-01 08:32:58 -04:00
Lin Huang 2b03bff637 update libfc path in EosioTesterBuild.cmake.in for building tests in CDT and System Contracts 2022-10-31 22:10:30 -04:00
Kevin Heifner 9003617853 GH-271 Dump error details too much logging for high transaction test 2022-10-31 19:18:41 -05:00
Kevin Heifner 46df41c112 GH-271 Add wait for block 2022-10-31 19:16:53 -05:00
Kevin Heifner 62dd2b0b94 GH-271 Remove disable-api-persisted-trx option, functionality will be removed soon. 2022-10-31 17:04:04 -05:00
Huang-Ming Huang 19cf07a664 fix alt_bn128_add 2022-10-31 17:02:22 -05:00
Kevin Heifner 17932b2bb8 GH-271 Hardcode disable-api-persisted-trx=true for now, will be removed soon. 2022-10-31 16:48:56 -05:00
Vlad f5d8814efb Merge pull request #417 from AntelopeIO/update-cli11-lib-main
[3.2 -> main] Enable new CLI11 LeapFormatter for both cleos and leap-util
2022-10-31 16:59:29 -04:00
766C6164 38958de461 Merge branch 'release/3.2' into update-cli11-lib-main 2022-10-31 16:31:32 -04:00
Huang-Ming Huang e3b10cbec2 replace benchmark alt_bn128 2022-10-31 15:29:53 -05:00
Vlad 1e9587826c Merge pull request #399 from AntelopeIO/update-cli11-lib
[3.2] Enable new CLI11 LeapFormatter for both cleos and leap-util
2022-10-31 16:25:42 -04:00
Kevin Heifner 295ef4a3c5 GH-271 Increase timeout and turn on debug output. 2022-10-31 15:21:47 -05:00
Kevin Heifner 6a6d8ddceb GH-271 Add wait for blocks as transactions are no longer persisted by default. 2022-10-31 15:00:06 -05:00
Kevin Heifner a96e206b3b GH-271 Temporary fix until python regression test framework removes this file which is already in work. 2022-10-31 13:48:08 -05:00
Huang-Ming Huang d62951ae14 Fix alt_bn128_pair 2022-10-31 13:40:01 -05:00
766C6164 aa09279bab Updated to CLI11/main 2022-10-31 14:30:42 -04:00
Matt Witherspoon 5c0916707e Merge pull request #415 from AntelopeIO/fix_ship_shutdown_thread_main
[3.2 -> main] fix threading on state_history shutdown leading to hung nodeos shutdown
2022-10-31 13:50:22 -04:00
Huang-Ming Huang f3e5344136 update bn256 2022-10-31 12:32:20 -05:00
Matt Witherspoon d64431867e Merge remote-tracking branch 'origin/release/3.2' into fix_ship_shutdown_thread_main 2022-10-31 13:30:26 -04:00
Matt Witherspoon a7ad638eb6 Merge pull request #413 from AntelopeIO/fix_ship_shutdown_thread_32
[3.2] fix threading on state_history shutdown leading to hung nodeos shutdown
2022-10-31 13:29:05 -04:00
Kevin Heifner 0f4ad02f85 GH-271 Check for ephemeral case and use is_speculative_block for better documentation 2022-10-31 12:06:37 -05:00
Kevin Heifner 1ee599636a GH-271 Update tests for removal of read-mode speculative 2022-10-31 11:53:25 -05:00
Kevin Heifner cc2513cdb4 GH-271 Update docs for removal of read-mode speculative and read-only 2022-10-31 11:53:05 -05:00
766C6164 bc5b1daaff Comment changed 2022-10-31 12:09:28 -04:00
Matt Witherspoon 7ddf820603 fix threading violation on state_history shutdown 2022-10-31 11:40:48 -04:00
Kevin Heifner 5da9f20157 GH-271 WIP Removed db_read_modes SPECULATIVE and READ_ONLY. Added new block_status type ephemeral to distinguish between a block being produced which should not roll-back state and a block only created for speculative trx execution. Renamed is_producing_block to is_speculative_block as producing implies too much. 2022-10-31 10:36:11 -05:00
Huang-Ming Huang be11b99340 Merge pull request #412 from AntelopeIO/huangminghuang/update-eos-vm
Update eos-vm
2022-10-31 09:20:29 -05:00
Huang-Ming Huang 4323406aba Update eos-vm 2022-10-31 08:22:33 -05:00
Matt Witherspoon 15aaa7f2ec Merge pull request #401 from AntelopeIO/skip_issue_label_on_existing_project
don't triage new issues if they're already assigned to a project
2022-10-29 12:03:41 -04:00
Kevin Heifner 8175ac9657 Merge pull request #408 from AntelopeIO/GH-235-shutdown-log-m
[3.2 -> main] Use error log instead of warning log when resource_monitor exceeds threshold
2022-10-29 10:21:41 -05:00
Kevin Heifner fd4a7042f3 Merge pull request #407 from AntelopeIO/GH-318-cli-print-help-by-default-main
[3.2 -> main] Changed default error handler to print help in cli apps by default
2022-10-29 10:18:25 -05:00
Kevin Heifner 574ebb0a06 Merge commit 'e5bb8b2' into GH-235-shutdown-log-m 2022-10-29 09:52:24 -05:00
Kevin Heifner 51fe9c6e4f Merge commit 'ec3b6fb' into GH-318-cli-print-help-by-default-main 2022-10-29 09:48:14 -05:00
Matt Witherspoon 4c305088ac Merge pull request #403 from AntelopeIO/secp256k1_install_fix_32x
[3.2] restore secp256k1 library in `dev` installation component
2022-10-29 10:42:28 -04:00
Kevin Heifner e5bb8b2151 Merge pull request #404 from AntelopeIO/GH-235-shutdown-log-3.2
[3.1 -> 3.2] Use error log instead of warning log when resource_monitor exceeds threshold
2022-10-29 09:36:10 -05:00
Kevin Heifner 645c15b4c9 Merge remote-tracking branch 'origin/release/3.1' into GH-235-shutdown-log-3.2 2022-10-29 08:23:25 -05:00
Matt Witherspoon 70fca6820e restore secp256k1 library in to dev component install() 2022-10-28 22:37:23 -04:00
Peter Oschwald abc5c4150d Address peer review comments. 2022-10-28 16:57:06 -05:00
Peter Oschwald 8e7cf9c1cb Factor out TpsTrxGensConfig to allow numGenerators and list of each generator's tps target to be used for launching and populating in report.
This pushes the calculations for number of generators required to hit overall target tps and the per-generator target tps to balance tps generation across all launched generators into one location to be referenced by others instead of needing to reproduce the calculations in multiple locations.
2022-10-28 16:20:02 -05:00
Peter Oschwald a0cb06ef93 Remove unused function. 2022-10-28 16:12:29 -05:00
Matt Witherspoon 43d89c42ea don't triage new issues if they're already assigned to a project 2022-10-28 15:52:09 -04:00
ClaytonCalabrese a902785a14 Merge pull request #398 from AntelopeIO/perf_harness_wait_transactions_in_block
[PH] Perf harness wait for transactions in block
2022-10-28 12:58:18 -05:00
Huang-Ming Huang 74e80f86e9 update to use bn256 2022-10-28 12:50:21 -05:00
Jonathan Giszczak 70bc518bb8 Fix mesh topology generator and eliminate redundant links.
Per original C++, peera->peerb and peerb->peera are both configured.
2022-10-27 17:57:38 -05:00
Clayton Calabrese 60bbd3a80f address peer feedback on performance test wait for trx 2022-10-27 17:45:46 -05:00
Peter Oschwald ddd7c7a449 Make use of import module to launch trx generators. 2022-10-27 16:24:55 -05:00
Peter Oschwald 14fa915f9f Begin refactoring launch_transaction_generators.py into an import module.
Refactor to take string lists of comma separated account names and private keys to match trx_generator.
2022-10-27 16:15:36 -05:00
766C6164 aa7d8a6f17 Updated cli11, enable LeapFormatter for both cleos/leap-util 2022-10-27 15:56:50 -04:00
Peter Oschwald cf19caced4 Fix conflicting needs for low level logs.
Move capturing of low level log artifacts until after cluster has shutdown to guarantee it is not longer needing the logs for its clean shutdown.  Remove --keep-logs argument access and control it internally based on --del-perf-logs so that TestHelper and Cluster can continue to function normally with their arguments during shutdown and performance tests can still capture logs if necessary.  Update documentation.
2022-10-27 13:42:54 -05:00
Vlad ec3b6fb901 Merge pull request #371 from AntelopeIO/cli-print-help-by-default
[3.2] Changed default error handler to print help in cli apps by default
2022-10-27 14:15:46 -04:00
Clayton Calabrese 9be93bf881 fix a bug in waitForTransactionsInBlockRange when None is the wait 2022-10-27 13:09:49 -05:00
Clayton Calabrese 257fa0d082 change from wait for empty blocks to waiting for generated transactions in performance test basic 2022-10-27 13:08:42 -05:00
Peter Oschwald 57b94656e6 Default to saving test reports.
Update command line arguments to reflect the default capture of reports and, if choosing to not capture use the --del-report style arguments.

Update documentation to reflect argument changes and changes to log directory structure.
2022-10-27 11:13:02 -05:00
Christopher Gundlach 3aefcbbe8c Merge pull request #333 from AntelopeIO/prometheus_pull
Add pull functionality
2022-10-27 10:21:33 -05:00
Peter Oschwald 905c6859b5 Capture low level artifacts into performance test log directories.
Test logs in etc and var are overwritten with each subsequent run of the test if left in place, thus move them out to test logs directories for later debugging use.

By default these logs will be captured unless explicitly disabled with --del-perf-logs argument.
2022-10-27 08:42:25 -05:00
Peter Oschwald 27e1e07a8e Dynamically determine the location of the validation node's log file. 2022-10-27 08:39:25 -05:00
Jonathan Giszczak fbefdd1490 Interpret total nodes as per C++ version.
Revise graphviz labels for utility and readability.
Fix off-by-one error in star topology and add missing loop increment.
Prevent self-peers in star topology.
2022-10-26 18:59:08 -05:00
Kevin Heifner f03ac3c127 Merge pull request #390 from AntelopeIO/GH-290-expired-dedup-main
[3.2 -> main] Clear expired transactions before snapshot and integrity hash
2022-10-26 18:22:41 -05:00
Peter Oschwald d7116c0c28 Add argument --del-perf-logs to control perf harness log lifetime.
No longer overload the --keep-logs argument.

Allows performance harness tests to default behavior to collecting and saving log files unless explicitly directly to delete logs.
2022-10-26 15:19:12 -05:00
Peter Oschwald 987134a72c Merge pull request #391 from AntelopeIO/ph-long-running-use-linear-search
[PH] Performance Test - Long running Tests to use linear search
2022-10-26 15:07:43 -05:00
Jonathan Giszczak cf28213223 Add bind nodes to new Pythonic make_line()
Make a ring of nodes 00 through nn rather than bios through nn.
2022-10-26 14:28:50 -05:00
Peter Oschwald 9913824e2c Re-order items in report to be more in line with how one would read them.
Now that reports aren't always explicity reordered to be alphabetical, put them in a general logical order here as well.
2022-10-26 13:59:10 -05:00
Peter Oschwald f50a1f43e9 For initial binary search, try a short run using ceiling tps first.
In the general case, where --max-tps-to-test has been set well above achievable, this change adds one --test-iteration-duration-sec of time to the overarching test. In the case where it is successful it could save many cycles of time.  It also puts one data point in the results summary that is basically an optimistic execution showing at potential overload what the avg tps looks like.
2022-10-26 13:52:23 -05:00
Peter Oschwald a925c90fcb Performance Test Long Duration Tests now use linearly decrementing search instead of binary search.
This avoids a problem where the long running test max is outside the window previously dictated for binary search and incorrectly reporting LongRunningMaxTpsAchieved = 0.  Long Running max TPS should always be <= short running max tps, thus linearly decrementing search works well for this case.
2022-10-26 13:49:36 -05:00
Kevin Heifner 88a7d105a5 Merge remote-tracking branch 'origin/release/3.2' into GH-290-expired-dedup-main 2022-10-26 12:53:07 -05:00
Kevin Heifner 090bb3b84a Merge pull request #389 from AntelopeIO/GH-290-expired-dedup-3.2
[3.1 -> 3.2] Clear expired transactions before snapshot and integrity hash
2022-10-26 12:52:52 -05:00
Peter Oschwald 8943e61e92 Merge pull request #387 from AntelopeIO/ph-test-updates
[PH] Perf Harness test updates
2022-10-26 12:27:18 -05:00
Peter Oschwald f2cbb7a45c Merge pull request #385 from AntelopeIO/ph-config-prod-trace-api
[PH] Add ability to configure whether producer nodes enable trace api plugin
2022-10-26 12:27:01 -05:00
ClaytonCalabrese a4725084f7 Merge pull request #388 from AntelopeIO/3_2_trx_dropped_high_traffic_warn
[3.2 -> main] Warning message for trx being dropped due to high traffic
2022-10-26 11:18:37 -05:00
Kevin Heifner 14e8744a16 Merge remote-tracking branch 'origin/release/3.1' into GH-290-expired-dedup-3.2 2022-10-26 10:45:31 -05:00
Kevin Heifner 8949432a55 Merge branch 'main' into 3_2_trx_dropped_high_traffic_warn 2022-10-26 10:38:27 -05:00
Peter Oschwald f2e88d4867 Include testAnalysisBlockCnt in search scenario summary.
Update documenation.
2022-10-26 10:32:30 -05:00
Peter Oschwald d72cd0cf80 Update default test durations to something higher for more reasonable block count to analyze 2022-10-26 09:35:41 -05:00
Peter Oschwald f4b7ab20c3 Correct documentation and help strings to correctly identify keosd. 2022-10-26 09:06:49 -05:00
Peter Oschwald 097e64e476 Correct documentation on transfers. 2022-10-26 09:06:06 -05:00
Peter Oschwald 3e902f46ed Merge pull request #361 from AntelopeIO/ph-quiet-reporting
[PH] Add option to quiet reporting from performance tests.
2022-10-26 08:44:17 -05:00
Peter Oschwald 68ee2eac5c Update to dynamically calculate validation node id.
This allows minimal initial support for dynamic configuration of the cluster via -p and -n arguments

Always guarantee one validation node is present by keeping _totalNodes always at least 1 greater than pnodes.
2022-10-26 08:42:43 -05:00
Peter Oschwald 2da71f44ad Merge branch 'feature_performance_harness' into ph-quiet-reporting 2022-10-26 07:47:37 -05:00
Peter Oschwald fe596e7613 Merge pull request #360 from AntelopeIO/ph-report-start-end-times
[PH] Report start end times for tests
2022-10-26 07:43:50 -05:00
Jonathan Giszczak f2aae03434 Assign network port numbers correctly.
Start using the config directory.
Prefer pathlib rather than os.path.
Replace port of C++ version of make_line with Pythonic make_line.
2022-10-26 01:01:58 -05:00
ClaytonCalabrese e512ae876f Merge pull request #384 from AntelopeIO/3_1_trx_dropped_high_traffic_warning
[3.1 -> 3.2] Warning message for trx being dropped due to high traffic
2022-10-25 23:21:31 -05:00
Peter Oschwald 59a7a1658f Update docs for new feature arguments. 2022-10-25 22:14:17 -05:00
Peter Oschwald bd95fbc845 Fix initialization of node ids to be earlier for use in create accounts. 2022-10-25 22:08:27 -05:00
Peter Oschwald 34e5857866 Use same time for testStart and timestamp for test logs dir. 2022-10-25 22:01:57 -05:00
Peter Oschwald 5ffdb64ab1 Use same time for testStart and timestamp for test logs dir. 2022-10-25 21:51:37 -05:00
Peter Oschwald 38f4076c8f Define the node id for the validation node in the test to reuse throughout. 2022-10-25 19:01:50 -05:00
Peter Oschwald 8ade49c7f8 Use dict (report) and datetime (testStart, testFinish) types as long as possible. Only convert to str or json at the last moment when required. 2022-10-25 18:42:06 -05:00
Kevin Heifner 8ef7391c59 Merge branch 'release/3.2' into 3_1_trx_dropped_high_traffic_warning 2022-10-25 18:04:39 -05:00
Peter Oschwald 458e2a118c Update boolean command line arguments to use add_bool.
Fixes issue where using a boolean type command line argument specifying False on the command line is actually interpreted as True.
2022-10-25 17:08:07 -05:00
Peter Oschwald 35e689dc38 Fix loggingDict to be an instance field. 2022-10-25 17:06:17 -05:00
Peter Oschwald 0bcd49e192 Fix spelling. 2022-10-25 17:05:02 -05:00
Peter Oschwald 705d030125 Add feature to enable/disable trace_api_plugin on producer nodes.
When disabling trace_api_plugin on producer nodes, can make use of specificExtraNodeosArgs to enable trace_api_plugin on specific nodes.

Default enable trace_api_plugin on bios node in eosio-launcher.

Allow Cluster createAccounts to specify which node is used to validate the transactions, as a node with trace_api_plugin enabled is required.
2022-10-25 17:04:34 -05:00
Luis Paris c2d07777bb Merge pull request #381 from AntelopeIO/fix-devrel#71-main
[3.2 -> main] Curate eos.io refs and remove unused doc metadata [docs]
2022-10-25 11:02:49 -04:00
Luis ff7f7ea49e Merge branch 'release/3.2' into fix-devrel#71-main 2022-10-25 10:23:54 -04:00
Zach ca8017529d Merge pull request #375 from AntelopeIO/zach-gh-132-build-instructions
Complete Build Instructions + Other README Updates
2022-10-25 10:21:05 -04:00
Lin Huang d3e857e8c8 Merge pull request #376 from AntelopeIO/update_libfc_path
[ main ] update libfc path in EosioTesterBuild.cmake.in for building integration tests in CDT and System Contracts
2022-10-25 10:19:12 -04:00
Luis Paris 1476c1fdc8 Merge pull request #373 from AntelopeIO/fix-devrel#71-3.2
[3.1 -> 3.2] Curate eos.io refs and remove unused doc metadata [docs]
2022-10-24 22:22:47 -04:00
Zach Butler d45e97b5d1 Fix missing quotes 2022-10-24 18:23:51 -04:00
Lin Huang 6e4e403597 update libfc path in EosioTesterBuild.cmake.in for building tests in CDT and System Contracts 2022-10-24 18:22:02 -04:00
Zach Butler 2d65bf203e Remove pkg-config, it was also not here 2022-10-24 18:21:16 -04:00
Zach Butler f10f289b08 Remove libusb from dependencies, it was not included here 2022-10-24 18:19:45 -04:00
Zach Butler 65f5209e97 Remove libcurl from list of dependencies, it was not mentioned on main 2022-10-24 18:19:11 -04:00
Zach Butler d372c2e94f Update permalinks in docs to point at main 2022-10-24 18:15:10 -04:00
Zach Butler cb225377ac Merge commit 'a72f98072878e2ba7cf8ed807cb01e2bd5f9e328' into zach-gh-132-build-instructions 2022-10-24 18:14:09 -04:00
Luis Paris b4b029d189 Merge pull request #358 from AntelopeIO/fix-devrel#71-3.1
[3.1] Curate eos.io refs and remove unused doc metadata [docs]
2022-10-24 15:52:26 -04:00
Luis 91edd31d9f fix project name and number in eos.doxygen.in :doc 2022-10-24 15:49:10 -04:00
Luis 153ad0d84b Revert "replace eosio.version.in with leap.version.in :doc"
Reverting this commit and moving it to a separate PR for `main` only.

This reverts commit 3d2a856422.
2022-10-24 15:48:53 -04:00
Luis efdbb176e5 replace eos.io with antelope.io in eos.doxyfile.in :doc 2022-10-24 15:46:57 -04:00
Luis 9fc59835eb remove old docs.json file, not used anymore :doc 2022-10-24 15:46:57 -04:00
Luis 9d52949b37 replace eosio.version.in with leap.version.in :doc 2022-10-24 15:46:57 -04:00
Luis 6292407a59 update or add plugin description in yaml files :doc 2022-10-24 15:46:57 -04:00
Zach a72f980728 Merge pull request #372 from AntelopeIO/zach-gh-132-build-instructions-3.2
3.2 - Complete Build Instructions + Other README Updates
2022-10-24 14:39:19 -04:00
Zach Butler 39a6347310 Fix hyperlinks for new release 2022-10-24 14:07:23 -04:00
Zach Butler 6015686b31 Merge commit '8edc3f1fc6ba25c54e82181e26e66044224778aa' into zach-gh-132-build-instructions-3.2 2022-10-24 13:51:44 -04:00
766C6164 0e6b4e969d Changed default error handler to print help 2022-10-24 12:46:36 -04:00
Jonathan Giszczak 122a7ae43b Add additional command line arguments to support custom config dir
Add some default values.
Calculated p2p and http port sequence not working right still.
2022-10-24 10:47:59 -05:00
Kevin Heifner c4d4562121 Merge pull request #369 from AntelopeIO/GH-291-replay-opt-main
[3.2 -> main] Remove replay optimization that skips recording transactions in dedup list
2022-10-22 08:35:48 -05:00
Kevin Heifner 1aa9995e79 Merge remote-tracking branch 'origin/release/3.2' into GH-291-replay-opt-main 2022-10-21 17:25:52 -05:00
Kevin Heifner ccb509fedd Merge pull request #365 from AntelopeIO/GH-291-replay-opt-3.2
[3.1 -> 3.2] Remove replay optimization that skips recording transactions in dedup list
2022-10-21 17:25:32 -05:00
Chris Gundlach 81495ef1fd fix problem where empty string was returned; made stats its own struct 2022-10-21 12:56:03 -05:00
Chris Gundlach 1735247897 refactored based on review comments 2022-10-21 10:55:14 -05:00
Vlad 94fe8787f9 Merge pull request #362 from AntelopeIO/leap-util-blocklog-updates
[3.2 -> main] Leap util blocklog updates
2022-10-21 10:17:00 -04:00
Kevin Heifner 7caf43059a Merge remote-tracking branch 'origin/release/3.1' into release/3.2 2022-10-21 08:36:13 -05:00
Peter Oschwald 395516e144 Merge pull request #352 from AntelopeIO/ph-docs
[PH] Performance Harness MVP Documentation
2022-10-20 12:35:26 -05:00
766C6164 3a802a50a8 Merge branch 'release/3.2' into leap-util-blocklog-updates 2022-10-20 13:17:53 -04:00
Vlad 8ef4d9ae63 Merge pull request #327 from AntelopeIO/block-log-refactoring-32
[3.2] Block-log leap-util subcommand refactoring
2022-10-20 13:02:54 -04:00
Peter Oschwald df911b7070 Add option to quiet reporting from performance tests.
Provide option in both Performance Harness and basic test.

Update docs to reflect argument addition
2022-10-20 11:55:50 -05:00
Peter Oschwald 7dc550c6f9 Add start and end times to test reports.
Updated report examples to include start and end times. Cleaned up some of the report formatting.

Updated timestamped log directories to be in UTC so that all timestamps are easier to trace back to log files and timestamps therein.
2022-10-20 10:41:20 -05:00
766C6164 120b8a218f Generalize initialization 2022-10-20 11:31:13 -04:00
Peter Oschwald 7a11caa408 Addressing additional peer review comments. 2022-10-20 07:57:04 -05:00
Peter Oschwald 1ffe1ccf0e Update build and test instructions in README for additional python dependencies for Performance Harness. 2022-10-19 16:39:22 -05:00
Peter Oschwald f7aff36f34 Addressing peer review comments. 2022-10-19 16:32:14 -05:00
Peter Oschwald b641304b5c Addressing peer review comments. 2022-10-19 16:28:07 -05:00
Peter Oschwald e96ea2af60 Added Transaction Generator README 2022-10-19 15:22:01 -05:00
Peter Oschwald 2de701f7d2 Additional details and clarifications. 2022-10-19 14:53:14 -05:00
Kevin Heifner a64414ba8e Merge pull request #334 from AntelopeIO/GH-191-ship-start
[4.0] SHiP: Store initial chain state on startup if state_history_plugin chain state log is empty
2022-10-19 14:28:33 -05:00
Peter Oschwald c4120f1807 Begin to document Performance Harness in README 2022-10-19 12:04:48 -05:00
Peter Oschwald 9a28459655 Merge branch 'main' into feature_performance_harness 2022-10-19 08:51:59 -05:00
Peter Oschwald c080290778 Merge pull request #302 from AntelopeIO/ph-runner
[PH] TPS Scenario Runner
2022-10-19 07:44:40 -05:00
Peter Oschwald fc5a91e8b2 Use standard library function to same effect. 2022-10-19 07:16:36 -05:00
ClaytonCalabrese 01589aa80d Merge pull request #314 from AntelopeIO/performance_harness_waitOnBlockTransactions
[PH] Add method to wait and check blocks for transactions
2022-10-18 17:24:11 -05:00
Peter Oschwald 97711cb482 Simplify loop condition as well as fixup binary search algorithm a bit. 2022-10-18 16:26:52 -05:00
Kevin Heifner 6500d09c6f Merge pull request #349 from AntelopeIO/GH-346-log-main
[3.2 -> main] SHiP Fix log output
2022-10-18 16:16:38 -05:00
Kevin Heifner 4a72240b32 Merge remote-tracking branch 'origin/release/3.2' into GH-346-log-main 2022-10-18 14:05:55 -05:00
Kevin Heifner 316c0d5859 Merge pull request #348 from AntelopeIO/GH-346-log-3.2
[3.1 -> 3.2] SHiP Fix log output
2022-10-18 14:05:40 -05:00
Clayton Calabrese c0ddbf9176 refactor maxFutureBlocks in waitForTransactionsInBlockRange 2022-10-18 13:20:01 -05:00
Kevin Heifner 5dc6da40ea Merge remote-tracking branch 'origin/release/3.1' into GH-346-log-3.2 2022-10-18 12:35:27 -05:00
Peter Oschwald dab4422fa0 Address peer review comment. Use dictionary comprehension. 2022-10-18 11:38:25 -05:00
Peter Oschwald d45d5b0551 Address peer review comments. Use local helper functions to alleviate need for duplicate code. 2022-10-18 11:37:29 -05:00
Clayton Calabrese 8471ed7d9d rename some variables so that waitForTransactionsInBlockRange reads easier 2022-10-17 17:02:26 -05:00
Jonathan Giszczak 21e342fc80 Revert to generic python3 in shebang.
Make sure nodeDefinition name is initialized.
Use sensible default values that align with minimum network topology.
Default make_line to making a ring to match original behavior.
Remove extraneous line.
2022-10-17 16:34:14 -05:00
Kevin Heifner 86093fb892 Merge pull request #339 from AntelopeIO/GH-252-api-test-main
[3.2 -> main] Test fix: api_tests checktime_pause_block_deadline_not_extended_test
2022-10-17 13:17:14 -05:00
Peter Oschwald 84c2732bf3 Merge branch 'feature_performance_harness' into ph-runner 2022-10-17 13:15:10 -05:00
Kevin Heifner 23f7cc47c4 Merge remote-tracking branch 'origin/release/3.2' into GH-252-api-test-main 2022-10-17 12:35:01 -05:00
Kevin Heifner 8a94b88d32 Merge pull request #338 from AntelopeIO/GH-252-api-test-3.2
[3.1 -> 3.2] Test fix: api_tests checktime_pause_block_deadline_not_extended_test
2022-10-17 12:34:37 -05:00
Kevin Heifner 4890d44339 Merge pull request #337 from AntelopeIO/GH-324-http-json-main
[3.2 -> main] Return application/json for all http responses including errors
2022-10-17 12:27:26 -05:00
Kevin Heifner a7bc33b939 Merge remote-tracking branch 'origin/release/3.1' into GH-252-api-test-3.2 2022-10-17 12:00:52 -05:00
Kevin Heifner 9916ba70ea Merge remote-tracking branch 'origin/release/3.2' into GH-324-http-json-main 2022-10-17 11:55:25 -05:00
Kevin Heifner 9da843f749 Merge pull request #326 from AntelopeIO/GH-324-http-json-3.2
[3.2] Return application/json for all http responses including errors
2022-10-17 11:55:12 -05:00
Kevin Heifner 7db26d8cb7 Merge pull request #336 from AntelopeIO/GH-251-forked-test-main
[3.2 -> main] Test fix: nodeos_forked_chain_lr_test
2022-10-17 11:53:50 -05:00
Kevin Heifner 665c70e56e Merge remote-tracking branch 'origin/release/3.2' into GH-251-forked-test-main 2022-10-17 10:57:00 -05:00
Kevin Heifner fa5bcff358 Merge pull request #335 from AntelopeIO/GH-251-forked-test-3.2
[3.1 -> 3.2] Test fix: nodeos_forked_chain_lr_test
2022-10-17 10:56:26 -05:00
Kevin Heifner 5f99b993cd Merge pull request #321 from AntelopeIO/GH-312-log-main
[3.2 -> main] Update produced block log output.
2022-10-17 10:49:40 -05:00
ClaytonCalabrese deb1fe13bc Merge pull request #304 from AntelopeIO/performance_harness_additional_logging
[PH] Add some additional parameters to performance harness output
2022-10-17 10:37:39 -05:00
Kevin Heifner f27a3fdc44 Merge remote-tracking branch 'origin/release/3.1' into GH-251-forked-test-3.2 2022-10-17 10:23:11 -05:00
Kevin Heifner 4bbc139630 GH-191 Store initial chain state on startup if chain state log is empty. 2022-10-17 09:37:22 -05:00
Chris Gundlach b6e93df693 added pull functionality 2022-10-17 09:09:04 -05:00
Jonathan Giszczak 5ec19e70dc Add data classes, populators, and topology generators 2022-10-17 01:50:33 -05:00
766C6164 2683386aa5 Cleanup 2022-10-14 16:08:29 -04:00
766C6164 ca93161f2f Added print-log, unified subcommand handlers 2022-10-14 16:08:29 -04:00
766C6164 fd1b3c81ad Refactoring of block-log subcommand 2022-10-14 16:08:29 -04:00
Kevin Heifner a3ed3feb2c GH-324 Always return json, not an empty body. 2022-10-14 14:31:33 -05:00
Kevin Heifner 88812e5257 GH-324 Revert to 3.1 behavior of always returning http application/json for everything including all errors. 2022-10-14 14:23:19 -05:00
Peter Oschwald 7e9117ec2f Cleanup & Organized imports and from imports. 2022-10-13 21:37:47 -05:00
Clayton Calabrese 4ea4f5c976 update waitOnBlockTransactions based off PR feedback. Fix a number of bugs in it. 2022-10-13 18:27:58 -05:00
Kevin Heifner 28bf15af35 Merge remote-tracking branch 'origin/release/3.2' into GH-312-log-main 2022-10-13 17:54:29 -05:00
Kevin Heifner 5100f44b46 Merge pull request #313 from AntelopeIO/GH-312-log
[3.2] Update produced block log output.
2022-10-13 17:54:00 -05:00
Clayton Calabrese 4c7ca0337d remove uncessecary imports from log_reader.py 2022-10-13 17:05:12 -05:00
Peter Oschwald b78f465a7b Report env and nodeos version. 2022-10-13 09:12:44 -05:00
Peter Oschwald 73e4b846f1 Fix edge case in search algorithm causing infinite test loop. 2022-10-13 08:07:43 -05:00
Peter Oschwald 9d5e0f2c35 Fix log dir cleanup to honor save json reports.
Previously, if not specifying --keep-logs, the reports would be deleted along with the logs. Now honor the --save-json and new --save-test-json parameters such that logs may all be deleted by json reports saved.

Introduced new --save-test-json argument to dictate whether to save json reports from each test scenario.
2022-10-12 15:49:26 -05:00
Peter Oschwald 35ff3091c3 Updates from peer review.
Update granularity of TPS values during search and max reporting to be nearest 100.

Update default min step size to 500.

Update binary search algorithm to keep floor and ceiling values at expected precision granularity (100).

Keep min step size the same for long running search scenario.
2022-10-12 15:46:33 -05:00
Clayton Calabrese 8a832b0f99 Add function that takes a list of transactions and examines a number of blocks to find those transactions. 2022-10-11 20:39:44 -05:00
Peter Oschwald 021307f035 Add performance_test.py to run performance basic test scenarios to determine max TPS and report results.
Performance Test runs a binary search of the TPS space using short runs to determine an effective TPS max. Then runs a series of longer test runs once it has zeroed in on a test range around the discovered max tps. Currently it determines success based on a very rudimentary success criteria looking at avg tps being close to target as well as all trxs sent being accounted for in blocks.

Update performance_test_basic.py to allow specification of a root directory for the logs to be stored in. Remove duplicate saveJsonReport in report in args. Move analyzedResultsAndReport before the shutdown sequence so that it will work if keep-logs is false, as it needs the logs to compute. Move test assert out of the test run itself so that when used as in import module the test doesn't assert and exit.
2022-10-11 16:41:58 -05:00
Kevin Heifner 50a662db4b GH-312 Add if for receipt 2022-10-11 11:51:34 -05:00
Kevin Heifner ddd135bf22 GH-312 Add total elapsed and total time to received block log output.
Updated scheduled transaction trace elapsed to include more of the execution time.
Renamed produced block log output conf to confirmed to match received block log output.
2022-10-11 11:39:51 -05:00
Christopher Gundlach bb86490614 Merge pull request #311 from AntelopeIO/prometheus_cpp_submodule
Add prometheus-cpp as a submodule
2022-10-11 10:10:15 -05:00
Chris Gundlach cc81f9e137 updated prometheus_plugin not to use submodule library version 2022-10-10 15:46:38 -05:00
Chris Gundlach cf1ca0678b added prometheus-cpp files to prometheus-core lib 2022-10-10 15:25:21 -05:00
Chris Gundlach 3c5561dd70 removed ported files 2022-10-10 15:18:01 -05:00
Chris Gundlach 0881ece722 added prometheus-cpp as submodule 2022-10-10 15:10:00 -05:00
Kevin Heifner 815189eba8 Merge pull request #309 from AntelopeIO/GH-274-test-main
[3.2 -> main] Test fix: trx_finality_status_forked_test.py
2022-10-10 09:53:43 -05:00
Kevin Heifner d8b3167498 Merge remote-tracking branch 'origin/release/3.2' into GH-274-test-main 2022-10-10 09:23:00 -05:00
Kevin Heifner fcfe827615 Merge pull request #308 from AntelopeIO/GH-274-test-3.2
[3.1 -> 3.2] Test fix: trx_finality_status_forked_test.py
2022-10-10 09:21:55 -05:00
Kevin Heifner 4f03913543 Merge remote-tracking branch 'origin/release/3.1' into GH-274-test-3.2 2022-10-10 08:52:52 -05:00
Matt Witherspoon c877b1e78b Merge pull request #278 from AntelopeIO/remove_login_plugin
[4.0] remove login_plugin
2022-10-07 19:24:58 -04:00
Matt Witherspoon 81c088f567 Merge pull request #306 from AntelopeIO/remove_yubihsm_take2
[4.0] remove YubiHSM support from keosd
2022-10-07 17:28:15 -04:00
Matt Witherspoon f4f5d1814d remove global OPENSSL_API_COMPAT & OPENSSL_NO_DEPRECATED defs 2022-10-07 16:57:10 -04:00
Matt Witherspoon 3c56203544 remove YubiHSM support from keosd 2022-10-07 16:56:00 -04:00
Peter Oschwald 11179c7642 Fix up formatting to break up long lines. 2022-10-07 08:54:30 -05:00
Clayton Calabrese 286ef417da print some additional parameters in performance harness 2022-10-06 19:58:38 -05:00
Lin Huang 2b9a2a87f8 Merge pull request #303 from AntelopeIO/merge_3_2_version
[3.2 -> main] Merge version bump of 3.2.0-rc1
2022-10-06 17:51:38 -04:00
Lin Huang 714a0a929a merge version bump of 3.2.0-rc1 2022-10-06 17:14:50 -04:00
Lin Huang 05fda58d33 Merge pull request #301 from AntelopeIO/bump_3_2_0_rc1
[3.2] bump Leap to 3.2.0-rc1
2022-10-06 17:05:36 -04:00
Peter Oschwald cb4e466bdc Rework performance_test_basic.py to work as an import module and as a script.
This was necessary as a first step to being able to use this functionality as an import module for an orchestrator to run multiple instances of PerformanceTestBasic with different tps configurations.

Some rework to how args are handled in the report.  When run as an import module, command line args won't be the same or available.  Get args/config info from how the PerformanceTestBasic was configured instead.

Created TestHelperConfig and ClusterConfig objects to help simplify and separate concerns for all the parameters to the test.
2022-10-06 16:01:59 -05:00
Lin Huang 9077f9bbe2 bump Leap to 3.2.0-rc1 2022-10-06 16:35:18 -04:00
Lin Huang c1f8889088 Merge pull request #300 from AntelopeIO/bump_4_0_0
[4.0] bump Leap version to 4.0.0-dev
2022-10-06 16:13:27 -04:00
Lin Huang b0c409a2f8 bump Leap to 4.0.0-dev 2022-10-06 15:18:00 -04:00
ClaytonCalabrese dc13e7271d Merge pull request #289 from AntelopeIO/waitForTransactionsInBlock
[4.0] add waitForTransactionsInBlock
2022-10-06 10:46:23 -05:00
Lin Huang 60cedbc26b Merge pull request #292 from AntelopeIO/merge_bump_version_3_1_2
[3.1 -> main] merge changes of bumping version release/3.1.2
2022-10-06 11:29:46 -04:00
Chris Gundlach 30f69ec758 Merge branch 'feature_prometheus_plugin' of https://github.com/AntelopeIO/leap into feature_prometheus_plugin 2022-10-06 10:28:32 -05:00
Chris Gundlach c673e984b0 Merge branch 'main' into feature_prometheus_plugin 2022-10-06 10:26:07 -05:00
Lin Huang e11e7dddca keep version on main as 3.2.0-dev 2022-10-05 20:47:35 -04:00
Clayton Calabrese 7f017d5590 change name of waitForTransInBlock and add waitForTransactionsInBlock which takes multiple transactions 2022-10-05 16:19:26 -05:00
Peter Oschwald 94c6fd6f2c Merge branch 'main' into feature_performance_harness 2022-10-05 13:50:18 -05:00
Lin Huang a8d48d4060 Merge pull request #287 from AntelopeIO/bump_abieos_version
[3.2] bump abieos submodule to branch with warning fixes
2022-10-05 14:10:41 -04:00
Lin Huang 0c6ea09caf bump abieos submodule to branch with warning fixes 2022-10-05 13:40:21 -04:00
Peter Oschwald ee30a6872a Merge pull request #285 from AntelopeIO/ph-addl-trx-stats
[PH] Add support for calculating and reporting individual transaction CPU and net time
2022-10-05 11:07:55 -05:00
Peter Oschwald 2eb7b36542 Merge pull request #267 from AntelopeIO/ph-trx-latency
[PH] Calculate & Report Transaction Latency Stats
2022-10-05 11:07:33 -05:00
Peter Oschwald 384efd1f28 Merge branch 'feature_performance_harness' into ph-trx-latency 2022-10-05 11:05:55 -05:00
ClaytonCalabrese 0f51325e89 Merge pull request #261 from AntelopeIO/performance_harness_per_node_logging
[PH] Cluster: Node Specific Logging Levels
2022-10-05 09:36:55 -05:00
Peter Oschwald 23fc3b7fd4 Calculatue trx cpu and net stats and add to report. 2022-10-05 09:26:21 -05:00
Peter Oschwald 05024c3305 Move canonical handling of logs to calculate stats and create a performance report into one location in log_reader.py. 2022-10-05 08:57:38 -05:00
Peter Oschwald 344a30f9b7 Remove sleep. Vestige of earlier dev testing. 2022-10-05 08:13:52 -05:00
Peter Oschwald e873a074e0 Updates to better structure log dirs and make compatible with read_log_data.py
Move dataclasses and log scraping out of performance_test_basic.py into log_reader.py

Update read_log_data.py to properly calc trx latency as well as fix its ability to create the report from logs.

Update blkData to also use @property decorator

Write intermediate block data and trx data to log files to support read_log_data.py

Provide better log directory structure, setup and cleanup, and keep-logs support.

Move --num-blocks-to-prune into a CL argument to the script.

Fix timestamp for older versions of Python by not using fromisoformat and using strptime instead
2022-10-04 17:21:32 -05:00
Areg Hayrapetian edbaedb989 Merge pull request #150 from AntelopeIO/leap-util
Build framework for leap-util
2022-10-04 11:19:03 -07:00
Lin Huang 28f8ac1704 Merge pull request #263 from AntelopeIO/reenable_warning_softfloat_wasmjit
[3.2] reenable warnings for softfloat and wasm-jit, and fix a warning in wasm-jit
2022-10-04 13:26:00 -04:00
Lin Huang c5543ffbc0 Merge branch 'main' into reenable_warning_softfloat_wasmjit 2022-10-04 12:58:48 -04:00
Matt Witherspoon f4227f6179 Merge pull request #277 from AntelopeIO/init_slice_index_header
[3.2] initialize slice_directory::index_header::version
2022-10-04 11:35:16 -04:00
Kevin Heifner 5dc9667ddf Merge pull request #275 from AntelopeIO/mandel-301
[3.1 -> main] Fix replay to correctly add trxs into the de-dup list
2022-10-04 08:02:15 -05:00
Matt Witherspoon f8e297943f initialize slice_directory::index_header::version 2022-10-03 23:07:25 -04:00
Matt Witherspoon 050dbd82f7 remove login_plugin 2022-10-03 23:04:41 -04:00
Lin Huang 5889037854 fix indentation 2022-10-03 22:23:12 -04:00
766C6164 94bee32151 Initialize all subcommands flags to false 2022-10-03 15:27:33 -04:00
Clayton Calabrese 260bfa9563 adress pr comments to change how space stripping works, and give an example for logging-level-map in help. 2022-10-03 13:49:08 -05:00
Peter Oschwald 504638416b Log total trx sent when reporting number lost 2022-10-03 13:46:20 -05:00
Peter Oschwald fa2c4145b6 Don't log all the transactions if not found. Simply notify of total. 2022-10-03 13:32:40 -05:00
Peter Oschwald 40305a544c Peer review comments. 2022-10-03 12:59:16 -05:00
Kevin Heifner 631b3bf914 Merge pull request #270 from AntelopeIO/GH-231-log-dup
[3.2] Do not log or subjective bill for duplicate trxs
2022-10-03 12:08:47 -05:00
Kevin Heifner d0874b1011 Merge remote-tracking branch 'origin/release/3.1' into mandel-301 2022-10-03 12:06:02 -05:00
Peter Oschwald f7d5ec955a Address peer review comments. 2022-10-03 10:55:46 -05:00
Lin Huang 88266e4a79 Merge pull request #272 from AntelopeIO/update_libff_version
[3.2] update libff submodule to branch with warning fixes
2022-10-03 10:08:51 -04:00
Kevin Heifner 3b1f748bb9 Merge pull request #269 from AntelopeIO/kill-warn
[3.2] Fix some clang warnings
2022-10-03 08:46:36 -05:00
Lin Huang e288d80030 update libff submodule to branch with warning fixes 2022-10-03 09:35:34 -04:00
Lin Huang bf24a0c9f5 Merge branch 'reenable_warning_softfloat_wasmjit' of https://github.com/AntelopeIO/leap into reenable_warning_softfloat_wasmjit 2022-10-02 13:53:54 -04:00
Lin Huang 173d4077d2 add back a statement accidentally removed by commit 60e0ad1ec2 2022-10-02 13:52:42 -04:00
Lin Huang 8939ff9b0f Merge branch 'main' into reenable_warning_softfloat_wasmjit 2022-10-02 09:38:24 -04:00
Lin Huang 60e0ad1ec2 remove _DEBUG and related code
dumpNFAGraphViz and dumpDFAGraphViz are only used in _DEBUG mode.
But _DEBUG will never be used. Remove them for simpler code and one fewer warning
2022-10-02 09:37:53 -04:00
Kevin Heifner d5df14df11 GH-231 Do not log or subjective bill for duplicate trxs 2022-10-01 10:33:52 -05:00
Kevin Heifner 57338c0979 Fix some warnings 2022-10-01 10:10:48 -05:00
Peter Oschwald e19956d89e Calculate trx latency stats. 2022-09-30 18:10:04 -05:00
Peter Oschwald 3595e228a9 Log trx provider's sent transactions and timestamps to new log directory.
Setup, manage, and cleanup log directory for test.
2022-09-30 18:07:29 -05:00
Lin Huang 44fdec7885 Merge pull request #265 from AntelopeIO/bump_softfloat_version
[3.2] bump softfloat submodule to branch with warning fixes
2022-09-30 15:32:59 -04:00
Lin Huang 81afb58554 bump softfloat submodule to branch with warning fixes 2022-09-30 15:01:20 -04:00
766C6164 94749d14d4 install path fix 2022-09-30 13:18:46 -04:00
Clayton Calabrese 682ad39205 revert expectations change due for performance_test_basic, as it was already handled in cmake 2022-09-30 10:17:09 -05:00
Clayton Calabrese 14886933ba adjust test expectations until missing transactions are resolved. 2022-09-30 10:07:55 -05:00
766C6164 294fa457f5 +=constraint for sc 2022-09-30 10:52:55 -04:00
766C6164 efd953406a Cleaned-up some of block-log stuff 2022-09-30 10:47:02 -04:00
Lin Huang 3b83c1b835 reenable warnings for softfloat and wasm-jit, and fix a warning in wasm-jit 2022-09-30 10:10:17 -04:00
766C6164 d198de9ce6 Ditched ilog, added constraints 2022-09-30 10:05:37 -04:00
766C6164 bb462ef789 Replaced hardcoded leap-util name with var 2022-09-30 09:44:16 -04:00
766C6164 90ce207393 Addressing feedback, part one 2022-09-30 09:39:52 -04:00
Lin Huang ced3542da5 Merge pull request #262 from AntelopeIO/fix_warnings
[3.2] more compiler warnings cleanup
2022-09-29 20:52:18 -04:00
Lin Huang 17aada579e Merge branch 'main' into fix_warnings 2022-09-29 20:22:45 -04:00
Kevin Heifner 908cc0e516 Merge pull request #222 from AntelopeIO/GH-209-log-doc
[3.2] Add information about log levels [docs]
2022-09-29 18:38:31 -05:00
Lin Huang c0a20305d0 remove bad_alloc from FC_LOG_AND_DROP; use __builtin_unreachable to surpress warning in elliptic_webauthn.cpp to aviod potentially breaking consensus 2022-09-29 18:53:39 -04:00
Clayton Calabrese 4835a0494d Merge branch 'feature_performance_harness' into performance_harness_per_node_logging 2022-09-29 16:34:33 -05:00
Lin Huang 3a95707e6f more compiler warnings cleanup 2022-09-29 16:02:00 -04:00
Christopher Gundlach 26b8e59066 Merge pull request #258 from AntelopeIO/add_prometheus_library
Add Prometheus Library
2022-09-29 14:57:33 -05:00
Clayton Calabrese c5b07a3b18 allow node specific customization of logging levels via cluster 2022-09-29 14:52:40 -05:00
Chris Gundlach b8b0e75513 removed PROMETHEUS_INSTALL_COMPONENT 2022-09-29 12:05:43 -05:00
Chris Gundlach 472ccc3929 took out cmake cruft 2022-09-29 12:01:36 -05:00
Chris Gundlach b16ed1de3b Merge branch 'main' into feature_prometheus_plugin 2022-09-29 10:22:19 -05:00
Chris Gundlach 167f9216be updated prometheus_plugin to be dependent on prometheus library 2022-09-29 10:14:14 -05:00
Chris Gundlach 1a9de428cb added prometheus library 2022-09-29 10:13:13 -05:00
Peter Oschwald bb50177fd4 Merge branch 'main' into feature_performance_harness 2022-09-29 10:10:53 -05:00
Luis 2f201f4590 split log level info into bullets and minor edits :doc 2022-09-29 11:09:50 -04:00
Luis 0c203a7c14 make first sentence summary for each log level :doc 2022-09-29 10:49:30 -04:00
Luis 873c2b9dc1 remove line wraps, no need for docs :doc 2022-09-29 10:11:51 -04:00
Matt Witherspoon 24b23ab3b9 Merge pull request #255 from AntelopeIO/more_db_load_write_log_context
[3.2] add more context to chainbase logging during loading and writing in heap or locked more
2022-09-28 18:44:18 -04:00
Matt Witherspoon ef9ea24769 bump chainbase submod to main with more log context on load/write 2022-09-28 18:23:43 -04:00
Matt Witherspoon 6ee33c23e4 bump chainbase submod to branch with more log context on load/write 2022-09-28 16:30:39 -04:00
Lin Huang 2001477110 Merge pull request #253 from AntelopeIO/fix_secp256k1_warnings
[3.2] disable unused-function warning in secp256k1
2022-09-28 15:36:03 -04:00
Lin Huang 36ff69f941 disable unused-function warning in secp256k1 2022-09-28 14:49:38 -04:00
Peter Oschwald b5d19148ee Merge branch 'main' into feature_performance_harness 2022-09-28 13:10:12 -05:00
ClaytonCalabrese b172da3f66 Merge pull request #213 from AntelopeIO/performance_harness_multiple_generators
[PH] Performance harness multiple generators
2022-09-28 13:02:36 -05:00
Kevin Heifner 4ce9a8ce60 Merge pull request #250 from AntelopeIO/GH-228-keosd
[3.1 -> main] Increase keosd http-max-response-time-ms for tests
2022-09-28 10:10:48 -05:00
Matt Witherspoon fad7891100 Merge pull request #246 from AntelopeIO/pkgconfig_crypto_mac
[3.2] manually set PKG_CONFIG_PATH for openssl on macOS
2022-09-28 11:04:30 -04:00
Kevin Heifner 5cce2cc12f Merge remote-tracking branch 'origin/release/3.1' into GH-228-keosd 2022-09-28 09:07:52 -05:00
Kevin Heifner 81f016bbfc Merge pull request #248 from AntelopeIO/GH-229-warn
[3.1 -> main] Remove #pragma(s) to ignore warnings
2022-09-28 09:06:03 -05:00
Peter Oschwald da66222b92 Merge branch 'feature_performance_harness' into performance_harness_multiple_generators 2022-09-28 07:50:47 -05:00
Kevin Heifner 3011a2b2c5 GH-229 Remove additional unused variables in 3.2 2022-09-28 07:05:26 -05:00
Kevin Heifner 5153211f6e Merge remote-tracking branch 'origin/release/3.1' into GH-229-warn 2022-09-28 07:00:17 -05:00
Matt Witherspoon 70129af847 manually set PKG_CONFIG_PATH for openssl on macOS 2022-09-27 21:39:19 -04:00
Matt Witherspoon bf1f40a4f5 Merge pull request #243 from AntelopeIO/remove_alt_k1_impls
[3.2] remove old, unused, and currently broken alternate k1 ECC impls
2022-09-27 20:12:16 -04:00
Matt Witherspoon b99e842e93 Merge pull request #242 from AntelopeIO/mm_crc32_u64
[3.2] avoid redefining _mm_crc32_u64 which can lead to compile errors
2022-09-27 19:21:13 -04:00
Matt Witherspoon d1fd865c35 Merge pull request #241 from AntelopeIO/nullout_apple_zstdetc
[3.2] "null out" iostream's library dependencies on macOS
2022-09-27 19:21:06 -04:00
Matt Witherspoon ab8fdf7e57 Merge pull request #236 from AntelopeIO/desubmod_fc
[3.2] desubmodule fc
2022-09-27 19:20:55 -04:00
Matt Witherspoon ce68373277 Merge remote-tracking branch 'origin/main' into desubmod_fc 2022-09-27 19:08:49 -04:00
Matt Witherspoon b4992ab037 Merge pull request #111 from AntelopeIO/desubmod_wasm_spec_tests
[3.2] desubmodule wasm-spec-tests
2022-09-27 19:06:11 -04:00
Eric Passmore d491f6adef Merge pull request #244 from AntelopeIO/docs-openapi-trace_api-from-3.1-commit-to-main
[3.1 -> main] Docs commits from 3.1 to main
2022-09-27 14:45:44 -07:00
Eric Passmore 9dfeb086ba Merging docs trace_api fix from 3.1 into main
Merge remote-tracking branch 'origin/release/3.1' into docs-openapi-trace_api-from-3.1-commit-to-main
- single file plugins/trace_api_plugin/trace_api.swagger.yaml
2022-09-27 13:55:57 -07:00
Matt Witherspoon 56b52a1aa5 remove alternate k1 impls 2022-09-27 16:46:46 -04:00
Eric Passmore de8e62584e Merge pull request #240 from AntelopeIO/docs-openapi-trace_api
[3.1 -> main] updated trace_api openapi documentation
2022-09-27 12:06:44 -07:00
Matt Witherspoon 2d92aa9480 avoid redefining _mm_crc32_u64 2022-09-27 14:49:59 -04:00
Matt Witherspoon 957e24fd48 "null out" iostream's library dependencies on macOS 2022-09-27 14:23:22 -04:00
Kevin Heifner 56844c3b44 Mandel-301 Fix replay to correctly add needed trxs into the de-dup list 2022-09-27 13:09:06 -05:00
Peter Oschwald 43555bd49b Merge branch 'main' into feature_performance_harness 2022-09-27 12:59:45 -05:00
Clayton Calabrese c0c85a7808 lower expectations for performance_test_basic in CI 2022-09-27 11:43:04 -05:00
Peter Oschwald 5b1f23e824 Merge pull request #232 from AntelopeIO/ph-block-size
[PH] Add calculating and reporting on block size over time during test.
2022-09-27 10:59:28 -05:00
ClaytonCalabrese ebfb7397db Add space for formatting in launch_transaction_generators.py
Co-authored-by: Peter Oschwald <oschwaldp@objectcomputing.com>
2022-09-27 10:46:00 -05:00
Peter Oschwald 4b28484eab Merge branch 'ph-block-size' of https://github.com/AntelopeIO/leap into ph-block-size 2022-09-27 10:40:23 -05:00
Peter Oschwald acc5ca7bef Merge branch 'feature_performance_harness' into ph-block-size 2022-09-27 10:38:35 -05:00
ClaytonCalabrese aa13c29043 Merge pull request #237 from AntelopeIO/performance_harness_graceful_shutdown
[PH] Performance harness graceful shutdown
2022-09-27 10:06:21 -05:00
Chris Gundlach eaeaf4ab3d Merge branch 'main' into feature_prometheus_plugin 2022-09-27 09:26:53 -05:00
Peter Oschwald 1c6030e834 Update tests/performance_tests/log_reader.py 2022-09-27 07:55:08 -05:00
Eric Passmore dd3e6e01b1 Merge remote-tracking branch 'origin/main' into docs-openapi-trace_api 2022-09-26 15:51:25 -07:00
Eric Passmore dfbc9cda6d trace_api docs show all schemas returned
- shorted description refered back to developer docs
- allow return types for get_blocks any of BlockTraceV0, BlockTraceV1, BlockTraceV2
   - BlockTraceV2 can return either Transaction Type V1 or Transaction Type V2
- allow return types for get_transaction_trace any of TransactionTraceV0, TransactionTraceV1, TransactionTraceV2
2022-09-26 15:44:35 -07:00
Clayton Calabrese 8c0fc29d4d cause trx_generators to exit upon sigint, handle log checking inside of finally, so that even early exits get analyzed, print new line in json to indicate if run exited early or not 2022-09-26 16:17:21 -05:00
Matt Witherspoon d5af1838fb misc cmake cleanup & discrete license removal to fc desubmod 2022-09-26 16:23:28 -04:00
766C6164 57cbae4ed9 Added bash-completions configs to leap-util and cleos 2022-09-26 12:08:13 -04:00
Peter Oschwald 21b315277e Merge pull request #233 from AntelopeIO/migrate-numpy-ubuntu-pkg
[PH] Migrate numpy to ubuntu pkg
2022-09-26 10:35:28 -05:00
Peter Oschwald 2907e20fa6 Use Ubuntu python3-numpy package instead of installing through pip 2022-09-26 10:02:51 -05:00
Peter Oschwald 2ff87c60d5 Add calculating and reporting on block size over time during test. 2022-09-26 09:45:51 -05:00
Matt Witherspoon 92b790b8e4 addtional minimal changes to get fc fully built & test after desubmod 2022-09-25 21:48:20 -04:00
Matt Witherspoon 74cd5fabdc desubmodule AntelopeIO/fc@6f9fc55
Co-authored-by: Kevin Heifner <heifnerk@objectcomputing.com>
Co-authored-by: Brian Johnson <johnsonb@objectcomputing.com>
Co-authored-by: Areg Hayrapetian <arhag@users.noreply.github.com>
Co-authored-by: Daniel Larimer <dan.larimer@block.one>
Co-authored-by: Bart Wyatt <bart.wyatt@block.one>
Co-authored-by: Matias Romeo <matias.romeo@gmail.com>
Co-authored-by: Timothy Banks <timothy.banks@block.one>
Co-authored-by: Huang-Ming Huang <huangh@objectcomputing.com>
Co-authored-by: Anton Perkov <anton.perkov@block.one>
Co-authored-by: Bucky Kittinger <larrykittinger@gmail.com>
Co-authored-by: Allen Han <allenhan2@gmail.com>
Co-authored-by: Steven Watanabe <steven.watanabe@block.one>
Co-authored-by: Nathan Hourt <nat.hourt@gmail.com>
Co-authored-by: Jonathan Giszczak <jonrg@hypercubepc.com>
Co-authored-by: Jeeyong Um <conr2d@gmail.com>
Co-authored-by: Matthieu Vachon <matt@dfuse.io>
Co-authored-by: Clayton Calabrese <calabresec@objectcomputing.com>
Co-authored-by: Khaled Al-Hassanieh <khaled.alhassanieh@gmail.com>
Co-authored-by: johndebord <i@johndebord.tk>
Co-authored-by: Todd Fleming <tbfleming@gmail.com>
Co-authored-by: Peter Oschwald <oschwaldp@objectcomputing.com>
Co-authored-by: Paul Calabrese <calabrep@objectcomputing.com>
Co-authored-by: littlekfc <309999096@qq.com>
Co-authored-by: Lin Huang <lin.huang@eosnetwork.com>
Co-authored-by: Jeffrey Smith II <jeffreyssmith2nd@gmail.com>
Co-authored-by: Adam Mitz <mitza@objectcomputing.com>
Co-authored-by: Thiago Souza <thiago@elastic.co>
Co-authored-by: Chris Gundlach <cgundlach@naughtydawgllc.com>
Co-authored-by: zaratustra <zrts@protonmail.com>
Co-authored-by: Yue Han <yue.han-ext@block.one>
Co-authored-by: Ted Cahall @ EOS Network Foundation <ted@eosn.foundation>
Co-authored-by: Tadas <taduxt@gmail.com>
Co-authored-by: Steven Strand <steven.strand@block.one>
Co-authored-by: Spartucus <spartucus@users.noreply.github.com>
Co-authored-by: Phil Mesnier <mesnierp@ociweb.com>
Co-authored-by: Pete Cheyne <pete.cheyne@gmail.com>
Co-authored-by: Patrick Raphael <patrick.raphael@block.one>
Co-authored-by: Kayan <taokayan13@gmail.com>
Co-authored-by: Harry Wong <harrywong@live.com>
Co-authored-by: anr09 <qiuyu.an@hotmail.com>
Co-authored-by: Andrianto Lie <andrianto.lie@block.one>
2022-09-25 21:28:28 -04:00
Kevin Heifner e401c23f0e Merge pull request #227 from AntelopeIO/GH-223-ctrl-c-test
[3.1 -> main] Test fix: wait for system init to be in block
2022-09-24 16:29:57 -05:00
Kevin Heifner 4449095716 Merge remote-tracking branch 'origin/release/3.1' into GH-223-ctrl-c-test 2022-09-24 15:59:57 -05:00
Eric Passmore 5c76188db3 Saying in sync. Merge 'origin/main' into docs-openapi-trace_api 2022-09-24 13:24:33 -07:00
Matt Witherspoon c665605d5a Merge pull request #221 from AntelopeIO/always_test_lr
[3.2] always run the long running tests, including for pull requests
2022-09-24 11:26:50 -04:00
Matt Witherspoon 5086dee55b Merge pull request #225 from AntelopeIO/ignore_missing_files_tar_ci_main
[3.1 -> main] noop merge of #211 - when uploading failure logs, ignore missing files
2022-09-23 23:29:15 -04:00
Matt Witherspoon cb58bba324 Merge branch 'main' into always_test_lr 2022-09-23 18:40:07 -04:00
Matt Witherspoon 0d4b6a7aaf Merge remote-tracking branch 'origin/release/3.1' into ignore_missing_files_tar_ci_main 2022-09-23 18:22:58 -04:00
Clayton Calabrese dd755d814d adopt a indentation style for python involving multiple line function calls 2022-09-23 15:29:53 -05:00
Clayton Calabrese 3178edf599 code review to address formatting of code. 2022-09-23 14:40:42 -05:00
Kevin Heifner dec785155c GH-209 PR feedback 2022-09-23 14:33:47 -05:00
Eric Passmore fa87b159ed updated schema for trace_api openapi
- Added new component schemas
   - ERROR_DETAILS
   - TRACE
   - TRANSACTION_HEADER
   - TRANSACTION_TRACE
   - BLOCK_TRACE
- updated 4xx errors with shared ERROR_DETAILS component
- verification and updates for schema returned for get_block
- verifcation and updates for schema returned for get_transaction
2022-09-23 12:24:40 -07:00
Kevin Heifner 954ee42233 GH-209 log levels not debug levels 2022-09-23 14:10:32 -05:00
Kevin Heifner 2c877bae80 GH-209 Add information about log levels 2022-09-23 14:08:17 -05:00
Kevin Heifner 5d87e004d7 Merge pull request #220 from AntelopeIO/GH-217-fix-lr-test
[3.1 -> main] Fix nodeos_retry_transaction_test.py
2022-09-23 13:15:28 -05:00
766C6164 511f6dbc69 Removet leftovers of genesis from chain-state sc 2022-09-23 13:21:32 -04:00
766C6164 e592a4a584 Multiple changes 2022-09-23 13:19:15 -04:00
Matt Witherspoon 239bb348d1 always run the long running tests -- including for PRs 2022-09-23 12:50:54 -04:00
Kevin Heifner b288dacd75 Merge pull request #219 from AntelopeIO/GH-186-std-except-debug-log
[3.2] Log std::exception while handling API calls at debug level
2022-09-23 11:45:04 -05:00
Clayton Calabrese ef6000c787 Improve performance_test_basic. Solve failure. Add seperate script for spawning multi trx generators. 2022-09-23 10:32:02 -05:00
Eric Passmore 8827ce38a4 updated trace_api openapi docs
- updated return schema for get_block
- updated description for get_transaction_trace
2022-09-23 08:24:57 -07:00
Eric Passmore 6393c07995 Updated docs for openapi /v1/trace_api
- updated description with notes on options needed at startup
- updated json returns for 400,404, and 500
- added get_transaction_trace method
2022-09-23 08:04:29 -07:00
Kevin Heifner efd6f0bd78 Merge remote-tracking branch 'origin/release/3.1' into GH-217-fix-lr-test 2022-09-23 09:32:45 -05:00
Kevin Heifner a73b5236e6 GH-186 Log std::exception for http calls at debug level. 2022-09-23 08:58:11 -05:00
Kevin Heifner da1d88c069 Merge pull request #214 from AntelopeIO/GH-139-cleanup
[3.2] Cleanup regression python test handling of CalledProcessError
2022-09-22 21:06:17 -05:00
Kevin Heifner 885d8faba1 GH-139 Use Python 3.5+ feature of capturing stderr in CalledProcessError 2022-09-22 18:39:54 -05:00
Kevin Heifner b888d9a3b3 GH-139 Use Python 3.5+ feature of capturing stderr in CalledProcessError 2022-09-22 18:34:00 -05:00
Kevin Heifner a465ecebfa Merge pull request #212 from AntelopeIO/GH-139-cleos-return-codes
[3.1 -> main] Update cleos to return an error code on failed trx processing
2022-09-22 15:18:36 -05:00
Clayton Calabrese 609fadc0ed initial changes to setup multiple transaction generators. 2022-09-22 14:56:15 -05:00
Peter Oschwald 6d20226f37 Merge pull request #193 from AntelopeIO/ph-blocks-data-sep
[PH] Break out chain data section knowledge into chainGuide.
2022-09-22 14:03:13 -05:00
Kevin Heifner bf4267ef1a Merge remote-tracking branch 'origin/release/3.1' into GH-139-cleos-return-codes 2022-09-22 13:54:19 -05:00
Peter Oschwald 0bcb481783 Update report format. Allow report creation separate from writing to file.
Rename chainBlocksGuide to better describe its role.
2022-09-22 11:37:59 -05:00
Matt Witherspoon 893e0ab424 Merge pull request #201 from AntelopeIO/incoming_persisted_type
[3.2] add missing incoming_persisted in unapplied transaction queue's get_trx_type
2022-09-22 12:18:08 -04:00
Matt Witherspoon c58668f3bb Merge pull request #202 from AntelopeIO/no_elog_on_exit
[3.2] remove elog when ship thread exits normally
2022-09-22 12:16:30 -04:00
Luis Paris 2bfddd467b Merge pull request #204 from AntelopeIO/docs/devrel#28-29-3.1
[3.1] Curate eosio refs, and github, eosnetwork links (docs)
2022-09-22 10:57:44 -04:00
Luis bf53b6334c add manual links to plugins API reference 2022-09-22 09:50:07 -04:00
Luis 2c7a00408b make html comment MDX-compatible for doc6s parsing :doc 2022-09-22 01:22:58 -04:00
Luis 6aae754d9c replace applicable eosio refs to antelope :doc 2022-09-22 01:13:26 -04:00
Luis 013ed37253 curate github and eosnetwork.com links :doc 2022-09-22 01:11:26 -04:00
Luis 1a47912020 fix existing docs.eosnetwork.com links :doc 2022-09-22 01:10:28 -04:00
Luis 8aca9cbd17 replace EOSIO refs with Antelope if applicable :doc 2022-09-22 01:09:56 -04:00
Matt Witherspoon 79d74aca1b remove elog when ship thread exits 2022-09-21 22:36:05 -04:00
Matt Witherspoon 77d4029a12 add missing incoming_persisted in get_trx_type 2022-09-21 22:24:39 -04:00
Matt Witherspoon 25db760ad7 Merge pull request #198 from AntelopeIO/ship_recover_log_main
[3.1 -> main] promote ship log recovery logging from dlog to ilog
2022-09-21 13:53:35 -04:00
Matt Witherspoon 6c56cb823a Merge remote-tracking branch 'origin/release/3.1' into ship_recover_log_main 2022-09-21 12:25:44 -04:00
Eric Passmore e06b19696b Merge pull request #197 from AntelopeIO/eosio-schema-ref
[3.2] updated schema references to eosnetwork host
2022-09-21 07:44:37 -07:00
Peter Oschwald 53324fc92e Merge branch 'feature_performance_harness' into ph-blocks-data-sep 2022-09-21 09:40:32 -05:00
Eric Passmore 84f6fed4ba updated schema references to eosnetwork host 2022-09-21 07:26:37 -07:00
Peter Oschwald 2b9c20113d Merge pull request #164 from AntelopeIO/performance_harness_export_json
[PH] Export Performance Harness Results as JSON
2022-09-21 09:12:54 -05:00
Kevin Heifner 78aa0b1727 Merge pull request #182 from AntelopeIO/GH-109-get-unapplied
[3.2] Add /v1/chain/get_unapplied_transactions to producer_api_plugin
2022-09-21 07:13:49 -05:00
Peter Oschwald 0de1447909 Fix whitespace. 2022-09-20 15:31:02 -05:00
Peter Oschwald 338fd61f1b Fix whitespace. 2022-09-20 15:30:13 -05:00
Peter Oschwald 7e36408ade Install numpy and dataclasses where necessary in docker builds. 2022-09-20 15:22:09 -05:00
Peter Oschwald 9210f04267 Use float for avg and std deviation for additional needed procision. 2022-09-20 15:06:45 -05:00
Peter Oschwald 6db64d5963 Update ubuntu18 to install python3 dataclasses 2022-09-20 14:40:29 -05:00
Christopher Gundlach cf24fe9cbf Merge pull request #190 from AntelopeIO/add_prometheus_plugin
Add Prometheus Plugin
2022-09-20 14:10:21 -05:00
Peter Oschwald ba38c3f48f Update ubuntu18 to install numpy 2022-09-20 14:02:29 -05:00
Peter Oschwald a3795d7086 Update ubuntu18 to install numpy 2022-09-20 13:59:55 -05:00
Peter Oschwald 7bc7c4d290 Update ubuntu22 to install numpy 2022-09-20 13:43:01 -05:00
766C6164 08e0f22643 Added chain subcomand, refactoring, bugfixes 2022-09-20 14:21:13 -04:00
Peter Oschwald eff8cf3b4a Merge branch 'feature_performance_harness' into ph-blocks-data-sep 2022-09-20 12:59:24 -05:00
Peter Oschwald 6039acd372 Merge branch 'main' into feature_performance_harness 2022-09-20 12:58:45 -05:00
Peter Oschwald 93fb1f71f9 Break out chain data section knowledge into chainGuide. 2022-09-20 12:57:54 -05:00
Chris Gundlach d351840a70 changed to make building prometheus plugin mandatory 2022-09-20 09:16:40 -05:00
Jonathan Giszczak 3b71f2a74a Port eosio-launcher to Python - initial commit with command line parsing 2022-09-19 17:14:02 -05:00
Clayton Calabrese a4dcb35158 merge again from origin branch and resolve conflicts. 2022-09-19 15:16:51 -05:00
Chris Gundlach 78c6c77c00 took out unecessary includes/dependencies 2022-09-19 14:58:20 -05:00
Chris Gundlach 46582601ea took out unnecessary include/lib paths 2022-09-19 14:57:53 -05:00
Clayton Calabrese 8f0a22e7a4 merge from origin and resolve conflict 2022-09-19 14:32:05 -05:00
Chris Gundlach cdb4156702 added prometheus plugin skeleton code 2022-09-19 14:22:21 -05:00
Peter Oschwald bef7f3426d Merge pull request #181 from AntelopeIO/ph_tps_scoring_test
[PH] Add testing around TPS scoring implementation.
2022-09-19 14:22:12 -05:00
Chris Gundlach 642653a37f cmake changes to add prometheus plugin 2022-09-19 14:21:08 -05:00
Kevin Heifner 6544a1aacd Merge pull request #189 from AntelopeIO/GH-178-lib-timeout-main
[3.1 -> main] trx_finality_status_forked_test fix
2022-09-19 12:38:43 -05:00
Kevin Heifner 3ef3e847cb Merge remote-tracking branch 'origin/release/3.1' into GH-178-lib-timeout-main 2022-09-19 12:20:46 -05:00
Christopher Gundlach f5953b89bc Merge pull request #177 from AntelopeIO/ph_early_termination_status
[PH] Added early termination status
2022-09-19 10:51:13 -05:00
Chris Gundlach 7bbf911e6e added error code handling for python script 2022-09-19 09:59:09 -05:00
Matt Witherspoon 43cfa0fe4c Merge pull request #185 from AntelopeIO/label_new_issues
[3.2] label new issues with 'triage' label and add them to the Team Backlog project as Todo
2022-09-19 10:18:46 -04:00
Matt Witherspoon 9718e52802 label new issues with 'triage' label and add them to org project 2022-09-18 22:43:14 -04:00
766C6164 75ffc6b6f4 Updated CLI11 header to the latest 2022-09-18 22:28:33 -04:00
Eric Passmore 02ef7fc6c7 fixed openapi doc, conflic in get_account_ram_corrections 2022-09-17 13:52:53 -07:00
Eric Passmore f548d3698b added get_unapplied_transactions to openapi docs 2022-09-17 13:37:12 -07:00
Kevin Heifner 7a064a58ce GH-109 Add /v1/chain/get_unapplied_transactions endpoint to producer_api_plugin 2022-09-17 10:03:22 -05:00
Clayton Calabrese 55acfd1b06 fix format of arguments 2022-09-16 16:24:36 -05:00
Clayton Calabrese 926964f4a9 allow both the option to save logs and the path 2022-09-16 16:00:15 -05:00
Peter Oschwald 6c58ca374d Add testing around TPS scoring implementation.
Rename nodeos_log_scraping_test.py to log_reader_tests.py to house additional test coverage.

Cover block data log pruning and tps analysis in testing.

Fixes edge cases for 0 and 1 blocks in tps scoring algorithm.
2022-09-16 15:18:06 -05:00
Clayton Calabrese 7e5c3f433d performance stats json: provide default path and make path settable rather than option to save or not 2022-09-16 14:03:38 -05:00
Lin Huang 471b08ef22 Merge pull request #180 from AntelopeIO/fix_relative_path_main
[3.1 -> main] pinned_build.sh: make relative path work
2022-09-16 13:56:16 -04:00
Lin Huang 94378c4b4d Merge remote-tracking branch 'origin/release/3.1' into fix_relative_path_main 2022-09-16 13:34:43 -04:00
Clayton Calabrese 071e359880 address PR comments concerning how nodeos version is obtained and adding a save-json option to performance_test_basic. 2022-09-16 11:22:25 -05:00
Eric Passmore 9b49989ddc Merge pull request #171 from AntelopeIO/docs-plugin-producer
Docs:  http protocol spec for producer plugin
2022-09-16 07:53:18 -07:00
Chris Gundlach f5e126156f added early termination status 2022-09-16 09:00:02 -05:00
Kevin Heifner b767da350e GH-109 Add lower_bound(trx_id) 2022-09-16 08:57:51 -05:00
Kevin Heifner dfbe904db7 GH-109 No reason to store expiration 2022-09-16 07:26:54 -05:00
Matt Witherspoon 5564e9c325 Merge pull request #173 from AntelopeIO/enable_more_platform_tests
[3.2] enable all tests for Ubuntu 22; NP & LR tests for Ubuntu 18
2022-09-15 20:52:54 -04:00
Matt Witherspoon 781aae4cbd Merge pull request #172 from AntelopeIO/ptests_to_hightier
[3.2] switch parallel tests to new runner type
2022-09-15 20:52:40 -04:00
Kevin Heifner e3addf9da4 Merge branch 'main' into ptests_to_hightier 2022-09-15 19:41:29 -05:00
Kevin Heifner b98a223b01 Merge branch 'main' into docs-plugin-producer 2022-09-15 19:41:14 -05:00
Kevin Heifner 56f858d97a Merge pull request #175 from AntelopeIO/GH-174-read-only-fail
[3.2] Do not apply 3-strike rule when subjective billing is disabled
2022-09-15 19:40:50 -05:00
Kevin Heifner b47f3f5635 GH-174 Do not track failures when subjective enforcement disabled otherwise it can affect trxs outside of those failures 2022-09-15 18:53:18 -05:00
Kevin Heifner eaeaec0278 GH-174 Do not apply 3-strike rule when subjective billing is disabled or if read-only transaction. 2022-09-15 18:22:02 -05:00
Matt Witherspoon 85cab27623 enable CI testing on more platform combinations 2022-09-15 18:12:56 -04:00
Matt Witherspoon 5c38a6d8d8 only give package write permission to single job that requires it 2022-09-15 17:49:43 -04:00
Matt Witherspoon e9d99f71f5 move NP&LR test population into action; fix action zstd on u18 2022-09-15 17:49:35 -04:00
Eric Passmore 2aefa0d3c9 updated swagger for http production producer plugin 2022-09-15 13:30:36 -07:00
Kevin Heifner 44ec05bfce Merge pull request #151 from AntelopeIO/GH-149-sub-3-strike
[3.2] Add 3-strike rule to speculative blocks
2022-09-15 14:51:08 -05:00
Kevin Heifner 86ca76dbf1 Merge pull request #158 from AntelopeIO/GH-118-cleos-msig
[3.2] cleos: only unpack action data when explicitly asked
2022-09-15 14:50:53 -05:00
Matt Witherspoon b473d78aa0 commit package-lock.json to ensure reproducibility of dist/ generation 2022-09-15 15:08:59 -04:00
Peter Oschwald 48537e63c7 Merge pull request #160 from AntelopeIO/update_test_config
[PH] Update Python Perf Harness to run CI/CD configuration.
2022-09-15 12:36:04 -05:00
Peter Oschwald b8cddd079e Have help display defaults by default.
Remove now redundant default statement from argument help strings
2022-09-15 12:21:44 -05:00
Christopher Gundlach 7617245621 Merge pull request #159 from AntelopeIO/ph_improved_logging
[PH] Updated logging for trx_generator
2022-09-15 10:39:31 -05:00
Matt Witherspoon 58a772f677 Merge pull request #167 from AntelopeIO/no_leaky_release-build
[3.1 -> main] use a temp dir for release-build test as it can leak creation of config.ini in to default location
2022-09-15 11:20:57 -04:00
Kevin Heifner 04c625bcbf Merge pull request #145 from AntelopeIO/GH-119-more-logging
[3.2] Log block trx summary for speculative and BP blocks
2022-09-15 09:18:05 -05:00
Matt Witherspoon 5074bea663 Merge remote-tracking branch 'origin/release/3.1' into no_leaky_release-build 2022-09-15 10:11:15 -04:00
Peter Oschwald fbb0f5d442 Clean up argument. 2022-09-15 08:48:01 -05:00
Peter Oschwald d4c60a0434 Increase max block net usage.
Updates to 1024*1024*40
2022-09-15 08:01:00 -05:00
Peter Oschwald 15472c4186 Merge pull request #166 from AntelopeIO/tutorial_genesis_update
[3.2] Remove initial_chain_id in genesis.json as it is not supported.
2022-09-15 07:54:05 -05:00
Peter Oschwald f66af885ab Remove initial_chain_id in genesis.json as it is not supported. A remnant of long ago... 2022-09-14 19:17:55 -05:00
Clayton Calabrese 57d733111d don't assume location of nodeos in exportAsJSON 2022-09-14 17:50:30 -05:00
Clayton Calabrese fefbc5ad51 rewrite exportAsJSON to use a json object rather than string. Get nodeos version from console. 2022-09-14 17:49:15 -05:00
Peter Oschwald d159aaf6c9 Update max-transaction-cpu-usage per peer review. 2022-09-14 17:27:01 -05:00
Peter Oschwald b2996c607b Provide genesis.json file for performance harness
To test performance limits, need to update genesis values that artificially impose performance limits on throughput. Of particular note: max_block_net_usage, max_block_cpu_usage, min_transaction_cpu_usage.

Update Cluster's defaults for --max-block-cpu-usage and --max-transaction-cpu-usage to only be applied if a genesis.json is not specified. Also updated to be in line with max allowed max-block-cpu-usage and typical default for max-transaction-cpu-usage
2022-09-14 17:18:26 -05:00
Kevin Heifner c0233fbc3c GH-119 Cleanup const use. 2022-09-14 16:27:12 -05:00
Matt Witherspoon 1911080876 move parallel tests to 'hightier' runner 2022-09-14 17:25:57 -04:00
Clayton Calabrese abac6b72a0 allow exporting of data from numpy analysis to json for later consumption 2022-09-14 15:56:01 -05:00
766C6164 134c448d3a Linting and cleanup 2022-09-14 15:15:45 -04:00
766C6164 acc1a62ea1 Simplified makefile 2022-09-14 14:52:18 -04:00
766C6164 4829bcf17a Added bash-complete scripts for both leap-util and cleos 2022-09-14 14:33:39 -04:00
Chris Gundlach b568684103 Merge branch 'feature_performance_harness' into ph_improved_logging 2022-09-14 13:09:55 -05:00
Peter Oschwald 7abb8b6184 Merge branch 'feature_performance_harness' into update_test_config 2022-09-14 13:06:30 -05:00
Peter Oschwald 2a5dd76856 Merge pull request #161 from AntelopeIO/fix_numpy_dependency_ubuntu20
Add numpy dependency installation to Dockerfile for ubuntu20
2022-09-14 13:03:28 -05:00
Peter Oschwald 22446a0ed0 Need to install python3-pip first. 2022-09-14 12:45:56 -05:00
766C6164 45e33e594b Moved cli11 in interface only lib, adjusted cleos and leap-util to use it 2022-09-14 13:43:19 -04:00
Peter Oschwald ace914e1a4 Add numpy dependency installation to Dockerfile for ubuntu20 2022-09-14 12:39:05 -05:00
Peter Oschwald 2b5b06ae84 Make duration and tps configurable to python test script.
Update defaults to be in line with expected typical CICD run
2022-09-14 10:52:50 -05:00
Chris Gundlach 55455cb845 Merge branch 'feature_performance_harness' into ph_improved_logging 2022-09-14 10:51:43 -05:00
Chris Gundlach 77f84d2164 improved logging on test failure 2022-09-14 10:16:44 -05:00
Kevin Heifner cf70327975 GH-118 Update test case for unpacked-action-data option. Also add new test case expecting default of packed action data. 2022-09-14 09:57:59 -05:00
Kevin Heifner 7aa26d5dc3 GH-118 Revert back to not automatically unpacking action data. Instead only unpack action data when explicitly aksed via --unpack-action-data option. 2022-09-14 09:57:05 -05:00
Peter Oschwald fafa357219 Merge branch 'main' into feature_performance_harness 2022-09-14 08:22:03 -05:00
Matt Witherspoon 3395c0dcaa Merge pull request #156 from AntelopeIO/pinned_script_dl_overwrite_main
[3.1 -> main] always overwrite old downloads in pinned build script
2022-09-14 08:15:46 -04:00
Matt Witherspoon ddfe2b6bb0 Merge pull request #154 from AntelopeIO/json_snapshot_warns
[3.2] fix two signed/unsigned warnings in json snapshot reader
2022-09-14 08:05:42 -04:00
Matt Witherspoon 8bef87fdd6 Merge remote-tracking branch 'origin/release/3.1' into pinned_script_dl_overwrite_main 2022-09-14 08:03:37 -04:00
Kevin Heifner ad84c3afa3 Merge pull request #153 from AntelopeIO/GH-115-no-blocks-main
[3.1 -> main] net_plugin fix startup issue when peer does not have requested blocks
2022-09-14 06:59:58 -05:00
Matt Witherspoon 3220de9527 fix two signed/unsigned warnings in json snapshot reader 2022-09-13 21:51:37 -04:00
Peter Oschwald 366fa37a4a Merge pull request #147 from AntelopeIO/implement-tps-scoring
Add TPS scoring
2022-09-13 17:48:06 -05:00
Peter Oschwald 708ef81198 Some addl whitespace cleanup. 2022-09-13 17:17:07 -05:00
Peter Oschwald c92cb04315 Some whitespace cleanup. 2022-09-13 17:12:15 -05:00
Peter Oschwald 3c6bc1dea3 Update to better use python idioms and libraries. Add minor inline documentation of behavior. 2022-09-13 16:57:06 -05:00
Kevin Heifner 1cf95cf7c4 Merge remote-tracking branch 'origin/release/3.1' into GH-115-no-blocks-main 2022-09-13 16:06:29 -05:00
Kevin Heifner d6b3efebe3 GH-149 Add 3-strike rule to speculative blocks. 2022-09-13 11:51:19 -05:00
Matt Witherspoon b7bb2d3e94 move wasm-spec-tests to unittest directory 2022-09-13 12:14:20 -04:00
Matt Witherspoon 758a033c63 no longer need submodules during test 2022-09-13 12:10:10 -04:00
Matt Witherspoon e7457c83ec Merge pull request #120 from eosswedenorg/cpack-debian
CPACK: Improve deb package filenames
2022-09-13 11:34:31 -04:00
Henrik Hautakoski acd452e37b package.cmake: set CPACK_DEBIAN_PACKAGE_ARCHITECTURE instead of DEB_ARCH. 2022-09-13 15:44:52 +02:00
ClaytonCalabrese b650d0aa13 Merge pull request #146 from AntelopeIO/fix_multithreaded_snapshot_test
[3.2] Fix multithreaded Snapshot test Failure
2022-09-12 18:11:51 -05:00
Kevin Heifner 88e6f0dd10 GH-119 Move log of every failed trx to transaction_failure_tracing logger. 2022-09-12 16:16:18 -05:00
Peter Oschwald 8931260450 Add TPS scoring including min, max, average, and standard deviation using measurements of pairs of consecutive blocks over a defined window of blocks. 2022-09-12 16:12:15 -05:00
Christopher Gundlach bcab39611d Merge pull request #140 from AntelopeIO/ph_integrate_performance_monitor
Integrate tps_performance_monitor into trx_generator program
2022-09-12 16:05:54 -05:00
ClaytonCalabrese 658ce50603 Merge pull request #129 from AntelopeIO/nodeos_log_scraping_test
Nodeos log scraping test
2022-09-12 16:04:47 -05:00
Kevin Heifner 636c0f5855 GH-134 Use file under temp dir. 2022-09-12 15:35:16 -05:00
Clayton Calabrese bdfba6720c use pid to avoid collision in snapshot tests when running multithreaded. 2022-09-12 15:34:47 -05:00
Kevin Heifner ac6fdb8ccd GH-119 Move idle reporting into on_incoming_transaction_async 2022-09-12 13:49:54 -05:00
Kevin Heifner 0b1c8ab293 Merge pull request #96 from AntelopeIO/http-max-response
[3.2] Remove hardcoded 10ms limit for chain_api_plugin calls
2022-09-12 12:52:16 -05:00
Kevin Heifner bfac689761 GH-119 Refactor trx idle time calculation. Track and report failed/successful trx #/time. 2022-09-12 12:08:50 -05:00
Chris Gundlach 14ae5df533 fixes to trx_generator param and added validation 2022-09-12 10:38:08 -05:00
Christopher Gundlach fb297c1eee Merge branch 'feature_performance_harness' into ph_integrate_performance_monitor 2022-09-12 09:32:45 -05:00
Chris Gundlach 762306538a added creation of and parameters for tps_performance_monitor 2022-09-12 09:10:01 -05:00
766C6164 613627f4e9 Added handling of return code 2022-09-11 21:32:57 -04:00
Kevin Heifner e56ea68db1 GH-119 Track and report block idle time and trx times per block for produced and speculative blocks 2022-09-10 14:19:49 -05:00
Matt Witherspoon 7175728e96 Merge pull request #137 from AntelopeIO/abieos_ship_fixes
[3.2] bump abieos submodule to branch with 2.0/3.1 ship_protocol.hpp fixes
2022-09-10 13:54:38 -04:00
Matt Witherspoon 1f1ec234ad bump abieos submodule to main with 2.0/3.1 ship fixes 2022-09-10 12:53:06 -04:00
Matt Witherspoon c714f8b235 Merge pull request #136 from AntelopeIO/restore_yubihsm
[3.2] Revert "remove YubiHSM support from keosd" (#66); restore this functionality for now
2022-09-09 22:35:34 -04:00
Matt Witherspoon a0747e7f91 bump abieos submodule to refreshed 2.0/3.1 fix branch 2022-09-09 18:23:59 -04:00
Matt Witherspoon 623477958b bump abieos submodule to branch with 2.0/3.1 ship fixes 2022-09-09 18:05:30 -04:00
Clayton Calabrese 86a4a50488 name nodeos logs after their patch number. Add explicit defaults in test. 2022-09-09 16:36:08 -05:00
Matt Witherspoon 474acaaf92 Revert "remove YubiHSM support from keosd" 2022-09-09 16:30:13 -04:00
Kevin Heifner 6bb5f503eb Merge pull request #133 from AntelopeIO/GH-127-trx-fork
[3.1 -> main] Test: verify on the correct fork before verifying trx status
2022-09-09 15:27:11 -05:00
Kevin Heifner 5c20fa3744 Merge remote-tracking branch 'origin/release/3.1' into GH-127-trx-fork 2022-09-09 15:03:11 -05:00
Clayton Calabrese 036d1cf4ad Rework nodeos_log_scraping_test and add old logging form to test. 2022-09-09 13:35:01 -05:00
Kevin Heifner be8f3c973c Merge pull request #125 from AntelopeIO/sub-bill-uint32-main
[3.1 -> main] Allow for larger subjective CPU billing amounts
2022-09-08 14:52:51 -05:00
Kevin Heifner cf4835170a Merge remote-tracking branch 'origin/release/3.1' into sub-bill-uint32-main 2022-09-08 14:21:39 -05:00
ClaytonCalabrese c18ed8f63b Merge pull request #112 from AntelopeIO/json_snapshot_minus_nodeos
[3.2] Add Support For Json Snapshots sans Nodeos options
2022-09-08 13:40:39 -05:00
Clayton Calabrese 1f2d832ad8 Create a test to ensure Nodeos log scraping works as expected. 2022-09-08 13:03:28 -05:00
Henrik Hautakoski c325c1746e package.cmake: use CPACK_DEBIAN_FILE_NAME when setting CPACK_DEBIAN_BASE_FILE_NAME 2022-09-08 14:41:13 +02:00
Henrik Hautakoski f3d9591453 package.cmake: Proper setup .deb filename in CPACK_DEBIAN_FILE_NAME variable. 2022-09-08 14:41:13 +02:00
Henrik Hautakoski 1364041fb6 .gitignore: Don't ignore package.cmake 2022-09-08 14:33:32 +02:00
766C6164 48d55efe31 Added boilerplate for snapshot subcommand 2022-09-07 21:01:33 -04:00
766C6164 60969166db Define cli option for displaying lots of help 2022-09-07 17:27:44 -04:00
Lin Huang 48caccb287 Merge pull request #114 from AntelopeIO/validate_set_whitelist_blacklist_input_main
[3.1 -> main] Validate set whitelist blacklist input main
2022-09-07 17:12:24 -04:00
Lin Huang fa6a9e1dad Merge remote-tracking branch 'origin/release/3.1' into validate_set_whitelist_blacklist_input_main 2022-09-07 16:17:19 -04:00
ClaytonCalabrese 1aebbbf91e Merge pull request #100 from AntelopeIO/performance_harness_separate_scripts
Refactor and Separate Python Script for Performance Harness
2022-09-07 12:35:07 -05:00
Clayton Calabrese bad58ad1dc merge from parent 2022-09-07 11:42:08 -05:00
Peter Oschwald fe38c8af7e Merge pull request #92 from AntelopeIO/update_to_test_harness_python_package
Update to test harness python package
2022-09-07 11:32:45 -05:00
Clayton Calabrese f6b1c2ddfa Change from checking == to is for None comparison 2022-09-07 11:25:04 -05:00
Clayton Calabrese 73dcde5d9d added option to pass ceaseBlock to read_log_data 2022-09-07 10:42:44 -05:00
Christopher Gundlach bd250c605d Merge pull request #110 from AntelopeIO/ph_txn_performance_monitor
Added tps_performance_monitor
2022-09-07 09:35:35 -05:00
766C6164 8bc082636e remove accidental clang-format checkin lol 2022-09-06 23:31:09 -04:00
766C6164 1a0d3ef5d5 +=actions_blocklog 2022-09-06 23:29:26 -04:00
766C6164 54b7eac369 +=blocklog, initial raw port 2022-09-06 23:28:53 -04:00
Matt Witherspoon 457b12da91 tweaks to CMakeLists & removal of discrete LICENSE now that desubmoduled 2022-09-06 20:24:53 -04:00
Matt Witherspoon 9fce462de5 desubmodule AntelopeIO/wasm-spec-tests@112c682
Co-authored-by: Jeffrey Smith II <jeffreyssmith2nd@gmail.com>
Co-authored-by: Lin Huang <lin.huang@eosnetwork.com>
Co-authored-by: Damon Revoe <damon.revoe@block.one>
Co-authored-by: systemv <valterdaw@gmail.com>
Co-authored-by: Ted Cahall @ EOS Network Foundation <ted@eosn.foundation>
Co-authored-by: Scott Arnette <scott.a.arnette@gmail.com>
Co-authored-by: Jingjun Zhao <jingjun.zhao@block.one>
Co-authored-by: Christopher Gundlach <cgundlach@naughtydawgllc.com>
2022-09-06 20:23:18 -04:00
Chris Gundlach c49a7fa951 added case to check for lag start resetting 2022-09-06 18:44:02 -05:00
Clayton Calabrese 39d2830104 undo changes to nodeos for json snapshots. 2022-09-06 17:36:19 -05:00
Clayton Calabrese d5c0aeb7de Rename some functions and move waitForEmptyBlocks back to test where it is used. 2022-09-06 17:09:39 -05:00
Chris Gundlach c10b971949 Merge branch 'feature_performance_harness' into ph_txn_performance_monitor 2022-09-06 16:24:05 -05:00
Chris Gundlach dbf40894f8 added tests for tps_performance_monitor 2022-09-06 15:56:22 -05:00
Chris Gundlach c86664142a added tps_performance_monitor 2022-09-06 15:55:36 -05:00
Kevin Heifner 9a6bb11bf9 Merge pull request #107 from AntelopeIO/GH-105-finality-test
[3.1 -> main] Fix test failure due to trx hitting near end of block production time
2022-09-06 14:11:08 -05:00
Kevin Heifner 76ab6ccdef Merge remote-tracking branch 'origin/release/3.1' into GH-105-finality-test 2022-09-06 12:25:34 -05:00
Kevin Heifner 30736e9b0c Support -1 for http-max-response-time-ms for unlimited. 2022-09-02 12:30:44 -05:00
Kevin Heifner da60fe3ec5 Add support for time_limit_ms to API endpoints: get_activated_protocol_features, get_table_rows, get_table_by_scope, get_producers, get_scheduled_transactions 2022-09-02 11:50:08 -05:00
Kevin Heifner 3a63ac5ccd Merge remote-tracking branch 'origin/main' into http-max-response 2022-09-02 11:01:36 -05:00
Kevin Heifner 06ac1bcc8c Use http-max-response-time for limit on complete run of http call including time for main thread and http thread. Puts limit on complete execution including conversion to JSON. 2022-09-02 10:41:30 -05:00
Matt Witherspoon 2d03e6526c Merge pull request #102 from AntelopeIO/fix_ship_client_b16x
[3.2] fix ship_client test on boost 1.67-1.69
2022-09-01 17:26:10 -04:00
Matt Witherspoon 9c43225f4c Merge pull request #101 from AntelopeIO/cli11_license
[3.1 -> main] add CLI11 license to install
2022-09-01 17:04:48 -04:00
Matt Witherspoon cbbe80dd07 fix ship_client on boost 1.67-1.69 2022-09-01 17:01:14 -04:00
Matt Witherspoon 705b54155b Merge remote-tracking branch 'origin/release/3.1' into cli11_license 2022-09-01 16:37:56 -04:00
Clayton Calabrese d4bb984805 add script to scrap data from nodeos logs. Separate out helper functions from performance_test_basic. Fix a bug in the test regarding cease block 2022-09-01 15:23:03 -05:00
Kevin Heifner 76e3e418f4 Remove hardcoded 10ms limit for chain_api_plugin calls and instead honor http-max-response-time-ms. 2022-09-01 11:39:57 -05:00
Matt Witherspoon a4bef57acd Merge pull request #95 from AntelopeIO/fix_beast_ws_defect_main
[3.1 -> main] patch pinned build's boost 1.70 to fix websocket defect
2022-09-01 12:06:26 -04:00
Matt Witherspoon 5290de022e Merge remote-tracking branch 'origin/release/3.1' into fix_beast_ws_defect_main 2022-09-01 11:01:43 -04:00
Peter Oschwald 8dee4b18ba Update import for new TestHarness package 2022-09-01 08:54:27 -05:00
Peter Oschwald ec4ff67601 Merge branch 'main' into update_to_test_harness_python_package 2022-09-01 08:28:19 -05:00
Christopher Gundlach ede1177407 Merge pull request #81 from AntelopeIO/ph_main_refactor
Refactored the trx_generator main code
2022-08-31 18:27:51 -05:00
Clayton Calabrese 782dfafd45 pull in main from origin branch 2022-08-31 18:14:44 -05:00
Matt Witherspoon d3e8c4ab55 Merge pull request #84 from AntelopeIO/not_so_long_running
move tests that are sub 3 minutes out of long running classification
2022-08-31 19:11:19 -04:00
Matt Witherspoon 9f4f9a76bf Merge pull request #83 from AntelopeIO/parallel_nonparallel
[3.2] run nonparallel tests in parallel via separate docker containers
2022-08-31 19:10:17 -04:00
Clayton Calabrese 0ba2871186 Merge remote-tracking branch 'origin/main' into snapshot_json_support 2022-08-31 16:39:02 -05:00
ClaytonCalabrese bc7edb660f Merge pull request #22 from AntelopeIO/replace_websocketpp_with_boost_beast
[3.2] Replace websocketpp with boost beast
2022-08-31 16:22:07 -05:00
Clayton Calabrese a7a1cbfd23 retarget fc to main again 2022-08-31 14:21:27 -05:00
Matt Witherspoon ea86288f6a move tests that are sub 3 minutes out of long running classification 2022-08-31 14:24:13 -04:00
Clayton Calabrese 68827edfd6 delete snapshots from json_snapshot_validity_test 2022-08-31 13:10:31 -05:00
Matt Witherspoon 95321fc44e run non-parallel tests in parallel via containers 2022-08-31 13:00:13 -04:00
Clayton Calabrese 1061b94501 allow new snapshot json test to pass when using multiple threads 2022-08-31 11:07:24 -05:00
ClaytonCalabrese 97a6a9665e Merge pull request #50 from AntelopeIO/performance_harness_cluster_configurable_logging
Performance harness cluster configurable logging
2022-08-31 11:01:46 -05:00
Chris Gundlach 99b9b47907 modified rate test to look at return value from generate and send call 2022-08-31 09:52:56 -05:00
Chris Gundlach 6ad75b6ca4 fixed member variable being hidden by local variable 2022-08-31 09:51:48 -05:00
Kevin Heifner e9cde7d57c Merge pull request #79 from eosswedenorg/fix-chain-api-get-scheduled-transactions-docs
[3.2] Fix documentation for get_scheduled_transactions in plugins/chain_api_plugin/chain.swagger.yaml
2022-08-31 07:52:37 -05:00
Matt Witherspoon bebc33dc5b Merge pull request #78 from AntelopeIO/minor_build_speed_improvement
[3.2] improve CICD build time via faster artifact upload & parallel leap-dev creation
2022-08-31 08:49:47 -04:00
Kevin Heifner 580f5469dc Merge branch 'main' into replace_websocketpp_with_boost_beast 2022-08-31 07:26:37 -05:00
Henrik Hautakoski 67003ad16f plugins/chain_api_plugin/chain.swagger.yaml: rename get_scheduled_transaction to get_scheduled_transactions (notice the trailing "s") as get_scheduled_transaction does not exist. 2022-08-31 12:26:57 +02:00
Matt Witherspoon 10d696f6a7 Merge pull request #66 from AntelopeIO/remove_yubihsm
[3.2] remove YubiHSM support from keosd
2022-08-30 23:51:58 -04:00
Matt Witherspoon 56d94f265c Merge remote-tracking branch 'origin/main' into remove_yubihsm 2022-08-30 23:12:55 -04:00
Chris Gundlach 89bc704233 removed code from main and put in trx_generator 2022-08-30 17:31:40 -05:00
Chris Gundlach 53b8f6dc02 added check for null monitor 2022-08-30 17:31:11 -05:00
Chris Gundlach cb0107c9a6 added trx_generator to cmake 2022-08-30 17:29:11 -05:00
Matt Witherspoon c88bfd7ec5 faster builddir upload & separate leap-dev job for quicker builds 2022-08-30 16:34:11 -04:00
Clayton Calabrese 92fa5c97b9 remove merge doubling of code 2022-08-30 13:54:05 -05:00
Matt Witherspoon b18eaecf48 Merge pull request #71 from AntelopeIO/remove_more_cmake_git
[3.2] replace git commands from nodeos' & launcher's cmake with libversion usage
2022-08-30 14:40:06 -04:00
Kevin Heifner 076c98e1db Merge pull request #75 from AntelopeIO/GH-60-merge-main
[3.1 -> main] Fix crash on startup if port already in use
2022-08-30 13:06:45 -05:00
Kevin Heifner f66719270b Merge remote-tracking branch 'origin/release/3.1' into GH-60-merge-main 2022-08-30 11:38:11 -05:00
Kevin Heifner 43aa90634b Merge pull request #74 from AntelopeIO/GH-49-merge-main
[3.1 -> main] Fix failure to sync on startup
2022-08-30 11:37:13 -05:00
Matt Witherspoon 48d0d23911 Merge pull request #73 from AntelopeIO/less_license_pasta
[3.2] cleanup & simplify license file handling
2022-08-30 12:12:51 -04:00
Kevin Heifner 76fceb9d6a Merge remote-tracking branch 'origin/release/3.1' into GH-49-merge-main 2022-08-30 10:46:47 -05:00
Matt Witherspoon 5c2f288d0c cleanup license file handling 2022-08-30 11:25:57 -04:00
Matt Witherspoon d74d5c624d remove libraries/yubihsm submodule index I missed 2022-08-30 11:03:45 -04:00
Matt Witherspoon 41a5f892d3 replace git commands from nodeos & launcher with libversion 2022-08-29 22:32:44 -04:00
Kevin Heifner ec78c8d2a6 Merge pull request #70 from AntelopeIO/GH-62-merge-to-main
[3.1 -> main] Fix python format issue that caused test to fail
2022-08-29 18:38:50 -05:00
Clayton Calabrese 55f1fe482d use from_variant to determine logging_level in less code 2022-08-29 17:30:05 -05:00
Kevin Heifner 45e1224975 Merge remote-tracking branch 'origin/release/3.1' into GH-62-merge-to-main 2022-08-29 15:49:56 -05:00
Clayton Calabrese 817b24dcc8 Merge remote-tracking branch 'origin/main' into replace_websocketpp_with_boost_beast 2022-08-29 14:00:59 -05:00
Matt Witherspoon 1a74608567 Merge pull request #65 from AntelopeIO/remove_se_sigprovider
remove nonworking Secure Enclave support from signature_provider_plugin
2022-08-29 14:59:43 -04:00
Clayton Calabrese d7d21d1d63 merge from main 2022-08-29 13:55:30 -05:00
Matt Witherspoon 205641c348 remove YubiHSM support from keosd 2022-08-29 14:35:23 -04:00
Matt Witherspoon 097d6caf63 remove nonworking Secure Enclave support from signature_provider_plugin 2022-08-29 14:00:51 -04:00
Clayton Calabrese 6e100b2b1e temporarily point fc at branch to test in CI 2022-08-29 12:35:26 -05:00
ClaytonCalabrese 5af29f7d78 Merge pull request #40 from AntelopeIO/performance_harness_create_data_structures
Capture data and create usable data structures storing data in performance_test_basic.py
2022-08-29 12:05:21 -05:00
Kevin Heifner 25eb9bd4fa Merge pull request #34 from AntelopeIO/GH-18-max-scheduled-trx-desc
[3.2] Update max-scheduled-transaction-time-per-block-ms description
2022-08-29 11:30:19 -05:00
Kevin Heifner b3ecc6d1fc Merge branch 'main' into GH-18-max-scheduled-trx-desc 2022-08-29 10:48:00 -05:00
Kevin Heifner 9d138f7c4d Merge pull request #29 from AntelopeIO/prod-plugin-push-trx
[3.2] Refactor producer_plugin to consolidate controller push_transaction calls
2022-08-29 10:46:16 -05:00
Kevin Heifner ea67d4bde0 Add auth to log 2022-08-29 08:42:21 -05:00
Lin Huang 321f2da312 Merge pull request #64 from AntelopeIO/http_bytes_in_flight_fix_main
[3.1 -> main] fix a number of issues with http-max-bytes-in-flight-mb configuration
2022-08-28 09:15:08 -04:00
Lin Huang efd6d7e810 resolve merge conflicts 2022-08-27 18:59:20 -04:00
Lin Huang 3779056dcc Merge pull request #35 from AntelopeIO/trace_api_plugin_warnings_fixes
[3.2] fix compile warnings in trace_api_plugin
2022-08-26 18:51:03 -04:00
Clayton Calabrese b84603abc8 update regex parsing in performance_test_basic to handle the old version of logging 2022-08-26 17:25:54 -05:00
Lin Huang 1549727859 Merge branch 'main' into trace_api_plugin_warnings_fixes 2022-08-26 17:48:05 -04:00
jgiszczak 106d596d82 Merge pull request #61 from AntelopeIO/test_harness_python_package
[3.2] Convert regression test framework into a Python package and update tests
2022-08-26 16:26:35 -05:00
Kevin Heifner 48ea298718 Additional cleanup for peer review 2022-08-26 15:14:10 -05:00
jgiszczak e5217f16bf Merge branch 'main' into test_harness_python_package 2022-08-26 15:12:14 -05:00
Jonathan Giszczak c14eefb773 Convert regression test framework into a Python package and update tests 2022-08-26 15:05:17 -05:00
Clayton Calabrese 8495376b40 rename trxResult to actually fit what is is a result of, a block 2022-08-26 14:20:34 -05:00
Clayton Calabrese 8c3c89f4ed change blockId variable to better reflect what it actually is. 2022-08-26 14:11:52 -05:00
Matt Witherspoon df9529c8d7 Merge branch 'main' into trace_api_plugin_warnings_fixes 2022-08-26 14:50:42 -04:00
Clayton Calabrese c2e02ac718 address PR comments about fstrings and type conversion 2022-08-26 13:16:04 -05:00
Christopher Gundlach cace23e324 Merge pull request #45 from AntelopeIO/ph_add_tps_tester
Added unit tests for the tps_tester
2022-08-26 12:32:00 -05:00
Peter Oschwald 1f25aed130 Merge branch 'feature_performance_harness' into ph_add_tps_tester 2022-08-26 11:36:54 -05:00
Peter Oschwald df590967b0 Fix generator, for now, to at least honor the number of trxs expected to send (not rate or time limit).
Fix warning about type narrowing.
2022-08-26 11:35:55 -05:00
Peter Oschwald 195061dbaf Update test as trace api moved into default setup. 2022-08-26 11:34:13 -05:00
Matt Witherspoon d45aba4715 Merge pull request #57 from AntelopeIO/final_ci_job_merge
[3.1 -> main] add a final job that passes if all tests pass making it easier to branch protect on checks
2022-08-26 11:23:37 -04:00
Matt Witherspoon 7413ef19fa Merge remote-tracking branch 'origin/release/3.1' into final_ci_job_merge 2022-08-25 22:56:45 -04:00
Kevin Heifner b14d7b42a5 Cleanup from peer review comments 2022-08-25 18:56:06 -05:00
Chris Gundlach e522483249 fixed cmake test for trx_generator 2022-08-25 16:14:14 -05:00
Chris Gundlach 082497643a updated delay time 2022-08-25 15:51:14 -05:00
Chris Gundlach b2f41f8818 added include of <thread> 2022-08-25 15:50:38 -05:00
Chris Gundlach 9178ff6bb8 added trx generator tests 2022-08-25 15:50:09 -05:00
Clayton Calabrese add306379a update totals on the fly in performance_test. Reduce code. capture stats better. 2022-08-25 15:31:48 -05:00
Chris Gundlach c4978cd537 reverted params back to uint32_t; changed sleep_time stat name 2022-08-25 14:45:54 -05:00
Chris Gundlach da0ad0ec88 added test with longer simulated processing time 2022-08-25 14:44:42 -05:00
Lin Huang c285e9fe97 change long remaining = loc; to auto remaining = loc; to keep the type consistent 2022-08-25 15:27:24 -04:00
Chris Gundlach e74580f1de added validation of test parameters 2022-08-25 14:00:47 -05:00
Clayton Calabrese 035fba9680 clean and consolidate python functions in performance_test_basic. 2022-08-25 13:53:16 -05:00
Lin Huang 52dc20503b Merge branch 'main' into trace_api_plugin_warnings_fixes 2022-08-25 14:17:25 -04:00
Clayton Calabrese 8f0db470d7 Merge remote-tracking branch 'origin/feature_performance_harness' into performance_harness_create_data_structures 2022-08-25 11:27:03 -05:00
Clayton Calabrese a725f99bf6 Merge remote-tracking branch 'origin/feature_performance_harness' into performance_harness_cluster_configurable_logging 2022-08-25 10:58:05 -05:00
Peter Oschwald 48fba4a1ee Merge branch 'main' into feature_performance_harness 2022-08-25 09:14:41 -05:00
Kevin Heifner 492aaa479b Merge branch 'main' into prod-plugin-push-trx 2022-08-25 08:51:23 -05:00
766C6164 97c19806d9 Added autocompletion for bash 2022-08-24 21:18:26 -04:00
Clayton Calabrese b05090bfa6 allowed passing of a logging level to cluster that will be applied to created logging.json 2022-08-24 13:26:46 -05:00
Chris Gundlach e564f1bf43 added unit tests; fixed various issues identified by tests 2022-08-24 13:23:29 -05:00
Clayton Calabrese d599c8e56b Merge branch 'main' into feature_performance_harness 2022-08-24 00:55:19 -05:00
Matt Witherspoon eaeab701e0 Merge pull request #42 from AntelopeIO/merge_31x_readme_ci
[3.1 -> main] CICD adjustments for public repo & README fixes wrt multiple llvm-dev
2022-08-23 14:54:46 -04:00
Matt Witherspoon 902353d426 Merge remote-tracking branch 'origin/release/3.1' into merge_31x_readme_ci 2022-08-23 13:41:01 -04:00
Kevin Heifner fc4d60c931 Merge remote-tracking branch 'origin/main' into prod-plugin-push-trx 2022-08-23 12:25:42 -05:00
Clayton Calabrese 21cb19d8ef Merge remote-tracking branch 'origin/snapshot_json_support' into cleanup_improve_json 2022-08-23 11:17:42 -05:00
Lin Huang 00efe2db27 Merge pull request #39 from AntelopeIO/compile_warnings_fixes
Compile warnings fixes in deep_mind.cpp, abi_serializer.cpp, producer_plugin.cpp, auth_tests.cpp
2022-08-23 11:54:24 -04:00
Kevin Heifner 448921c13c Merge remote-tracking branch 'origin/main' into prod-plugin-push-trx 2022-08-23 10:36:55 -05:00
Kevin Heifner 762ae01b11 Factor out calls to process_incoming_transaction_async to better handle unapplied_transaction_queue handling. Also use unapplied_transaction_queue iterator to avoid trying the same incoming transaction twice in start block. 2022-08-23 10:35:56 -05:00
Clayton Calabrese 0d7637cf85 Merge branch 'main' into snapshot_json_support 2022-08-23 09:45:30 -05:00
Lin Huang 25a0d33391 Merge branch 'main' into compile_warnings_fixes 2022-08-23 10:42:34 -04:00
Clayton Calabrese c42b1b4334 merge from main 2022-08-23 09:40:24 -05:00
Kevin Heifner 850de1ca35 Consolidate more logging into log_trx_result method. 2022-08-23 09:31:19 -05:00
Kevin Heifner 5156037581 Merge branch 'prod-plugin-push-trx' of https://github.com/AntelopeIO/leap into prod-plugin-push-trx 2022-08-23 08:40:03 -05:00
Kevin Heifner 81a249c09d Fix for channels::transaction_ack not always being called on expired or invalid signature transactions. 2022-08-23 08:39:49 -05:00
Clayton Calabrese d78ebeb969 expand data stored by performance_test_basic.py. Capture data into the python itself for future use. Add some helper functions and classes to facilitate all this. 2022-08-22 22:17:09 -05:00
766C6164 d961205788 Scaffold, putting cli11 subcommands in separate files 2022-08-22 22:24:35 -04:00
Lin Huang 6b84267918 Merge pull request #17 from AntelopeIO/benchmarking
[3.2] Create a simple benchmarking framework and use it to benchmark crypto primitives
2022-08-22 15:32:46 -04:00
Lin Huang c0c4cb2a40 Fix sign compare warning in producer_plugin.cpp 2022-08-22 13:53:28 -04:00
Lin Huang e152b0826e Fix unused variable warning in auth_tests.cpp 2022-08-22 13:49:53 -04:00
Lin Huang 096aa86f6f Merge branch 'main' into benchmarking 2022-08-22 13:40:31 -04:00
Matt Witherspoon 820a063848 Merge pull request #37 from AntelopeIO/cli_test_fixes
fix multiple problems in cli_test
2022-08-22 12:23:25 -04:00
Matt Witherspoon 8e1e729208 Merge pull request #38 from AntelopeIO/no_boost_thread
remove boost::thread usage, fixing pinned builds
2022-08-22 12:23:17 -04:00
Lin Huang 8d7d0411bd trace_api_plugin.cpp: remove trace_api_plugin_impl::set_program_options
it was an empty static function
2022-08-22 11:36:56 -04:00
Lin Huang 5e3a36b7a5 Fix use of deprecated set_abi warning in abi_serializer.cpp 2022-08-22 11:21:15 -04:00
Lin Huang 426826ae38 Fix control reaches end of non-void functionwarning in deep_mind.cpp 2022-08-22 11:19:46 -04:00
Kevin Heifner f35c5e64d5 Merge branch 'main' into prod-plugin-push-trx 2022-08-22 10:09:56 -05:00
Lin Huang cc7489021a fix compile warnings in trace_api_plugin 2022-08-22 10:22:59 -04:00
Christopher Gundlach 03af897906 Merge pull request #27 from AntelopeIO/ph_add_tps_tester
Added initial version of the TPS tester
2022-08-22 09:14:15 -05:00
Kevin Heifner 1ad2ea4c53 GH-18 Update max-scheduled-transaction-time-per-block-ms description to indicate it also includes time for incoming transactions according to the incoming-defer-ratio. 2022-08-22 08:30:33 -05:00
Lin Huang 61e130be8a blake2_benchmarking: correct the feature name from black2 to blake2 2022-08-21 12:24:32 -04:00
Lin Huang 1e51b6c2e0 benchmarking: add blake2 and remove unnecesary include header files 2022-08-21 11:30:15 -04:00
Lin Huang 1fe04d3288 hash benchmarking: add sha1, sha256, sha512, and ripemd160 2022-08-21 10:53:51 -04:00
Lin Huang cbe5cfbd8f k1 siging benchmarking: do not benchmark canonical case 2022-08-21 10:42:59 -04:00
Matt Witherspoon 8d7a293376 use makedirs() to ensure success if var/ doesn't exist 2022-08-20 22:47:28 -04:00
Matt Witherspoon 629d0fff9d use contracts & abi files in the builddir 2022-08-20 22:47:06 -04:00
Matt Witherspoon 518c8304fa remove deceptive print() that's always an error 2022-08-20 22:45:52 -04:00
Matt Witherspoon 0056fbf9f8 remove boost::thread usage 2022-08-20 22:16:05 -04:00
Lin Huang 88cfa65427 Merge branch 'main' into benchmarking 2022-08-20 21:05:26 -04:00
Lin Huang 89c1345af9 Merge pull request #33 from AntelopeIO/bump_fc_fix_sha3_build_error
[3.2] bump FC version to fix sha3.hpp compile error when Boost 1.79 is used
2022-08-20 21:04:44 -04:00
Lin Huang 27b9d942f3 leap: bump FC version to fix sha3.hpp compile error when Boost 1.79 is used 2022-08-20 20:10:53 -04:00
Clayton Calabrese 92dc116c8e move namespace collosion for rapidjson to top of include list to prevent possible collision. Rename rapidjson in libraries. 2022-08-19 17:04:11 -05:00
Kevin Heifner a0aa347266 Reorder logging to be consist with other logging. 2022-08-19 15:06:51 -05:00
Kevin Heifner 3273bd3b9f Mandel-297 Refactor producer_plugin to consolidate controller push_transaction and logging calls. 2022-08-19 14:34:42 -05:00
Clayton Calabrese 5fce72cb71 change rapidjson to interface library in cmakelist 2022-08-19 13:38:08 -05:00
Clayton Calabrese 408afb5817 write rapidjson snapshot validity test case. 2022-08-19 13:37:41 -05:00
Clayton Calabrese c54d0c2716 update save json for snapshot test due to design change. 2022-08-19 13:08:40 -05:00
Chris Gundlach b393de5628 fixed arithmetic error; used std conversion 2022-08-19 10:16:37 -05:00
Chris Gundlach 6a1f3ed1b9 initial trx_tps_tester 2022-08-19 09:34:30 -05:00
Clayton Calabrese d0192ce143 Merge remote-tracking branch 'origin/main' into replace_websocketpp_with_boost_beast 2022-08-18 11:12:30 -05:00
Lin Huang 254d69702d benchmarking: make private key of k1 signing fixed
private key of k1 was randomly generated. It caused big swing in time with canonical
requirement. This commit makes the private key fixed and benchmarks both canonical
and non-canonical cases
2022-08-18 10:19:50 -04:00
Lin Huang 52bce935da benchmark: change printt_header to print_header 2022-08-17 18:10:21 -04:00
Lin Huang 1b1a467f87 Create a benchmarking framework and use it to benchmark crypto primitives
Create a generic micro-benchmarking framework intended for any functions.
As the first application, alt_bn_128 adding/multiplying/pairing, sha3-256/keccak256
hashing, k1/r1/webauthn key signing/recovering, and modexp are benchmarked
2022-08-17 17:32:38 -04:00
ClaytonCalabrese 0478825ebf Merge pull request #821 from eosnetworkfoundation/performance_harness_python_checklogs
Validate Number of Trx in Generator Match Nodeos Log
2022-08-17 14:24:43 -05:00
Luis Paris 85a2eccdd9 Merge pull request #15 from AntelopeIO/squash-documentation-fixes
documentation fixes to power developer doc portal
2022-08-17 13:04:58 -04:00
Bucky Kittinger 50e8175378 merge leap/main 2022-08-17 10:29:42 -04:00
Areg Hayrapetian 3041c381b7 Merge pull request #14 from AntelopeIO/antelope-main
[3.1 -> main] Antelope rename changes
2022-08-17 01:42:53 -07:00
Areg Hayrapetian 9db5f97e93 Merge branch 'release/3.1' into antelope-main 2022-08-17 01:29:45 -07:00
Clayton Calabrese 950bfae967 revert unintended whitespace changes 2022-08-16 17:32:07 -05:00
Clayton Calabrese beca545f38 remove unused import 2022-08-16 17:17:23 -05:00
Clayton Calabrese f8645a86f2 change from microseconds to seconds for transaction experation to resolve failures due to expired transactions. Add missing declaration to trx/generator main.cpp. 2022-08-16 17:10:36 -05:00
Clayton Calabrese 73087f04e4 clean up variables in performance_test_basic. 2022-08-16 17:09:18 -05:00
Clayton Calabrese 4d5535e7ee remove print statement 2022-08-16 17:04:14 -05:00
Clayton Calabrese 2a3e69b428 merge in dev branch. Add missing declaration to trx_generator. Add checking for transaction count and waiting for blank blocks in performance_test_basic.py 2022-08-16 17:03:30 -05:00
Clayton Calabrese 1fa0727cd0 performance_test_basic.py:clean up log files. wait for lib to advance before and after trx_generator call. scrap log for transaction count. 2022-08-16 13:58:39 -05:00
Peter Oschwald 83a89ad3d2 Merge pull request #820 from eosnetworkfoundation/ph_tps_config
Configurable test duration and tps
2022-08-16 12:50:48 -05:00
Chris Gundlach 2a9c334a5e fixed buffer creation bug; added logging 2022-08-16 12:26:47 -05:00
Peter Oschwald 949407c8a1 Add cli params for configuring test transaction duration (sec) and target generation transactions per second (tps). 2022-08-16 10:52:21 -05:00
Christopher Gundlach d2c5a3034e Merge pull request #817 from eosnetworkfoundation/ph_define_trx_provider
Moved to using a sync socket implementation
2022-08-16 09:34:55 -05:00
Lin Huang 98dc651173 Merge pull request #733 from eosnetworkfoundation/detailed_except_info_trx_trace
[3.2] return the error from the contract itself in the transaction trace log message for asserts
2022-08-16 09:34:32 -04:00
Chris Gundlach d9f89749c4 cleaned up spacing, naming and added comments 2022-08-15 15:39:10 -05:00
Peter Oschwald 54a3d1c352 Merge pull request #818 from eosnetworkfoundation/perf_harness_parts_integration
Create actions and transactions in more efficient manner.
2022-08-15 15:00:19 -05:00
Peter Oschwald 42c5900bc2 Address peer review comments. 2022-08-15 13:26:47 -05:00
Peter Oschwald fb0dd3ada0 Address peer review comments: exclusively use snake case except in template types. 2022-08-15 13:18:37 -05:00
Chris Gundlach 2d17d0bdc5 added single send for signed trx 2022-08-15 13:12:06 -05:00
Peter Oschwald b25c717149 Create actions and transactions in more efficient manner. 2022-08-15 12:24:40 -05:00
Chris Gundlach 2fcad33359 Merge branch 'feature_performance_harness' into ph_define_trx_provider 2022-08-15 10:53:43 -05:00
Chris Gundlach 8f6d25c355 switched to a socket implementation 2022-08-15 10:34:13 -05:00
Peter Oschwald c6231eac2e Merge pull request #815 from eosnetworkfoundation/perf_harness_parts_integration
Perf harness parts integration
2022-08-15 09:30:52 -05:00
Peter Oschwald 5e87aa90a0 Create command line argument for providing the last irreversible block id to the generator.
Update python script to provide lib id
2022-08-12 15:53:34 -05:00
Kevin Heifner 2520099f7f GH-771 Modify --snapshot option to determine json by extension instead of adding a new option. Improved memory usage so current WAX snapshot can be supported. Modified the JSON output so that table rows are an array which reduces file size and memory usage. Put rapidjson inside an eosio_rapidjson namespace to avoid ODR issues. Change CMakeLists to not compile rapidjson but only include it as it is a header only library. 2022-08-12 15:28:59 -05:00
Peter Oschwald 4f4f8bfeb2 Pass in account private keys, for signing transactions, from the test harness script. 2022-08-12 15:26:51 -05:00
Lin Huang 900b2a265f change action:: to action: in the log 2022-08-12 16:09:12 -04:00
Peter Oschwald 48708f51ad Add ability to update & re-sign transactions before sending.
Create some simple structs for managing action pairs, private keys, and transactions.

Factor out private keys into accessible objects for re-signing needs.

Before sending trxs on p2p provider interface update the trxs to be current and re-sign.
2022-08-12 14:47:20 -05:00
Lin Huang 19ec766fa7 Merge branch 'main' into detailed_except_info_trx_trace 2022-08-12 15:26:17 -04:00
Peter Oschwald c7fc7ca6fc Quick reformat to clean up a couple things. 2022-08-12 11:16:07 -05:00
Peter Oschwald 9f5ac3be4b Add method to update and resign transactions for eventual transaction reuse. 2022-08-12 11:13:07 -05:00
Peter Oschwald 86c9f95287 Update method name for clarity and logging. 2022-08-12 11:11:39 -05:00
Peter Oschwald d2eceded95 Remove previous push transaction implementations and tie into trx_provider send interface. 2022-08-12 11:06:50 -05:00
ClaytonCalabrese 1f1243de18 Merge pull request #750 from eosnetworkfoundation/cluster_trace_api_plugin
[3.2] move trace api plugin activation out of tests and into cluster
2022-08-12 11:04:42 -05:00
Peter Oschwald 32805774a6 Remove notion of batching transactions and simply create initial vector of all base transactions. 2022-08-12 11:03:37 -05:00
Peter Oschwald afaa2628b2 Add the microseconds timestamp of the transaction update right before signing for use in calculating transaction latency downstream 2022-08-12 10:56:21 -05:00
Peter Oschwald 3d3339a05e Add delimeter between nonce prefix and nonce to allow for easier parsing out of transaction downstream 2022-08-12 10:54:40 -05:00
Peter Oschwald 5bf07dda17 Fix send_transaction method arguments so it will compile. 2022-08-12 10:45:33 -05:00
Clayton Calabrese 63b6b55b3d fix new test by removing trace_api_plugin from it. 2022-08-11 12:47:49 -05:00
Clayton Calabrese 318982e2d9 Merge remote-tracking branch 'origin/main' into cluster_trace_api_plugin 2022-08-11 10:55:47 -05:00
Clayton Calabrese 51d664a7fd add back accidental deletions from large-lib-test 2022-08-10 20:16:59 -05:00
Areg Hayrapetian 6817911900 Merge pull request #810 from eosnetworkfoundation/trx_retry_max_expiration_main
[3.1 -> main] Increase default transaction-retry-max-expiration-sec from 90 to 120. Added file package to the list of installable packages.
2022-08-10 15:36:16 -07:00
Lin Huang 2c9e99ee79 Call get_detailed_contract_exception_info only inside log statement, remove use of fc::string and fc::unsigned_int, and better format the logging message 2022-08-10 18:08:06 -04:00
Lin Huang df81354c59 Merge remote-tracking branch 'origin/release/3.1.x' into trx_retry_max_expiration_main 2022-08-10 17:15:56 -04:00
Clayton Calabrese ea5ce7cc6d cleanup comment and newlines. 2022-08-10 13:35:09 -05:00
ClaytonCalabrese 573346fdbc Merge pull request #753 from eosnetworkfoundation/remove_kv_database_config
[3.2] insert comments in the kv_config header file indicating it is not in use
2022-08-10 13:31:24 -05:00
Clayton Calabrese aff122104e switch over to rapidjson from fc::json for the json snapshot reader. 2022-08-10 13:28:56 -05:00
Vlad e8fb022fc3 Merge pull request #719 from eosnetworkfoundation/subjective-billing-error-msg
[3.2] Enhancement: Add unique error message for subjective billing in the transaction trace logs
2022-08-10 12:18:20 -04:00
766C6164 68e932685a Do not generate assert msg when bot asserting 2022-08-10 10:19:23 -04:00
Kevin Heifner 359e98c2e4 Merge pull request #798 from eosnetworkfoundation/GH-790-handshake-msgs
[3.1 -> main] Reduce net_plugin handshake messages in case of unavailable blocks
2022-08-10 08:37:35 -05:00
766C6164 b49476c7e7 Update graylisted and checktime() msgs 2022-08-09 21:37:32 -04:00
Christopher Gundlach 6b88de8ddc Merge pull request #795 from eosnetworkfoundation/ph_define_trx_provider
Added p2p_trx_provider
2022-08-09 18:44:21 -05:00
Lin Huang ba3614b6da Merge branch 'main' into detailed_except_info_trx_trace 2022-08-09 16:36:46 -04:00
Chris Gundlach 302d062e74 culled net plugin p2p code 2022-08-09 12:57:36 -05:00
Kevin Heifner df8665cbc7 Merge remote-tracking branch 'origin/release/3.1.x' into GH-790-handshake-msgs 2022-08-09 12:14:25 -05:00
Chris Gundlach 76cf18f41b removed txn_generator 2022-08-09 09:30:39 -05:00
Chris Gundlach 8dc363276e updated constructor for p2p_trx_provider 2022-08-09 09:25:57 -05:00
jgiszczak fda9c85d3e Merge pull request #704 from eosnetworkfoundation/backport-cleos-local-abi-file
Backport cleos local abi file
2022-08-08 16:23:27 -05:00
Matt Witherspoon f19322debc Merge pull request #758 from eosnetworkfoundation/fc_array_from_variant_warn
fix warning in fc::array<> from_variant
2022-08-08 14:39:39 -04:00
Jonathan Giszczak 5e660e6a19 Pin Github action skip-workflow at current v1.1.1 tag's commit hash. 2022-08-08 13:27:15 -05:00
Matt Witherspoon f8a58d5695 bump fc submod to main with fc::array<> from_variant warn fix 2022-08-08 13:52:35 -04:00
Chris Gundlach f8b90bd26a Merge branch 'feature_performance_harness' into ph_define_trx_provider 2022-08-08 11:45:24 -05:00
Matt Witherspoon e58a372957 bump fc submod for fc::array<> from_variant warn fix 2022-08-06 15:04:32 -04:00
Matt Witherspoon 85a47ed67f Merge pull request #743 from eosnetworkfoundation/warning_grab_bag
[3.2] grab bag of warning fixes
2022-08-05 22:34:05 -04:00
Areg Hayrapetian 7466a35657 Merge pull request #757 from eosnetworkfoundation/GH-755-merge-to-main
[3.1 -> main] Attempt connection retries for duplicate connections
2022-08-05 19:07:07 -07:00
Kevin Heifner dc5c8bc156 Merge remote-tracking branch 'origin/release/3.1.x' into GH-755-merge-to-main 2022-08-05 16:11:16 -05:00
Eric Passmore 7ca2be67bc small fixes per review comments 2022-08-05 13:26:50 -07:00
Areg Hayrapetian 461a055722 Merge pull request #754 from eosnetworkfoundation/arhag/GH-747-mod-exp-limits-for-main
[3.1 -> main] Use more flexible subjective limits on mod_exp
2022-08-05 12:37:27 -07:00
Areg Hayrapetian 23ae97ab24 Merge branch 'release/3.1.x' into arhag/GH-747-mod-exp-limits-for-main 2022-08-05 11:51:11 -07:00
jgiszczak 453829a979 Merge pull request #735 from eosnetworkfoundation/local-abi-file-test-enhancements
Replace cleos local abi file test with test harness version.
2022-08-05 13:42:25 -05:00
Clayton Calabrese f62ea0a8da modify header comment for kv_config to explain that kv_database_config is not in use and will be removed as a larger effort for snapshot v7 when that ocmes. 2022-08-05 13:29:50 -05:00
Matt Witherspoon 67d825204b Merge pull request #744 from eosnetworkfoundation/fc_crypto_warnings
[3.2] fix some compile warnings in fc's hash classes
2022-08-05 13:05:13 -04:00
Matt Witherspoon 348df64985 Merge pull request #751 from eosnetworkfoundation/31x_merge_prune_logs
[3.1 -> main] set prune logs at debug level except for the initial log when enabling pruning
2022-08-05 12:24:30 -04:00
Christopher Gundlach e6c2c443a1 Merge pull request #734 from eosnetworkfoundation/backport_cleos_optional_support
Backport cleos optional support
2022-08-05 10:53:30 -05:00
Matt Witherspoon 507ba01811 revert token test's asset warning fix for now 2022-08-05 11:48:01 -04:00
Matt Witherspoon f64af6bb62 bump fc submod to main with hash warning fixes 2022-08-05 11:45:41 -04:00
Matt Witherspoon db0ae8d641 Merge remote-tracking branch 'origin/release/3.1.x' into 31x_merge_prune_logs 2022-08-05 11:41:51 -04:00
Clayton Calabrese 15a5603e9f move trace api plugin activation out of tests and into cluster. Default to trace-no-abi unless otherwise specified in a test 2022-08-05 10:19:56 -05:00
Lin Huang 1f60ee22bc added contract name and action name to the log; made a common function for the functionalities; used FC format_string and top_message 2022-08-05 09:58:42 -04:00
Eric Passmore 662c5168c5 documentation fixes to power developer doc portal
* Support MDX parsing
* Replace github references to EOS Network Foundation
* Replace references to old documentation portal
* Fix broken links

Markdown files under `docs` and under `tutorial`

The developer documentation portal is powered by markdown files. These files are parsed to create a nice looking web site. We use MDX as the parsing engine. MDX requires all html tags are closed. We went through all the files removing unneeded '<hr>' tags, enclosing angle brackets in quotes, and closing img tags.

Many times we found documentation pointing to old repositories that had not been updated in years. We updated the links and pointed to repositories that are better maintained.

We made sure links to the documentation portal did not leak back to older, previous versions.

We found relative links that no longer existed. We made sure to point the links to best location. Sometimes the links broke because were missing a key file extension. We made sure to add back the file extenstion.

**Note:** This is essentially a no-op; however summarizing here for anyone following the commit history. Glossary and Protocol Guides were added and removed during the course of development. We had added a Glossary and Protocol Guides , and we decided to utilize the welcome repository as the source for both.

commit ba20420c42f2f8bbf3396102d3ac22261028af30
Author: Eric Passmore <eric.passmore@gmail.com>
Date:   Thu Aug 4 12:46:52 2022 -0700

    Testsnets anchor link was not working rm it

commit d5de39dbbe250d2a9878c82de990c086c3b7b122
Author: Eric Passmore <eric.passmore@gmail.com>
Date:   Thu Aug 4 10:27:42 2022 -0700

    adding missing .md ext

commit 9dbb885d2eb308e60a2db909c9aed7b5dcb4289a
Author: Eric Passmore <eric.passmore@gmail.com>
Date:   Thu Aug 4 10:24:49 2022 -0700

    found another eos.io reference to replace

commit 6a10c44b5863552c85c283db5b6d24e84b84f2cf
Author: Eric Passmore <eric.passmore@gmail.com>
Date:   Thu Aug 4 08:47:02 2022 -0700

    moved away from eos testnet

commit 023c8e50724b766b0b9c8ce859d106101bc90fc8
Merge: 9d486ab51 6514a7d63
Author: Eric Passmore <eric.passmore@gmail.com>
Date:   Thu Aug 4 08:33:00 2022 -0700

    Merge remote-tracking branch 'origin/main' into documentation-fixes

    Fixing docs by removing eosio references, need resync with main to catch merge issues early

commit 9d486ab51aa399a4e5c7a038c19531071a88e900
Author: Eric Passmore <eric.passmore@gmail.com>
Date:   Tue Aug 2 08:19:36 2022 -0700

    updated protocol-guides links to include number

commit 907d9e2af8796087ba830f10f53df0063d0a621d
Author: Eric Passmore <eric.passmore@gmail.com>
Date:   Fri Jul 29 16:23:41 2022 -0700

    removed general_info replaced by welcome repository markdown

commit 07efa3fb831ef2d57f68be0ef3aa21e28c346a80
Merge: 056239ccc d36ca7a52
Author: Eric Passmore <eric.passmore@gmail.com>
Date:   Fri Jul 29 07:10:24 2022 -0700

    merging with upstream/main keeping up to date

commit 056239cccb5e3337b5598364190cd4dc9d16a281
Merge: b921bdf98 b378866ef
Author: Eric Passmore <eric.passmore@gmail.com>
Date:   Tue Jul 26 17:08:43 2022 -0700

    Merge remote-tracking branch 'refs/remotes/origin/documentation-fixes' into documentation-fixes

    Note pulled in "changes to lower bound description" 766C6164
    Resolved Conflicts No Changes:
    	docs/general_info/glossary.md
    	docs/general_info/protocol-guides/consensus_protocol.md
    	docs/general_info/protocol-guides/network_peer_protocol.md
    	docs/general_info/protocol-guides/transactions_protocol.md
    Changes to be committed:
    	modified:   docs/general_info/protocol-guides/accounts_and_permissions.md
    	modified:   libraries/chain/include/eosio/chain/webassembly/interface.hpp

commit b921bdf987c0206b6704968eaca3bc05c505d469
Author: Eric Passmore <eric.passmore@gmail.com>
Date:   Tue Jul 26 16:44:25 2022 -0700

    removed eos.io from markdown

    - Added docs/general_info/glossary.md
    - Added docs/general_info/protocol-guides
         - overview only for accounts_and_permissions.md
         - overview only for transactions_protocol.md
         - overview only for network_peer_protocol.md
         - overview only for consensus_protocol.md
    - Updated glossary.md to relative path (no more eos.io)
    - Fixed links adding missing .md extenstion
    - Updated protocol-guides to relative path (no more eos.io)
    - Included BiosBoot tutorial on main document portal
    - Fixed or removed broken links inside newly added glossary, guides, and tutorials

    Note: squashed commits on branch down to single commit, less noise, easier to cherry-pick

commit b378866eff4be5cd3986c88a6d6ff39a802fee57
Author: Eric Passmore <eric.passmore@gmail.com>
Date:   Tue Jul 26 15:36:42 2022 -0700

    adding back more missing .md extenstions, and simplying bios-boot-tutorial

commit 2f7c0e65cbf360ba13102c8a5341714c4ce1159d
Author: Eric Passmore <eric.passmore@gmail.com>
Date:   Tue Jul 26 15:14:16 2022 -0700

    fixing more missing .md ext

commit 07b1f16962921acdd35d24c87e6a87378c7a10fc
Author: Eric Passmore <eric.passmore@gmail.com>
Date:   Tue Jul 26 15:03:06 2022 -0700

    updated with .md ext

commit 002b01ddc81e67d09dba40fae9cc2303b4efed7b
Author: Eric Passmore <eric.passmore@gmail.com>
Date:   Tue Jul 26 14:29:33 2022 -0700

    updated formate for glossary links to include .md

commit bf344ae16c76ca1109672b8e9cccc5a69527e3d3
Merge: 3bbb956b5 0cb196b7f
Author: Eric Passmore <eric.passmore@gmail.com>
Date:   Tue Jul 26 08:48:05 2022 -0700

    merging main into documentation-fixes, after removing eso.io references adding glossary and guides

commit 3bbb956b524267c788dd9614011abeda1be96b93
Author: Eric Passmore <eric.passmore@gmail.com>
Date:   Tue Jul 26 08:47:12 2022 -0700

    remove eos.io references, added glossary, guides
2022-08-04 17:52:00 -07:00
Peter Oschwald 6f7457c8fe Quick formatting updates. 2022-08-04 16:33:33 -05:00
Peter Oschwald d572759b0b Renaming to trx_generator 2022-08-04 16:15:45 -05:00
Clayton Calabrese b2e7127ae1 run beast_http and common through clang format. 2022-08-04 16:10:59 -05:00
Peter Oschwald 30f6d5dad1 Finish wiring up the performance_test_basic.py to call the txn_generator and provide initial arguments 2022-08-04 16:07:54 -05:00
Peter Oschwald 927710c077 Merge pull request #746 from eosnetworkfoundation/test_trx_generator
trx generator continued
2022-08-04 14:58:31 -05:00
Peter Oschwald e965747dc3 Starting to provide command line interface for transaction generator.
Additional clean up throughout.

Support dynamic number of passed in accounts to create actions and transactions between.

Remove start_generation as it really wasn't doing anythig any more.
2022-08-04 14:46:39 -05:00
Lin Huang f9b858629e Merge branch 'main' into detailed_except_info_trx_trace 2022-08-04 08:38:23 -04:00
Clayton Calabrese 30c833f701 change so json snapshot reader doesn't put entire stream in memory. merge snapshot and jsonsnapshot code handling 2022-08-03 18:41:42 -05:00
Jonathan Giszczak 31ef362c7b Basic performance test runner. 2022-08-03 18:34:48 -05:00
Peter Oschwald 2de62cb2aa Transaction generator will assume test accounts are already created and will be passed in via command line arguments. 2022-08-03 16:32:56 -05:00
Lin Huang 6514a7d637 Merge pull request #725 from eosnetworkfoundation/plugin_http_api_test_fix
[3.2] Replace hardcoded protocol feature names and digests with dynamically retrieved names and digests
2022-08-03 17:18:47 -04:00
Peter Oschwald 7d492eba95 Merge pull request #737 from eosnetworkfoundation/test_transaction_generator_beginnings
Transaction Generator - Initial commit.
2022-08-03 15:37:46 -05:00
Lin Huang 19c0e035fc make sure code name exists before using it, replace hardcoded ACT_FEATURE_DEFAULT_LIMIT and ACT_FEATURE_CURRENT_EXPECTED_TOTAL 2022-08-03 16:17:47 -04:00
Jonathan Giszczak 12dc0492f6 Add flag to prevent inadvertent resource monitor shutdown during test. 2022-08-03 14:47:26 -05:00
Jonathan Giszczak 86d596ed64 Remove commented code. 2022-08-03 14:42:14 -05:00
Lin Huang 5c698bbdb0 Merge branch 'main' into plugin_http_api_test_fix 2022-08-03 15:01:01 -04:00
Matt Witherspoon 93ae59477d bump fc submod to that with hash warning fixes 2022-08-03 13:00:13 -04:00
ClaytonCalabrese d2d7996ef2 Merge pull request #736 from eosnetworkfoundation/build_and_replace_wasm
[3.2] Update, Replace, and Check Validity of WASM files in mandel
2022-08-03 10:37:01 -05:00
Peter Oschwald c85f169e88 Transaction Generator - Initial commit.
Very rough first draft of a transaction generator to lay the basis for development. Much of this will be refactored or removed as responsibility is delegated to other pieces of the perf harness.  As well as adding command line options as much is hard coded at this time.
2022-08-03 10:24:17 -05:00
Chris Gundlach 9f35958d1e added check for testSuccessful 2022-08-03 10:16:00 -05:00
Chris Gundlach 3509fb3a66 GH-524 cleaned up whitespace 2022-08-03 10:10:39 -05:00
Matt Witherspoon 5449f5bb65 grab bag of warning fixes 2022-08-03 09:11:12 -04:00
Areg Hayrapetian 195face0b7 Merge pull request #742 from eosnetworkfoundation/arhag/GH-361-mod-exp-limits-for-main
[3.1 -> main] Add subjective limit to mod_exp host function
2022-08-02 22:55:53 -07:00
Areg Hayrapetian 6e72e794a7 Update fc submodule. 2022-08-02 21:54:01 -07:00
Areg Hayrapetian 8bdf1d5d75 Merge branch 'release/3.1.x' into arhag/GH-361-mod-exp-limits-for-main 2022-08-02 21:50:00 -07:00
Areg Hayrapetian a0bda40586 Merge pull request #741 from eosnetworkfoundation/some_more_31x
merge #648, #680 & #702 from 3.1 to main
2022-08-02 21:44:59 -07:00
Matt Witherspoon 846d883cad Merge remote-tracking branch 'origin/release/3.1.x' into some_more_31x 2022-08-02 22:49:50 -04:00
Peter Oschwald b3aa74dce5 Transaction Generator - Initial commit.
Very rough first draft of a transaction generator to lay the basis for development. Much of this will be refactored or removed as responsibility is delegated to other pieces of the perf harness.  As well as adding command line options as much is hard coded at this time.
2022-08-02 15:53:47 -05:00
Clayton Calabrese 9d21b27683 remove helper script 2022-08-02 10:41:00 -05:00
Clayton Calabrese e94fe45d48 abi files updated. Add script to bring back abi and wasm changes to source. 2022-08-02 10:27:11 -05:00
Clayton Calabrese c98013059a update wasm and abi to current cdt 2022-08-02 10:11:44 -05:00
Jonathan Giszczak ffc369e561 Move cli_test to nonparallelizable_tests. 2022-08-01 14:44:58 -05:00
Chris Gundlach b73c365e6c added transaction trace plugin 2022-08-01 08:10:03 -05:00
Jonathan Giszczak e5c026a7bb Replace cleos local abi file test with test harness version. 2022-07-31 15:56:20 -05:00
Clayton Calabrese 63b38d2ede fix test failures due to updated deferred_test.wasm 2022-07-29 15:56:26 -05:00
Chris Gundlach a89206157a removed kv test 2022-07-29 09:42:32 -05:00
Chris Gundlach 274cb2b096 re-compiled nested_container test contract 2022-07-29 08:20:56 -05:00
Vlad d36ca7a521 Merge pull request #724 from eosnetworkfoundation/loverbound-doc-corrections
Wrong description for lowerbound comments
2022-07-28 14:20:32 -04:00
Clayton Calabrese 46445273ad add json_snapshot to snapshot_suites so that the json_snapshot is being tested. 2022-07-28 11:02:55 -05:00
Clayton Calabrese 1892a29891 remove vestigial function 'has_section' 2022-07-27 16:38:53 -05:00
Lin Huang 4b81339a2b return the error from the contract itself in the transaction trace log message for asserts 2022-07-27 13:11:55 -04:00
Clayton Calabrese afa88ddaaf implement json snapshot reader 2022-07-27 10:51:27 -05:00
Jonathan Giszczak 7b47eba942 Fix merge problems.
(Which lost the entire point of the change in the confusion.)
2022-07-26 19:47:22 -05:00
Jonathan Giszczak c62fa0329b Update expected error text from cleos in cli_test. 2022-07-26 17:53:39 -05:00
Lin Huang dd3b6a1185 Merge branch 'main' into plugin_http_api_test_fix 2022-07-26 10:07:13 -04:00
Lin Huang 3428e9ddf0 Replace hardcodied protocol feature names and digests with dynamically retrieved names and digests 2022-07-26 09:55:27 -04:00
766C6164 41de4c7944 Fixed lowerbound logic in doc, 5 other places 2022-07-26 07:43:27 -04:00
Vlad 0cb196b7fa Merge pull request #720 from eosnetworkfoundation/fix-db-lowerbound-i64-desc
wrong description for db_lowerbound_i64
2022-07-25 17:17:23 -04:00
Jonathan Giszczak 0a553b9896 Change workflow step label to something human readable. 2022-07-25 14:04:54 -05:00
766C6164 3530680225 Changed logic in description 2022-07-24 22:27:03 -04:00
766C6164 04b3d7e45d Added indication of subjective in err msg 2022-07-24 22:11:57 -04:00
Vlad 10b6513250 Merge pull request #340 from eosnetworkfoundation/state-history-improvements
[3.2] Backporting state history plugin improvements and fixes
2022-07-22 18:12:03 -04:00
Jonathan Giszczak 02fce4905e Make CCACHE_DISABLE visible to docker. 2022-07-22 14:22:56 -05:00
Lin Huang b5fff95824 Merge pull request #643 from eosnetworkfoundation/no-blocks-log
[3.2] Enhancement: Add capability of not genereating block log by setting option block-log-retain-blocks to 0
2022-07-22 12:48:22 -04:00
Lin Huang 38856b4b19 Merge branch 'main' into no-blocks-log 2022-07-22 12:48:01 -04:00
Lin Huang 1fa43f2962 Merge branch 'no-blocks-log' of https://github.com/eosnetworkfoundation/mandel into no-blocks-log 2022-07-22 11:46:02 -04:00
Lin Huang b64aa18acd Remove duplicate setWalletMgr and correct test title 2022-07-22 11:45:20 -04:00
Chris Gundlach f46c75e1e3 GH-524 removed kv test contract 2022-07-22 10:30:17 -05:00
Chris Gundlach 0cb6c941bf GH-524 took out irrelevant tests 2022-07-22 10:13:06 -05:00
Farhad Shahabi 2217875a23 GH-524 Merge pull request #10635 from EOSIO/nested_container_support_set_optional
Cleos support for set<optional<T>> and vector<optional<T>>
2022-07-22 10:08:11 -05:00
766C6164 8854dad074 Helped clang-format manually a bit 2022-07-21 22:42:21 -04:00
Jonathan Giszczak b034c5652e Fixes to disabling ccache. 2022-07-21 17:40:03 -05:00
Jonathan Giszczak 592c440c03 Forcefully uncache CMAKE_C[XX]_COMPILER_LAUNCHER cmake variables. 2022-07-21 15:46:39 -05:00
Jonathan Giszczak a225514e09 Add required token to search PR text in Github workflow. 2022-07-21 15:18:20 -05:00
Jonathan Giszczak 5e7b64230e Add optional no ccache Github workflow. Use [no-ccache] in PR text. 2022-07-21 15:14:47 -05:00
Jonathan Giszczak 014fe70c10 Fix merge problem. 2022-07-21 15:09:37 -05:00
Jonathan Giszczak bdce1ed68f Merge branch 'main' into backport-cleos-local-abi-file 2022-07-21 13:32:30 -05:00
Vlad 738068153d Merge pull request #691 from ericpassmore/main
[proposed bugfix] Docs clean up resolved #676
2022-07-21 14:16:56 -04:00
Lin Huang 7815e5c201 Merge branch 'main' into no-blocks-log 2022-07-21 12:49:54 -04:00
Vlad 3edf7de79a Merge branch 'main' into main 2022-07-21 12:11:23 -04:00
ClaytonCalabrese 6fb94f69e4 Merge pull request #709 from eosnetworkfoundation/get_consensus_parameters_test
[3.2] Add test cases for get_consensus_parameters RPC endpoint
2022-07-21 10:59:32 -05:00
Jonathan Giszczak a0f59c37ab Fix whitespace and scoping. 2022-07-20 22:50:43 -05:00
Jonathan Giszczak 38f46a6f29 Fix merge problem. 2022-07-20 21:04:27 -05:00
Jonathan Giszczak d0c6bb5e82 Merge branch 'new-test-cleos-abi-file' into backport-cleos-local-abi-file 2022-07-20 17:57:09 -05:00
DU Jiaen a39dcb92ea Merge pull request #10821 from EOSIO/kayan_cleos_local_abi_file
Add ability to specify one or more local abi files for cleos for
serialzation/deserialization offline
2022-07-20 17:55:33 -05:00
Christopher Gundlach 814aecade5 Merge pull request #701 from eosnetworkfoundation/backport_action_serialization_data
[3.2] Backport action serialization to always include hex_data.
2022-07-20 18:53:23 -04:00
Clayton Calabrese 4970c7f301 fix build errors 2022-07-20 15:52:39 -05:00
Chris Gundlach 5ed2e8d8f5 GH-659 backport tests for always populate hex_data for actions 2022-07-20 13:17:09 -05:00
Chris Gundlach 81b07f1e3a GH-659 backport always populate hex_data for actions 2022-07-20 13:16:18 -05:00
Kevin Heifner 84a4eae354 Address PR comments, add better description to option 2022-07-20 11:21:45 -05:00
Kevin Heifner 9d1ff5f8a8 Add snapshot-to-json command line option 2022-07-20 11:21:36 -05:00
ClaytonCalabrese 423b20af50 Merge pull request #692 from eosnetworkfoundation/add_chain_api_get_consensus_params
[3.2] Add chain api get_consensus_parameters
2022-07-20 11:04:24 -05:00
ClaytonCalabrese 94a9fb880b Merge pull request #696 from eosnetworkfoundation/cleos_sort_keys
[3.2] cleos sorts keys/permission_levels/waits for "cleos set account permission
2022-07-20 11:04:10 -05:00
766C6164 111353007e Adjusted clang-format 2022-07-19 23:04:00 -04:00
Christopher Gundlach 6a4e948cfb Merge pull request #695 from eosnetworkfoundation/ship_transaction_extension_test
[3.2] Backported SHiP transaction extension unit test
2022-07-19 19:11:58 -04:00
Christopher Gundlach 83205a89ae Merge branch 'main' into ship_transaction_extension_test 2022-07-19 16:51:04 -04:00
Lin Huang 0993331053 Merge branch 'main' into no-blocks-log 2022-07-19 16:19:24 -04:00
Clayton Calabrese 6501fb8f90 fix build errors 2022-07-19 14:43:37 -05:00
Lin Huang 178399e194 Add test cases for get_consensus_parameters RPC endpoint 2022-07-19 13:46:47 -05:00
Clayton Calabrese 830a2766e7 remove mentions of kv_database_config. 2022-07-19 12:05:03 -05:00
Matt Witherspoon 919aa87be3 Merge pull request #690 from eosnetworkfoundation/add-freebsd-build-instructions
Added FreeBSD build instructions
2022-07-19 13:00:40 -04:00
Chris Gundlach e21dadfc05 GH-600 backported SHiP transaction extension unit test 2022-07-19 10:21:55 -05:00
Lin Huang 09938266e7 add optional parameter id to update_head and remove unnecessary logging 2022-07-19 11:19:35 -04:00
Clayton Calabrese ed13718f40 remove duplicate code. increase max_body_size 2022-07-19 09:22:12 -05:00
Christopher Gundlach 4ec35a54cf Merge pull request #649 from eosnetworkfoundation/backport_test_deltas_contract_several_rows
[3.2] Backported contract deltas test
2022-07-19 09:38:29 -04:00
Lin Huang a3e89bbe15 Merge branch 'main' into no-blocks-log 2022-07-19 08:14:22 -04:00
766C6164 987a85c60f Do not unlock mutex in write_entry at all 2022-07-19 03:02:26 -04:00
766C6164 d9d89d3400 Moved unsupported stuff in a separate file 2022-07-19 02:26:01 -04:00
Lin Huang d6c3e25ff2 Merge pull request #663 from eosnetworkfoundation/cleos_activate_subcommand
[3.2] cleos: add get supported_protocol_features and system activate subcommands
2022-07-18 21:13:02 -04:00
Lin Huang c9dba88248 Merge branch 'main' into cleos_activate_subcommand 2022-07-18 19:17:47 -04:00
ClaytonCalabrese c31f87a055 Merge pull request #688 from eosnetworkfoundation/tests_public_key_no_known_priv_key
[3.2] Add tests for creating public key with no private key
2022-07-18 17:05:22 -05:00
Clayton Calabrese 3217b0109e remote get_all_accounts, fix build failures. 2022-07-18 17:02:22 -05:00
Eric Passmore 37a64bbbfb general doc cleanup fixed broken links and unclosed '<' 2022-07-18 14:56:18 -07:00
Eric Ma c061f0aa7e EPE-1708 cleos sorts keys/permission_levels/waits for "cleos set account permission" 2022-07-18 16:52:09 -05:00
Lin Huang 11322f7eb2 Add chain API endpoint and cleos command to retrieve consensus parameters 2022-07-18 11:17:13 -05:00
Lin Huang 5a30dd8c66 Merge branch 'main' into cleos_activate_subcommand 2022-07-18 10:47:34 -04:00
Lin Huang d59a6d9ad8 Merge branch 'main' into no-blocks-log 2022-07-18 10:40:34 -04:00
Lin Huang 6548c151b3 Rewrite block_log_retain_blocks_test.py using standard test Cluster, take appropriate actions in block_log public functions when no block log mode is enabled and add corresponding unit tests, use update_head for all occasions 2022-07-18 10:32:12 -04:00
Peter Oschwald b5132e5712 Merge pull request #686 from eosnetworkfoundation/backport-partial-stdarray-smart-contracts-support
[3.2] Merge pull request #10727 from EOSIO/keke_epe948
2022-07-18 09:17:57 -05:00
766C6164 c26f32bf85 Added FreeBSD build instructions 2022-07-17 23:02:54 -04:00
Lin Huang a88db156a0 Merge branch 'cleos_activate_subcommand' of https://github.com/eosnetworkfoundation/mandel into cleos_activate_subcommand 2022-07-16 07:42:22 -04:00
Lin Huang 26d02d53ef print out supported protocol features if the protocol feature to be activated is unknown 2022-07-16 07:41:51 -04:00
linh2931 e13e5310f0 Merge branch 'main' into cleos_activate_subcommand 2022-07-15 21:36:22 -04:00
Lin Huang 3c276824e2 Merge branch 'cleos_activate_subcommand' of https://github.com/eosnetworkfoundation/mandel into cleos_activate_subcommand 2022-07-15 21:30:16 -04:00
Lin Huang 0f12128ada Add "get supported_protocol_features" subcommand to remove the need to contact the chain in the constructor of activate_subcommand which causes problems for cleos problem initialzation when the chain is offline, and a seperate get supported_protocol_features is clearer 2022-07-15 21:29:25 -04:00
Kevin Heifner 29e6a1ace1 Merge pull request #684 from eosnetworkfoundation/GH-677-into-main
[3.1 -> main] Fix trx_finality_status_test
2022-07-15 15:29:41 -05:00
Chris Gundlach 986d8356bc GH-599 took out debug messages 2022-07-15 14:29:15 -05:00
Chris Gundlach da5a23ba5e GH-599 added 2 abihash deltas to expected deltas 2022-07-15 14:06:47 -05:00
Chris Gundlach 06a7a4f898 GH-599 added abi/wasm for get_table_test 2022-07-15 14:05:35 -05:00
Kevin Heifner 28ff444e14 Add tests for creating public key with no private key 2022-07-15 13:33:19 -05:00
Chris Gundlach a3f367938f GH-599 added missing methods on test contract 2022-07-15 12:45:56 -05:00
Chris Gundlach 1a17c5c928 GH-599 added protocol feature activation for crypto primatives 2022-07-15 12:10:33 -05:00
Kevin Heifner 40ce57c871 Merge remote-tracking branch 'origin/release/3.1.x' into GH-677-into-main 2022-07-15 11:38:08 -05:00
linh2931 ed63a66101 Merge branch 'main' into cleos_activate_subcommand 2022-07-15 08:55:51 -04:00
Lin Huang 3749a3c80c Make descriptions of options account and permission consistent 2022-07-14 21:51:30 -04:00
Lin Huang 69711ea65a Remove hardcodied list of protocol features and their digests by using get_supported_protocol_features RPC; provide account and permission options 2022-07-14 21:37:05 -04:00
Vlad 8e5ac5f481 Merge pull request #647 from eosnetworkfoundation/handle-dirty-db
[3.2] controller::extract_chain_id_from_db() does not properly handle dirty db
2022-07-14 20:52:43 -04:00
766C6164 9e8fc55142 Made both acceptors work at the same time 2022-07-14 20:45:41 -04:00
766C6164 dc12109f48 Un-clang-format 2022-07-14 19:33:16 -04:00
Vlad 9a9ee50adf Merge pull request #674 from eosnetworkfoundation/add-signature-arg
[3.2] Backport: allow multiple signatures in cleos command “push transaction”
2022-07-14 18:52:10 -04:00
softprofe f784beb981 GH-526 Merge pull request #10727 from EOSIO/keke_epe948
Partly support using std::array in smart contract
2022-07-14 15:34:50 -05:00
ClaytonCalabrese a84816f04c Merge pull request #652 from eosnetworkfoundation/add_nodeos_extra_packed_data_test
[3.2] extra transaction data integration test
2022-07-14 14:14:50 -05:00
Clayton Calabrese f40e17d43f address plugin_http_api_test failure and build failure 2022-07-14 13:29:32 -05:00
766C6164 aa5d31ac74 Added "signature" arg to cleos 2022-07-14 13:00:46 -04:00
Vlad 45ae6210ba Merge pull request #662 from eosnetworkfoundation/improve-test-reliability
[3.2] Backport: Add waits for token transfer block to improve reliability
2022-07-13 21:02:56 -04:00
766C6164 7f032dbfd6 Added comment on why non-propagating system_error 2022-07-13 18:31:14 -04:00
766C6164 8e26701f37 Removed check for WIN32, windows should be supported now 2022-07-13 18:04:51 -04:00
766C6164 911861725d One listen function, std::variant for acceptor, etc 2022-07-13 17:44:05 -04:00
Patrick Raphael 23aa0096d8 Merge pull request #10689 from EOSIO/pdr/EPE-9
http_plugin boost::beast migration, keep-alive (EPE-9 / GH-3678)
2022-07-13 16:20:52 -05:00
Peter Oschwald aabc1505cb Merge pull request #671 from eosnetworkfoundation/backport-use-new-appbase-method-caller
[3.2] Backport: Use new appbase method caller
2022-07-13 15:31:50 -05:00
Peter Oschwald a7f99b7ebb GH-447 Delete duplicate call. 2022-07-13 14:42:52 -05:00
Peter Oschwald dc78df121e Merge pull request #670 from eosnetworkfoundation/merge-3.1.x-into-main
[3.1 -> main] Bring GH-651 and GH-646 into main
2022-07-13 13:42:52 -05:00
Peter Oschwald a69b845e4a Merge branch 'main' into backport-use-new-appbase-method-caller 2022-07-13 13:09:21 -05:00
ClaytonCalabrese 3f916d0f95 Merge pull request #660 from eosnetworkfoundation/disable_appbase_automatic_version_discovery_git
[3.2] disable appbase's automatic version discovery via git
2022-07-13 12:55:40 -05:00
Peter Oschwald b05d6ae8e1 GH-447 Remove incorrect comment. 2022-07-13 12:44:32 -05:00
Kevin Heifner 3a866eba7d GH-447 Merge pull request #10696 from EOSIO/fwd-ref-dev
Use new appbase method caller
2022-07-13 12:28:41 -05:00
Peter Oschwald f6fd22a1c0 Merge pull request #668 from eosnetworkfoundation/backport-save-snapshot-json-gz-on-test-fail
[3.2] Backport: save snapshot json gz files when snapshot test fails
2022-07-13 12:14:55 -05:00
Peter Oschwald 03fc82695b Merge remote-tracking branch 'mandel/release/3.1.x' into merge-3.1.x-into-main 2022-07-13 12:11:14 -05:00
Clayton Calabrese ff1523a5e9 update appbase to new commit 2022-07-13 11:37:37 -05:00
Peter Oschwald 7588963d63 Merge pull request #667 from eosnetworkfoundation/backport-fix-cleos-version
[3.2] Backport: fix wrong cleos version returned in getClientVersion of tests/Cluster.py
2022-07-13 11:35:11 -05:00
766C6164 2152cfac6f Use single string for both sockets 2022-07-13 11:50:18 -04:00
ClaytonCalabrese e9c21e27a7 Merge pull request #650 from eosnetworkfoundation/custom_config_dir_plugin_http_api_test
[3.2] force the plugin_http_api_test to use a custom config dir
2022-07-13 10:49:35 -05:00
766C6164 6f520bfb8f Fuxup fc_xlog vs xlog 2022-07-13 11:33:29 -04:00
softprofe 94c6e67436 Merge pull request #10507 from EOSIO/keke_epe898
EPE 898, Save snapshot json gz files to build/unittests/snapshots when test fails
2022-07-13 10:16:53 -05:00
Peter Oschwald 098fe051cd GH-465 Fix getClientVersion.
getClientVersion now returns a version format as expected from cleos version client.

If fullVersion is enabled, cleos full version will be returned which includes commit version.
2022-07-13 09:58:41 -05:00
766C6164 e1068c2ae2 Stray whitespaces fixes 2022-07-13 10:48:36 -04:00
Chris Gundlach ee0dd02dd0 GH-599 commented out portion of test dependent on missing test contract actions 2022-07-13 09:21:34 -05:00
Lin Huang 6236f47996 update protocol feature list to match Mandel, clean up help, and remove PREACTIVATE_FEATURE as it cannot be activated via activate action 2022-07-12 20:39:23 -04:00
766C6164 5703159607 added waitForTransBlock 2022-07-12 18:43:11 -04:00
Peter Oschwald aee048e04c Merge pull request #661 from eosnetworkfoundation/backport-unit-test-get-acct
[3.2] Backport: Add unit tests for new fields get account in chain_plugin
2022-07-12 17:18:09 -05:00
Clayton Calabrese 505d369ab5 update head of appbase 2022-07-12 16:11:46 -05:00
Peter Oschwald 1dbd544fdb GH-441 Use single-header variant of the UTF. 2022-07-12 15:56:53 -05:00
Matt Witherspoon 40fb86f282 Merge pull request #10236 from EOSIO/disable_appbase_git_describe
disable appbase's automatic version discovery via git
2022-07-12 15:47:21 -05:00
Peter Oschwald f04f8baed2 Merge pull request #658 from eosnetworkfoundation/jira-issue-creator-update
Update jiraIssueCreator.yml
2022-07-12 15:07:20 -05:00
Peter Oschwald 324d742423 Update jiraIssueCreator.yml
Try off the issue object for the html url
2022-07-12 15:02:02 -05:00
Peter Oschwald 76529e1248 Merge pull request #657 from eosnetworkfoundation/jira-issues-creator-fix
Update jiraIssueCreator.yml
2022-07-12 14:57:46 -05:00
Peter Oschwald 9905f19668 Update jiraIssueCreator.yml
Try html_url
2022-07-12 14:55:30 -05:00
Peter Oschwald 263aa270d1 Merge pull request #656 from eosnetworkfoundation/jira-issue-creator-fix
Update jiraIssueCreator.yml
2022-07-12 14:49:43 -05:00
Peter Oschwald 31db0de0ba Update jiraIssueCreator.yml
Fix typo
2022-07-12 14:47:48 -05:00
Peter Oschwald 5600327c5f Merge pull request #655 from eosnetworkfoundation/jira-issue-creator-update
Update jiraIssueCreator.yml
2022-07-12 14:43:51 -05:00
Peter Oschwald 45c336e883 Update jiraIssueCreator.yml
Attempt to grab the direct html url of the issue instead of the REST API url to the issue.
2022-07-12 14:32:41 -05:00
Christopher Gundlach 79ca9d75e4 Merge pull request #644 from eosnetworkfoundation/backport_pop_a_delta
[3.2] Backport: pop a delta with empty rows
2022-07-12 13:57:51 -04:00
Peter Oschwald d4125fe729 GH-441 Fix number of arguments required. 2022-07-12 12:34:19 -05:00
Clayton Calabrese 92a49646dc use config dir in plugin_http_api_test 2022-07-12 11:53:20 -05:00
Clayton Calabrese cc81ea1585 fix nodeos_extra_packed_data_test failure. 2022-07-12 11:28:42 -05:00
Clayton Calabrese 09d5b42b9a force the plugin_http_api_test to use a custom config dir so it doesn't see a rare failure case. 2022-07-12 10:04:25 -05:00
Chris Gundlach b5756d7e6b GH-599 backported contract deltas test 2022-07-12 09:57:02 -05:00
nickjjzhao e9c60bc8d2 GH-441 Merge pull request #9994 from EOSIO/jjz-epe584-chain-plugin-unit-tests
Add unit tests for new fields added for get account in PR#9838
2022-07-12 09:30:08 -05:00
Peter Oschwald 3a80532366 Merge pull request #645 from eosnetworkfoundation/backport-move-to-from-variant-to-fc
[3.2] Backport: move fc::blob to/from_variant out of libchain to fc
2022-07-12 09:23:15 -05:00
Keke Li e1f93acfca enhance error handling 2022-07-12 10:16:07 -04:00
Keke Li ac6b604ce1 Add cleos system activate subcommand to activate a system feature. such as: cleos system activate kv_database. don't need using digest. 2022-07-12 10:15:26 -04:00
linh2931 5e9a867efc Merge pull request #635 from eosnetworkfoundation/fix-strict-aliasing
[3.2] fix break strict-aliasing rules warnings in get_table_tests.cpp
2022-07-12 07:56:03 -04:00
linh2931 143fda3fa6 Merge branch 'main' into fix-strict-aliasing 2022-07-12 07:55:48 -04:00
Kevin Heifner db21390026 Merge pull request #634 from eosnetworkfoundation/GH-461-opt
[3.2] Backport of 2.1 optimizations
2022-07-12 06:48:09 -05:00
linh2931 017bc2429d Merge branch 'main' into fix-strict-aliasing 2022-07-11 21:59:31 -04:00
linh2931 b019793a42 Merge pull request #636 from eosnetworkfoundation/fix_misc_warning
[3.2] fixed compile warnings in abi_tests.cpp (real bug, missing test), auth_tests.cpp, bootseq_tests.cpp, and whitelist_blacklist_tests.cpp
2022-07-11 21:59:09 -04:00
linh2931 a024a787c2 Merge branch 'main' into fix_misc_warning 2022-07-11 21:19:09 -04:00
linh2931 685d5f16c3 Merge pull request #593 from eosnetworkfoundation/simplify_deep_mind_log
[3.2] simplify deep_mine_tests by replacing complicated merge and match with  straight-forward file copying and comparison
2022-07-11 21:18:33 -04:00
766C6164 39d0b17894 Propagate all exceptions minus system_error 2022-07-11 20:41:46 -04:00
linh2931 6c302ca0d1 Merge branch 'main' into simplify_deep_mind_log 2022-07-11 20:35:04 -04:00
linh2931 e8e7a6317f Merge branch 'main' into fix-strict-aliasing 2022-07-11 20:33:25 -04:00
linh2931 2336c9719e Merge branch 'main' into fix_misc_warning 2022-07-11 20:33:06 -04:00
Peter Oschwald ba59e6c48c GH-439 Update fc back to main post fc update. 2022-07-11 19:24:05 -05:00
Kevin Heifner 2769a23902 Merge pull request #630 from eosnetworkfoundation/GH-435-http-empty
[3.2] Allow HTTP-RPC with empty response
2022-07-11 18:10:10 -05:00
Kevin Heifner 82d217ffd5 Merge pull request #628 from eosnetworkfoundation/GH-434-snapshot
[3.2] Add snapshot test and refactor pending_snapshot
2022-07-11 18:09:44 -05:00
Matt Witherspoon 3d6319b47d GH-439 Merge pull request #9978 from EOSIO/blob_variant_impl_to_fc
move fc::blob to/from_variant out of libchain to fc
2022-07-11 17:17:47 -05:00
766C6164 46f1d4c84b Merge branch 'main' of https://github.com/eosnetworkfoundation/mandel into state-history-improvements 2022-07-11 17:08:39 -04:00
dimas1185 0771e99d26 Merge pull request #9915 from EOSIO/extra-data-test
extra transaction data integration test
2022-07-11 14:49:30 -05:00
Chris Gundlach d3905d5975 took out kv references 2022-07-11 10:29:08 -05:00
Victor Camacho 2ad747a239 Merge pull request #9686 from EOSIO/empty_deltas_issue
Pop back a delta with empty rows #9386
2022-07-11 10:05:01 -05:00
Lin Huang bb3968dd51 Add capability of not genereating block log by setting option return-blocks to 0 2022-07-11 10:33:19 -04:00
Matt Witherspoon 19f1874fbe Merge pull request #637 from eosnetworkfoundation/p2p_log_spell_main
[3.1 -> main] spelling fixes in p2p log messages
2022-07-11 10:13:55 -04:00
linh2931 ccb7134256 Merge branch 'main' into simplify_deep_mind_log 2022-07-11 10:09:45 -04:00
Kevin Heifner 5241e96113 Merge pull request #629 from eosnetworkfoundation/GH-623-to-main
[3.1 -> main] Fix for block producer stuck in coma state
2022-07-11 07:07:57 -05:00
Matt Witherspoon 982c1cb8e3 Merge remote-tracking branch 'origin/release/3.1.x' into p2p_log_spell_main 2022-07-10 12:46:33 -04:00
Lin Huang 8352c20e57 fixing compile warnings in abi_tests.cpp (real bug, missing test), auth_tests.cpp, bootseq_tests.cpp, and whitelist_blacklist_tests.cpp 2022-07-09 21:14:48 -04:00
Lin Huang 47923244fc fix break strict-aliasing rules warning 2022-07-09 19:37:53 -04:00
Kevin Heifner 082cbe2649 GH-461 Fix merge issue. 2022-07-09 17:52:14 -05:00
Kevin Heifner 68d1c7333b GH-461 Fix merge issues. 2022-07-09 17:45:14 -05:00
Kevin Heifner e399374063 GH-461 Use new block log append method 2022-07-09 17:44:57 -05:00
Kevin Heifner 2b72cf6453 Merge pull request #8524 from EOSIO/2.0.1-security-omnibus-dev
2.0.1 security omnibus - develop
2022-07-09 17:17:10 -05:00
Kevin Heifner bcd55fd530 Merge pull request #9760 from EOSIO/opt-kh
Moved packing of block in thread pool into controller.

Optimizations
2022-07-09 17:03:23 -05:00
Kevin Heifner e5b8ac9e47 Merge pull request #9633 from EOSIO/conr2d-allow-empty-response
Allow HTTP-RPC with empty response
2022-07-09 15:37:21 -05:00
Kevin Heifner 1f17227e7d Merge remote-tracking branch 'origin/release/3.1.x' into GH-623-to-main 2022-07-09 15:12:48 -05:00
Venu Kailasa 40e903cb3f Moved unit test from core unit tests to stand-alone unit test in producer plugin
Also factored out pending_snapshot.?xx
2022-07-09 09:30:52 -05:00
Peter Oschwald d786299a95 Merge pull request #622 from eosnetworkfoundation/backport-test-contract-fixes
[3.2] Backport test contract fixes
2022-07-08 22:40:59 -05:00
Matt Witherspoon f028ddb05c Merge pull request #419 from eosnetworkfoundation/secure_enclave_only_on_valid_cert
before enabling Secure Enclave wallet require code be signed with a certificate
2022-07-08 23:11:18 -04:00
Peter Oschwald 866ee1895f GH-459 Maintain/add explicit support for building test contracts with cdt v1.8.0 2022-07-08 20:34:34 -05:00
Christopher Gundlach 72712b6d94 Merge pull request #625 from eosnetworkfoundation/backport_additional_ship_unit_tests
Backport SHiP tests
2022-07-08 19:58:25 -04:00
linh2931 aab34becfa Merge pull request #626 from eosnetworkfoundation/fix_cleos_warning
[3.2] fixing compile warnings in cleos main.cpp
2022-07-08 17:44:43 -04:00
Matt Witherspoon 12c4caef80 add 2019 Mac Pro to secure enclave wallet whitelist 2022-07-08 17:35:18 -04:00
Lin Huang 87d0a856f5 Only remove auto = getSchedule from auto getSchedule = get_schedule_subcommand{get} 2022-07-08 16:36:20 -04:00
Peter Oschwald ba79acfe64 GH-459 Maintain/add support for building test contracts with cdt v1.7.0 2022-07-08 15:05:41 -05:00
Chris Gundlach 4449c7dcfc added unit test from original version of state_history_test 2022-07-08 12:45:58 -05:00
Lin Huang 31b9272b7d fixing compile warnings in cleos main.cpp 2022-07-08 13:26:39 -04:00
Chris Gundlach 1db602aa46 re-implement state_history_tester_logs 2022-07-08 12:02:25 -05:00
Kevin Heifner 03be094a6a GH-625 Remove non-applicable ship tests. 2022-07-08 11:58:28 -05:00
Matt Witherspoon 037a930c76 Merge pull request #624 from eosnetworkfoundation/find_deb_llvmdev_paranoia_main
[3.1 -> main] ensure an empty llvm-dev dep doesn't make its way to mandel-dev .deb
2022-07-08 12:22:44 -04:00
Chris Gundlach 5698ab021d GH-597 removed ship_abi from cmake 2022-07-08 09:35:42 -05:00
Chris Gundlach d3220529d1 GH-597 various fixes to align with Mandel codebase 2022-07-08 09:17:00 -05:00
Vlad 89a3a6c6ea Merge pull request #620 from eosnetworkfoundation/ship-reduce-logs
[3.2] Backport: [statehist] Ship logs reduction / optimization
2022-07-08 09:47:48 -04:00
Peter Oschwald 77480b98bc GH-459 Address peer review comments. 2022-07-08 08:43:55 -05:00
766C6164 0c0d14851d Undo docs change grought after rebase to main 2022-07-08 09:31:15 -04:00
766C6164 ad0234f0eb Typo, forgot the _log 2022-07-08 09:27:23 -04:00
766C6164 45e0e9ef4c Merge remote-tracking branch 'origin/main' into ship-reduce-logs 2022-07-08 09:23:33 -04:00
766C6164 d2b7bf0ef5 Put log reduction constants inline 2022-07-08 09:11:35 -04:00
Matt Witherspoon 790ee9e598 Merge remote-tracking branch 'origin/release/3.1.x' into find_deb_llvmdev_paranoia_main 2022-07-07 22:15:54 -04:00
Christopher Gundlach 9bac82b7c3 Merge pull request #595 from eosnetworkfoundation/backport_ship_logging
[3.2] Backport separate logging for state history plugin
2022-07-07 21:41:20 -04:00
dimas1185 cf380d1e3e GH-459 Merge pull request #9390 from EOSIO/fix-test-contracts
test contracts fix
2022-07-07 17:43:25 -05:00
Peter Oschwald 8155367ae4 GH-459 Update packages, names, paths, that have changed in mandel.cdt. 2022-07-07 17:43:25 -05:00
kimjh2005 5c2c97af42 GH-459 Merge pull request #9114 from EOSIO/epe-37-test-contracts-develop
[develop] Epe 37 fix test contracts  build
2022-07-07 17:43:15 -05:00
linh2931 c03834c9e4 Merge branch 'main' into simplify_deep_mind_log 2022-07-07 14:53:59 -04:00
Vlad 76da53b924 Merge pull request #569 from eosnetworkfoundation/docs-updates
Update and bring to current state mandel/docs
2022-07-07 13:46:59 -04:00
766C6164 7716020c01 Fixed butchered by md plugin index 2022-07-07 13:08:58 -04:00
766C6164 8c9c75ee37 Update "an EOSIO" 2022-07-07 12:59:53 -04:00
766C6164 e3dc31c4d3 Mandel -> EOSIO 2022-07-07 12:57:03 -04:00
766C6164 9b83858d31 Added check for block_state being empty 2022-07-07 12:51:05 -04:00
Chris Gundlach 01ec3856f8 cleaned up N() to _n issues 2022-07-07 10:54:46 -05:00
766C6164 11c08783e2 Introduce and reduce ship logs 2022-07-07 11:36:38 -04:00
Chris Gundlach f1fd1b66a9 added example state_history logging config 2022-07-07 08:58:34 -05:00
Chris Gundlach 8d360aafaa added missing abi libraries 2022-07-07 08:51:13 -05:00
linh2931 d6b55a9a88 Merge pull request #615 from eosnetworkfoundation/fix_memory_h_warning
[3.2] Fix compile warnings in eos-vm-oc's memory.hpp, executor.cpp, and memory.cpp
2022-07-07 08:57:24 -04:00
766C6164 ba3ab2eb93 Fixes added link to DUNE 2022-07-07 08:16:58 -04:00
Vlad a565d8302a Merge branch 'main' into docs-updates 2022-07-07 08:12:32 -04:00
linh2931 f9ef85939a Merge branch 'main' into fix_memory_h_warning 2022-07-07 07:54:59 -04:00
Lin Huang 4e24b85036 Fix a typo introduced to an assert string by accident 2022-07-06 19:38:37 -04:00
Jingjun Zhao 727bd4420d Add test cases for cleos new option --abi-file 2022-07-06 17:44:32 -05:00
Lin Huang 5f8dc7f14f Fixing compile warnings in eos-vm-oc's memory.hpp, executor.cpp, and memory.cpp 2022-07-06 17:59:48 -04:00
jgiszczak 8001c3a523 Merge pull request #613 from eosnetworkfoundation/add-extract-blocks-to-eosio-blocklog-tool
[3.2] Fix typo in log message format string.
2022-07-06 16:30:50 -05:00
Jonathan Giszczak 4cd646255a Fix typo in log message format string. 2022-07-06 15:42:39 -05:00
jgiszczak 33aff9ea02 Merge pull request #535 from eosnetworkfoundation/add-extract-blocks-to-eosio-blocklog-tool
[3.2] Add extract-blocks option to eosio-blocklog
2022-07-06 13:39:40 -05:00
Victor Camacho fb51a455e7 GH-597 Merge pull request #9253 from EOSIO/feature/ship-unit-tests - WIP
Additional ShIP unit tests
2022-07-06 13:38:27 -05:00
Kevin Heifner ad48f91424 Merge pull request #611 from eosnetworkfoundation/pull-in-3.1.0-rc2
[3.1 -> main] Pull in 3.1.0-rc2
2022-07-06 12:17:20 -05:00
Jonathan Giszczak 8be80df905 Add const to local variable in extract_block_range 2022-07-06 11:31:58 -05:00
Kevin Heifner 8f43222de9 Pull in 3.1.0-rc2 2022-07-06 11:17:16 -05:00
Bucky Kittinger 3110938f74 Merge pull request #609 from eosnetworkfoundation/GH-554-GH-602-for-main
[3.1 -> main] Allow zero in alt_bn128; fix gmp linking in EosioTester
2022-07-06 12:02:02 -04:00
Bucky Kittinger adde25b778 bump submod 2022-07-06 10:24:36 -04:00
Areg Hayrapetian 18434830c9 Merge remote-tracking branch 'origin/GH-554-GH-602-for-3.1' into GH-554-GH-602-for-main 2022-07-05 23:05:45 -07:00
linh2931 2c705416fc Merge pull request #607 from eosnetworkfoundation/rebase-to-head-of-abieos
[3.2] mandel: rebase abieos to the head of abieos submodule (fixing compile warnings)
2022-07-05 17:53:19 -04:00
linh2931 83a04998e1 Merge pull request #605 from eosnetworkfoundation/remove_msvc
[3.2] remove old outdated MSVC paths in cmake files
2022-07-05 17:38:20 -04:00
linh2931 572e6fa2d6 Merge branch 'main' into remove_msvc 2022-07-05 16:58:47 -04:00
Lin Huang a39d0d1465 rebase abieos to the head of abieos submodule 2022-07-05 16:46:48 -04:00
Peter Oschwald 2de94ed050 Merge pull request #603 from eosnetworkfoundation/github-to-jira-issue-relay-update
[3.2] Update jiraIssueCreator.yml
2022-07-05 15:22:52 -05:00
Matt Witherspoon 9263f850fd remove old outdated MSVC paths in cmake files 2022-07-05 15:04:39 -04:00
Kevin Heifner daa2eb0a47 Merge pull request #604 from eosnetworkfoundation/GH-590-into-main
[3.1 -> main] Fix race condition on trace_api_plugin shutdown
2022-07-05 13:24:18 -05:00
Kevin Heifner 3ca29342f7 Merge remote-tracking branch 'origin/release/3.1.x' into GH-590-into-main 2022-07-05 12:42:08 -05:00
Peter Oschwald 87a379c1f3 Update jiraIssueCreator.yml
For now, remove github issue body as it will often break json format without some additional work.  For now just include the github issue link.
2022-07-05 11:49:54 -05:00
Lin Huang 5aa314582f Use fc::rename instead of our own file copy function 2022-07-05 11:32:16 -04:00
Huang-Ming Huang 46ee60f0e8 GH-575 Merge pull request #9208 from EOSIO/state-history-logger
add separate logging for state history plugin
2022-07-05 10:12:49 -05:00
Matt Witherspoon e73efe1519 Merge pull request #594 from eosnetworkfoundation/CONTRIBUTING_main
[3.1 -> main] fixup CONTRIBUTING.md
2022-07-05 10:55:49 -04:00
Kevin Heifner e816432d9d Merge pull request #550 from eosnetworkfoundation/save-logs
[3.2] Add logs to artifacts
2022-07-05 07:11:20 -05:00
Matt Witherspoon bb925e4e53 Merge remote-tracking branch 'origin/release/3.1.x' into CONTRIBUTING_main 2022-07-04 19:33:48 -04:00
Lin Huang 671c586620 simplify deep_mine_tests by replacing complicated merge and match with straight-forward file saving and comparison, made possible by PR #383's fix of non-determinism of deep-mind logger 2022-07-03 11:03:19 -04:00
ClaytonCalabrese e368e17af9 Merge pull request #586 from eosnetworkfoundation/light_sync_validation_test
[3.2] Light sync validation test
2022-07-03 07:48:02 -05:00
Kevin Heifner 6e176965f9 Merge pull request #591 from eosnetworkfoundation/GH-590-shutdown-race
[3.1] Fix race condition on trace_api_plugin shutdown
2022-07-02 13:05:50 -05:00
Kevin Heifner df641335b8 GH-139 tar gzip up the logs for upload. 2022-07-01 21:48:57 -05:00
Kevin Heifner 0faf59b663 GH-590 Fix race condition on shutdown 2022-07-01 20:43:35 -05:00
Kevin Heifner 37dfc777ab GH-139 Only upload logs on failure. 2022-07-01 20:22:00 -05:00
Kevin Heifner c23b413110 Merge pull request #587 from eosnetworkfoundation/github-to-jira-issue-relay
Github workflow to create new jira issues on OCI label
2022-07-01 17:10:29 -05:00
Peter Oschwald 061828bddc Create github workflow to create new jira issues when github issues are labeled OCI. 2022-07-01 17:05:50 -05:00
Clayton Calabrese 4423ba406e merge from main 2022-07-01 10:32:09 -05:00
ClaytonCalabrese a055cd2a1a Merge pull request #573 from eosnetworkfoundation/block_replay_test
[3.2] Add block replay test
2022-07-01 10:02:52 -05:00
Kevin Heifner c12aae8e02 GH-139 Copy logs to avoid permission issues and use if: always() so they are also uploaded on test failures. 2022-06-30 21:20:38 -05:00
linh2931 0d47fe7b34 Merge pull request #570 from eosnetworkfoundation/add_abi_tests
[3.2] Backport: Add ABI action trace tests
2022-06-30 21:33:41 -04:00
linh2931 d1cda466e6 Merge branch 'main' into add_abi_tests 2022-06-30 21:33:17 -04:00
Peter Oschwald 32442818ff Merge pull request #584 from eosnetworkfoundation/backport-trace-plugin-api-test
[3.2] Backport: Add trace plugin API test
2022-06-30 19:46:05 -05:00
Peter Oschwald 0bcd3e5898 Merge pull request #581 from eosnetworkfoundation/backport-fix-unpack-data
[3.2] Backport: Fix unpack data for signing transaction
2022-06-30 19:45:44 -05:00
Peter Oschwald 27abc7f577 Merge pull request #580 from eosnetworkfoundation/backport-unpack-transaction-data
[3.2] Backport unpack transaction data
2022-06-30 19:45:21 -05:00
Peter Oschwald 770a700257 GH-427 Fix issue in getTransBlockNum where if except was None it would fail with no_block instead of returning the block number. 2022-06-30 18:00:05 -05:00
linh2931 57ebafe45c Merge branch 'main' into add_abi_tests 2022-06-30 18:34:56 -04:00
allenhan2 d5d9e2009f GH-427 Merge pull request #9194 from EOSIO/trace_plugin_test
Add trace plugin  API test
2022-06-30 16:41:19 -05:00
linh2931 36d7ff52a0 Merge pull request #572 from eosnetworkfoundation/point-to-main-of-eosio-wasm-spec-tests
Switch mandel/eosio-wasm-spec-tests to point to mandel-wsam-spec-tests' branch from historical-v2.1.x to main
2022-06-30 16:58:26 -04:00
Peter Oschwald f184f2b3fb GH-399 Fix up argument list to make sure all arguments align. 2022-06-30 15:51:43 -05:00
allenhan2 2fde691fd3 GH-399 Merge pull request #8931 from EOSIO/fix_sign_unpack_data
Fix unpack data for signing transaction
2022-06-30 15:39:18 -05:00
Clayton Calabrese 2e24e37ab8 resolve test fialures in light_validation_sync_test. 2022-06-30 15:36:13 -05:00
Peter Oschwald 8a7605bbf7 GH-579 Fix pushMessage to allow not expecting transaction traces when using -d --dont-broadcast option 2022-06-30 15:30:03 -05:00
Victor Camacho ae42480e3b GH-579 Merge pull request #8676 from EOSIO/feature/cleos-to-unpack-data-when-forming-transaction
add cleos option to unpack data when forming transaction, useful for …
2022-06-30 15:28:41 -05:00
linh2931 f3d34f750a Merge branch 'main' into point-to-main-of-eosio-wasm-spec-tests 2022-06-30 15:38:18 -04:00
Kevin Heifner 9b6c663953 Merge pull request #8851 from huangminghuang/light-validation-sync-test
add light validation sync test
2022-06-30 13:14:46 -05:00
Lin Huang a892819304 point to main branch of wasm-spec-tests submodule 2022-06-30 13:02:28 -04:00
linh2931 60a5ee333a Merge pull request #561 from eosnetworkfoundation/http_max_inflight_reqs
[3.2] Add --http-max-in-flight-requests to http_plugin option
2022-06-30 12:55:07 -04:00
Clayton Calabrese 905f689e6a resolve build failures from cherry-pick 2022-06-30 11:07:51 -05:00
Kevin Heifner d4a7f362f4 Merge pull request #8847 from huangminghuang/block-replay-test
add block replay test
2022-06-30 11:05:14 -05:00
Lin Huang 2ec42da73c Change usage of fc::optional to std::optional installed version of FC does not have optional and remove discarded account_disk_deltas from expected results 2022-06-30 09:33:10 -04:00
linh2931 b826fc223c Merge branch 'main' into http_max_inflight_reqs 2022-06-30 08:01:54 -04:00
766C6164 374018cb73 docs cleanup 2022-06-29 22:29:11 -04:00
ClaytonCalabrese 2d10053324 Merge pull request #551 from eosnetworkfoundation/skip_context_free_light_validation
[3.2] skip context free actions during light validation
2022-06-29 20:46:32 -05:00
Maxim Kirov 3785f38179 added unit tests 2022-06-29 16:50:05 -04:00
linh2931 8c24959d46 Merge pull request #565 from eosnetworkfoundation/fix_build_path_spaces
[3.2] Backport: Fix build when build path has spaces for mandel and appbase
2022-06-29 15:14:11 -04:00
linh2931 8de6312609 Merge branch 'main' into fix_build_path_spaces 2022-06-29 15:12:06 -04:00
Peter Oschwald 151c429f8b Merge pull request #563 from eosnetworkfoundation/backport-cleos-trx-compression
[3.2] Backport: Add cleos --compression option for transactions
2022-06-29 13:50:32 -05:00
Lin Huang ce31ba0eb2 Fix build when build path has spaces for mandel and appbase 2022-06-29 12:57:26 -04:00
Peter Oschwald df61cc1fd8 Merge pull request #560 from eosnetworkfoundation/backport-integration-test-transaction-copies
[3.2] Backport: Create integration test for sending copies of the same transaction into the network
2022-06-29 11:02:02 -05:00
Peter Oschwald 58971d3290 Merge pull request #547 from eosnetworkfoundation/backport-cleos-transaction-signature-keys
[3.2] Backport cleos transaction signature keys
2022-06-29 10:43:07 -05:00
Peter Oschwald bea59c15da Merge branch 'main' into backport-cleos-transaction-signature-keys 2022-06-29 09:16:23 -05:00
Kevin Heifner d14a5f3635 GH-423 Merge pull request #9050 from EOSIO/cleos-set-code-compression-dev
Add cleos --compression option for transactions
2022-06-29 08:55:35 -05:00
Peter Oschwald 7661a16cc7 GH-422 Add opts back in since default was removed in Node.py. Needed for test to pass. 2022-06-29 08:48:39 -05:00
Peter Oschwald 5a099a0fb6 GH-422 Remove spaces in arguments. 2022-06-29 08:47:53 -05:00
Peter Oschwald b3dd31145f GH-422 Fix error reporting to be in the assert printout. 2022-06-29 08:47:16 -05:00
Kevin Heifner 85b98257c4 Merge pull request #537 from eosnetworkfoundation/additional-logging
[3.2] Additional transaction/block time logging
2022-06-29 07:17:44 -05:00
Kevin Heifner 9c17974971 Merge remote-tracking branch 'origin/main' into additional-logging 2022-06-28 19:49:44 -05:00
Kevin Heifner 046dd033b8 GH-139 Provide unique name for each set of logs 2022-06-28 19:38:01 -05:00
linh2931 c0d4b9e432 Merge branch 'main' into http_max_inflight_reqs 2022-06-28 19:40:55 -04:00
Lin Huang 234ed11b36 manually pulled in the remaining of max requests in flight changes 2022-06-28 18:49:39 -04:00
Jonathan Giszczak d8aec8b52b Remove helpful, user-friendly, innocuous, completely optional dependency
and completely eliminate progress reporting from block log extraction.
2022-06-28 17:19:01 -05:00
Peter Oschwald 4acbfccd1c GH-422 Set default expiration back to 90 to allow for tests to finish. 2022-06-28 15:05:12 -05:00
Peter Oschwald e8260d61a9 GH-422 Fix log message. 2022-06-28 15:03:27 -05:00
Brian Johnson ab002a67e2 GH-422 Merge pull request #8232 from EOSIO/8224-repeat-transaction-lr-test
Create integration test for sending copies of the same transaction into the network
2022-06-28 13:38:51 -05:00
Qing Zhang f23645fc58 introduce an option to restrict the maximum number of open HTTP RPC requests,
resolve a number of merge conflicts
2022-06-28 14:33:35 -04:00
ClaytonCalabrese 609f55db28 Merge pull request #543 from eosnetworkfoundation/cleos_auth_structure_new_account
[3.2] Add authority structure to cleos system newaccount
2022-06-28 11:00:41 -05:00
Clayton Calabrese 6be26f3ac8 fix cherry-pick build failures. 2022-06-28 10:57:28 -05:00
Kevin Heifner 2e0e164583 Merge remote-tracking branch 'origin/main' into save-logs 2022-06-28 09:27:37 -05:00
766C6164 1282a2c168 Cleaned up and reformatted 2022-06-28 10:21:32 -04:00
Peter Oschwald dcb80fb15b GH-403 Fix failing tests due to publishContract param changes. 2022-06-28 09:09:17 -05:00
Kevin Heifner c2eac412f0 Merge pull request #549 from eosnetworkfoundation/GH-538-fix-hex-trim
[3.2] Fix log trimming of hex_data JSON output.
2022-06-28 07:13:37 -05:00
Kevin Heifner 4453b71cec Merge pull request #541 from eosnetworkfoundation/GH-540-sig-provider
[3.2] Separate out signature provider from producer plugin
2022-06-28 07:12:44 -05:00
Kevin Heifner 9576766186 GH-139 Fix directories of artifacts 2022-06-27 21:50:54 -05:00
Kevin Heifner 39538b500c GH-139 Add logs to artifacts 2022-06-27 21:22:13 -05:00
Kevin Heifner 007e14c816 Merge remote-tracking branch 'origin/release/3.1.x' into GH-538-fix-hex-trim 2022-06-27 20:35:33 -05:00
Peter Oschwald 2be38776f7 GH-403 Fix failing tests due to duplicated command args from backport merge. 2022-06-27 16:59:02 -05:00
Peter Oschwald 4e2eab1c28 GH-403 - Delete inadvertently reintroduced test. Per GH-211 should be deleted. 2022-06-27 15:00:25 -05:00
Peter Oschwald e66feb63c4 GH-403 Fix a couple compilation errors from the backport merge. 2022-06-27 14:48:10 -05:00
Brian Johnson 5e7edd3d48 Merge pull request #8218 from EOSIO/8199-cleos-transaction-signatures
Add option to provide transaction signature keys to cleos
2022-06-27 14:09:55 -05:00
Jonathan Giszczak 77282708c6 Use rename option in restart chain tests to get old trim_front behavior. 2022-06-27 13:55:17 -05:00
Kevin Heifner 2fa6719028 Additional checks requested from PR 2022-06-27 13:14:34 -05:00
Kevin Heifner ef17c0bf57 Simplified if 2022-06-27 13:14:29 -05:00
Kevin Heifner 1f34d31374 Use skip_trx_checks instead of skip_auth_check 2022-06-27 13:14:23 -05:00
Kevin Heifner 1434fb068d Fix indent 2022-06-27 13:14:07 -05:00
Kevin Heifner cca3fb4b6a Add test for cfa not executed in light validation 2022-06-27 13:13:57 -05:00
Kevin Heifner 683737a864 Do not execute cfa in light validation mode 2022-06-27 13:06:56 -05:00
Kevin Heifner 714c29abd5 Skip context free action account verification for light validation 2022-06-27 12:51:28 -05:00
Kevin Heifner e2c73a9228 Start of a cfa in light validation mode test 2022-06-27 12:51:21 -05:00
Clayton Calabrese 29c988dcbf fix test failures due to lost arg. 2022-06-27 09:34:51 -05:00
766C6164 acab5b3fa6 Implemented unix socket support for ship_client 2022-06-26 23:18:59 -04:00
linh2931 980fc79258 Merge pull request #520 from eosnetworkfoundation/fix_get_table_rows_by_seckey
[3.2] Fix eosio::name conversion in get_table_rows_by_seckey
2022-06-26 13:04:13 -04:00
linh2931 1f1754b94f Merge branch 'main' into fix_get_table_rows_by_seckey 2022-06-26 11:21:17 -04:00
linh2931 be7680bf63 Merge pull request #510 from eosnetworkfoundation/test_exhaustive_snapshot
[3.2] Add a second account and action to test_exhaustive_snapshot
2022-06-26 11:20:50 -04:00
linh2931 6e8835a75c Merge branch 'main' into fix_get_table_rows_by_seckey 2022-06-25 21:19:04 -04:00
linh2931 e720b4b796 Merge branch 'main' into test_exhaustive_snapshot 2022-06-25 21:18:03 -04:00
Kevin Heifner 52b2978691 Set keosd-provider-timeout in signature_provider_plugin::plugin_initialize because make_keosd_signature_provider was capturing 0 before boost notifier was called. 2022-06-25 15:28:23 -05:00
Kevin Heifner 543ace5bb9 Fix merge issues 2022-06-25 15:28:16 -05:00
Matt Witherspoon f58f1b19fb slight more optimial handling of signature_provider_for_specification return 2022-06-25 15:19:51 -05:00
Matt Witherspoon 9391f5dbeb separate out signature provider from producer plugin 2022-06-25 15:19:29 -05:00
Kevin Heifner 5f40d51a8c GH-294 Add wall clock time to some existing transaction logging. Added log of time between transactions to give some information on time the chain is idle. 2022-06-25 11:52:13 -05:00
Kevin Heifner a7cc6266dd GH-292 Add additional logging to Produced and Received block log messages. 2022-06-25 10:18:02 -05:00
linh2931 f5615f22b3 Merge pull request #536 from eosnetworkfoundation/print_non_json_error
[3.2] CLEOS -- prints out non-JSON formatted HTTP responses
2022-06-25 07:53:30 -04:00
Keke Li b4edcfabce As this function is a common used function, and the exception maybe not an error. remove the error notice line. 2022-06-24 20:54:48 -04:00
linh2931 161c8da6d1 Merge pull request #533 from eosnetworkfoundation/http_1_1_support
[3.2] cleos Http 1.1 support and improves response handling
2022-06-24 20:47:46 -04:00
linh2931 a256d17c3c Merge branch 'main' into http_1_1_support 2022-06-24 20:06:40 -04:00
Jonathan Giszczak 031ebb5174 Correct type for placeholder progress lambda when libprogressbar not present 2022-06-24 17:34:16 -05:00
Jonathan Giszczak 036ec8e1c4 Add extract-blocks option to eosio-blocklog 2022-06-24 16:59:48 -05:00
Matt Witherspoon 976b39af9f Merge pull request #534 from eosnetworkfoundation/misc_build_script_stuff
[3.2] misc pinned build script fixes
2022-06-24 16:41:32 -04:00
Matt Witherspoon 655c5ca40c Merge remote-tracking branch 'origin/release/3.1.x' into misc_build_script_stuff 2022-06-24 15:51:28 -04:00
Kevin Heifner 059cee4650 Better handling of invalid response 2022-06-24 15:02:02 -04:00
Kevin Heifner 3618276910 Revert back to pretty print of response unless unable to convert to variant 2022-06-24 14:54:34 -04:00
Leo Ribeiro f0e13b4652 adds http1.1 support and better response handling 2022-06-24 14:54:20 -04:00
Peter Oschwald dba88052f7 Merge pull request #530 from eosnetworkfoundation/release/3.1.x
fix libff in 3.1 tester cmakes [3.2]
2022-06-24 10:59:44 -05:00
linh2931 af2082b8be Merge branch 'main' into test_exhaustive_snapshot 2022-06-23 20:25:04 -04:00
Lin Huang fe68ea525b Adapt to new signature of chain_apis::read_only for trx_finality_status_processing 2022-06-23 20:23:42 -04:00
Peter Oschwald 410720e3cb Merge pull request #509 from eosnetworkfoundation/backport_comment_fixes
Backport: two comment fixes to transaction.hpp
2022-06-23 18:16:28 -05:00
linh2931 98937fc48b Merge pull request #507 from eosnetworkfoundation/fix_db_modes_test
Fix db modes test
2022-06-23 19:00:49 -04:00
Jonghoo Kim 51f5c72bc0 removed lvalue 2022-06-23 17:53:45 -04:00
Jonghoo Kim 646f4b4fa4 format 2022-06-23 17:53:33 -04:00
Jonghoo Kim 59fe31c7cd format a else block 2022-06-23 17:53:22 -04:00
Jonghoo Kim d1e63ec9a9 handled comment 2022-06-23 17:53:09 -04:00
Jonghoo Kim babbb1ca82 fix unit test 2022-06-23 17:52:39 -04:00
Jonghoo Kim 8d99a508ae added get_table_seckey_test 2022-06-23 17:52:35 -04:00
Jonghoo Kim cb9f518fcc fix unit test 2022-06-23 17:07:09 -04:00
Jonghoo Kim 4ee51d86ec fix get_table_rows_by_seckey conversion 2022-06-23 17:06:44 -04:00
Matt Witherspoon aaf1187132 Merge pull request #9147 from EOSIO/two_comment_fixes
two comment fixes to transaction.hpp
2022-06-23 14:21:00 -05:00
Lin Huang 3875e37e06 Add additional contract to test_exhaustive_snapshot 2022-06-23 14:37:09 -04:00
linh2931 1e528a8ace Merge branch 'main' into fix_db_modes_test 2022-06-23 13:48:44 -04:00
Lin Huang 9bd1770c5d Revert "label db_modes_test as nonparallelizable_tests to fix Mac issue"
This reverts commit cd64609383.
2022-06-23 13:46:25 -04:00
Matt Witherspoon ba7f60314b Merge pull request #506 from eosnetworkfoundation/fix_boost_167
fix linking of c++ SHIP tests on boost versions prior to 1.69 - main
2022-06-23 12:34:56 -04:00
ClaytonCalabrese db9e2ef8a0 Merge pull request #493 from eosnetworkfoundation/cpu_net_usage_data
Add additional CPU/NET usage data to get_account results
2022-06-23 11:11:01 -05:00
Patrick Raphael 170217bd78 remove temp file 2022-06-23 11:59:21 -04:00
Patrick Raphael cd64609383 label db_modes_test as nonparallelizable_tests to fix Mac issue 2022-06-23 11:57:40 -04:00
Keke Li b92a6a144b As the wait return code is likely to be $NODEOS_PID (stopped child return code) than 127(non exist child return code), so add dealing of $NODEOS_PID 2022-06-23 11:49:01 -04:00
Keke Li 9cce0357f4 Return a return code in any case for the function run_expect_success() 2022-06-23 11:48:25 -04:00
Keke Li 3cfeabcde9 Add check to wait return code, if return code is 0 or 127 just let it go, in not, need stop and return the error code. 2022-06-23 11:48:11 -04:00
Keke Li d93a2761a4 Allow the test script go ahead in case of $NODEOS_PID already shutdown before call wait.
As the trace information is very limit. detail see epe889, the buildkite fails are very possible wait an already terminated NODEOS_PID
2022-06-23 11:47:56 -04:00
Matt Witherspoon d265e72590 Merge remote-tracking branch 'origin/release/3.1.x' into fix_boost_167 2022-06-23 11:25:55 -04:00
Christopher Gundlach d25217d5bd Merge pull request #501 from eosnetworkfoundation/backport_comparison_operators
Backport comparison operators
2022-06-23 09:11:20 -05:00
Christopher Gundlach a26c4e984e Merge pull request #500 from eosnetworkfoundation/backport_add_cleos_validate
Backport of the cleos validate signatures
2022-06-23 09:10:46 -05:00
Christopher Gundlach be93354493 Merge pull request #484 from eosnetworkfoundation/backport_optimize_push_transaction
Backport push_transaction optimizations.
2022-06-23 09:10:23 -05:00
linh2931 fdd3f43913 Merge pull request #495 from eosnetworkfoundation/more_freq_handshake
Backport: Send handshake for heartbeat/2 if no block -- main
2022-06-23 09:44:20 -04:00
linh2931 81aa2ed881 Merge branch 'main' into more_freq_handshake 2022-06-23 09:01:05 -04:00
linh2931 fb3e24255b Merge pull request #499 from eosnetworkfoundation/fix_nodeos_forked_chain_test
Fix nodeos forked chain test
2022-06-23 08:51:20 -04:00
Lin Huang b6abe77a18 Do not check for incomplete block as it is not possible in Mandel 2022-06-23 08:20:15 -04:00
linh2931 f4c27d3a33 Merge branch 'main' into fix_nodeos_forked_chain_test 2022-06-23 08:01:34 -04:00
Matt Witherspoon ef0f04a66c Merge pull request #504 from eosnetworkfoundation/brew_openssl_arm_defaults
pick sane defaults for OPENSSL_ROOT_DIR on ARM macOS
2022-06-22 23:28:50 -04:00
766C6164 0be1228a8d pending ship_client socket implementation 2022-06-22 23:27:54 -04:00
Kevin Heifner a0e8d6dc64 GH-293 Add similar logging for failed and successful scheduled transactions as input transactions. 2022-06-22 21:30:34 -05:00
Matt Witherspoon d44b2cf875 pick sane defaults for OPENSSL_ROOT_DIR on ARM macOS 2022-06-22 22:18:54 -04:00
Bucky Kittinger 0a0a09ebbc Merge pull request #503 from eosnetworkfoundation/release/3.1.x
Merge changes needed for crypto primitives
2022-06-22 18:00:49 -04:00
766C6164 56ece06266 Fixed typo 2022-06-22 16:55:05 -04:00
deck 666cb791e5 fix callback function 2022-06-22 13:24:22 -05:00
deck 8b09492091 add the ability to use authority structure in the call to newaccount 2022-06-22 13:24:00 -05:00
Victor Camacho bcd9f59578 Added extended_symbol unit test cases for test comparison operators 2022-06-22 12:08:13 -05:00
Victor Camacho 7d62d315a7 Added comparison operators for extended_symbol type 2022-06-22 12:07:53 -05:00
ClaytonCalabrese 4facc1a2b0 Merge pull request #492 from eosnetworkfoundation/dont_hardcode_system_account_name
Replace hard coding system_account_name
2022-06-22 11:11:06 -05:00
ClaytonCalabrese befc500a4a Merge pull request #491 from eosnetworkfoundation/cleos_get_raw_abi
Using get raw abi in cleos
2022-06-22 11:10:54 -05:00
ClaytonCalabrese 23fd8a8f7d Merge pull request #489 from eosnetworkfoundation/boost_deprecated_query_object
Eliminate use of boost deprecated query object.
2022-06-22 11:10:13 -05:00
linh2931 d3d7625d25 Merge branch 'main' into fix_nodeos_forked_chain_test 2022-06-22 12:01:37 -04:00
Chris Gundlach 28e59d67ea fixed whitespace 2022-06-22 10:32:47 -05:00
Chris Gundlach d9a511f08f fixed conflicts 2022-06-22 09:58:40 -05:00
Lin Huang 0e9202021e Fix intermittent forked chain test failure 2022-06-22 09:48:23 -04:00
Brian Johnson 2eec9ea60c Loosen transaction processing requirements till code is fixed. 2022-06-22 09:46:22 -04:00
Brian Johnson 58d80cc600 Relaxed requirement for producer rounds having to not miss slots. 2022-06-22 09:44:09 -04:00
766C6164 365c1d8483 Few more missed socket related things 2022-06-21 23:58:49 -04:00
Matt Witherspoon 1a001afc57 Merge pull request #497 from eosnetworkfoundation/default_wasm_runtime_str
Fix incorrect default option name for wasm-runtime in appbase - main
2022-06-21 22:31:31 -04:00
Matt Witherspoon db3e906d80 bump appbase submod to main 2022-06-21 21:53:14 -04:00
Matt Witherspoon 472d08283a Merge remote-tracking branch 'origin/release/3.1.x' into default_wasm_runtime_str 2022-06-21 21:52:50 -04:00
Kevin Heifner 43f290d6bc Merge pull request #411 from eosnetworkfoundation/get_account_by_authorizers-threaded
Make /v1/chain/get_accounts_by_authorizers multi-threaded
2022-06-21 19:56:20 -05:00
Lin Huang c169ac6e42 Fix merge conflicts 2022-06-21 20:35:22 -04:00
Kevin Heifner d7f4e96de4 Merge pull request #494 from eosnetworkfoundation/GH#440-ship-live-blocks
Fix issue with current block not sent to SHiP clients - main
2022-06-21 19:21:58 -05:00
Kevin Heifner 1ab3676087 Merge remote-tracking branch 'origin/release/3.1.x' into GH#440-ship-live-blocks 2022-06-21 18:19:11 -05:00
Kevin Heifner 5c23cc43d0 Send handshake even if info is unchanged 2022-06-21 18:59:04 -04:00
Kevin Heifner ac802e862b send_handshake if we have not sent or received a block for half of heartbeat. 2022-06-21 18:54:23 -04:00
Clayton Calabrese c6b331d31a resolve build failures from cherry-picks. 2022-06-21 17:53:25 -05:00
Kevin Heifner 56ae2bc62f Send handshake instead of time for heartbeat 2022-06-21 18:39:26 -04:00
Clayton Calabrese acf2bb63bc fix errors preventing building due to removed fc::optional and convert get_callback to callback. 2022-06-21 17:28:44 -05:00
Allen Han b61d06c812 fix pr comments and add const 2022-06-21 17:09:06 -05:00
Allen Han ca86373fdf Improve the error handling 2022-06-21 17:08:50 -05:00
Allen Han e44c6c4006 Use get_raw_abi for both get cleos command and cleos transactions 2022-06-21 17:08:26 -05:00
Jonathan Giszczak 66bfda2e79 Eliminate use of boost deprecated query object.
The query object has been deprecated since boost 1.66.  Incidentally
resolves #5422 when using TCP on a system with only loopback configured.
  The preferred boost API no longer defaults to the address_configured
flag.
2022-06-21 16:32:56 -05:00
766C6164 5c1ff95535 Added ut for unix socket / fixed boolean args support for tests 2022-06-21 17:27:49 -04:00
linh2931 a4ffdf57d9 Merge pull request #482 from eosnetworkfoundation/fix_promise_use
Get future before use to avoid race on set_value get_future
2022-06-21 14:42:14 -04:00
Kevin Heifner cf91de3c35 Merge pull request #486 from eosnetworkfoundation/cleos-error-main
Remove confusing error message - main
2022-06-21 13:29:34 -05:00
linh2931 1884261435 Merge branch 'main' into fix_promise_use 2022-06-21 12:45:35 -04:00
Kevin Heifner 2666fe301c Merge remote-tracking branch 'origin/release/3.1.x' into cleos-error-main 2022-06-21 11:42:35 -05:00
Matt Witherspoon 91bf1f10ef Merge pull request #395 from eosnetworkfoundation/log_integrity_hash_startstop
log integrity hash on start/stop with integrity-hash-on-start & integrity-hash-on-stop options
2022-06-21 12:41:08 -04:00
Matt Witherspoon 5bcc66db06 Merge pull request #485 from eosnetworkfoundation/fix_macos_hole_punch
bump fc submod with fix for macos hole punching - main
2022-06-21 12:39:50 -04:00
arhag bdab1c9ec7 add cleos validate signatures 2022-06-21 10:57:38 -05:00
Matt Witherspoon cee97f0786 bump fc submod to main 2022-06-21 11:45:38 -04:00
Matt Witherspoon 344758d343 Merge remote-tracking branch 'origin/release/3.1.x' into fix_macos_hole_punch 2022-06-21 11:44:56 -04:00
Matt Witherspoon 23423397a8 Merge pull request #481 from eosnetworkfoundation/check_os_release_exists_first_main_merge
before reading /etc/os-release make sure it exists - main
2022-06-21 11:29:11 -04:00
Chris Gundlach 6c116ca505 test fixes 2022-06-21 10:28:03 -05:00
Matt Witherspoon 2d0162969f move integrity-hash-on options from CLI to Cfg 2022-06-21 10:55:21 -04:00
Chris Gundlach 3720a74a6c first draft of backporting push_transaction optimizations 2022-06-21 09:48:43 -05:00
Matt Witherspoon 9dd0ff9e83 Merge remote-tracking branch 'origin/release/3.1.x' into check_os_release_exists_first_main_merge 2022-06-21 10:46:46 -04:00
Kevin Heifner 3fce516c39 Get future before use to avoid race on set_value get_future 2022-06-21 10:20:02 -04:00
766C6164 23bf888ede Pop back a delta with empty rows 2022-06-20 20:16:24 -04:00
766C6164 a9a09b1f0f Add comment why include_delta of code_object just returns false 2022-06-20 19:47:31 -04:00
766C6164 e1b9b1895e Make compatible with boost < 1.70 2022-06-20 18:18:21 -04:00
Allen Han 7091226578 correct to_pretty_time 2022-06-20 10:55:13 -05:00
Allen Han f9b7b35d1b Fixes for second comments 2022-06-20 10:55:07 -05:00
Allen Han 4c160dd323 fixes for comments 2022-06-20 10:54:59 -05:00
Allen Han 494655c741 fixed type 2022-06-20 10:54:42 -05:00
Allen Han e45637f101 Add earlier time stamp test case 2022-06-20 10:54:36 -05:00
Allen Han 0dd3c0b4ac Correct the cpu usage 2022-06-20 10:54:31 -05:00
Allen Han 36e219cc3e add unit test 2022-06-20 10:54:24 -05:00
Allen Han eb6e14442e Add logic for user no action 2022-06-20 10:54:10 -05:00
Allen Han c8401519cc rework the data structure after verifying with areg 2022-06-20 10:53:51 -05:00
Allen Han d09e9172c5 Initial code before testing 2022-06-20 10:44:21 -05:00
UMU 887e17c2cd Replace hard coding system_account_name 2022-06-20 10:06:32 -05:00
766C6164 b9f29c4d9a Make sure log gracefully destructs, fixes pruning unit test 2022-06-19 14:53:53 -04:00
Vlad d203c362ef Merge branch 'main' into state-history-improvements 2022-06-19 13:00:39 -04:00
Kevin Heifner dfa3c92a71 Merge pull request #410 from eosnetworkfoundation/net-plugin-delay-connect-main
net_plugin delay connecting to peers [main]
2022-06-17 16:28:36 -05:00
Kevin Heifner a1e345c00b Merge pull request #409 from eosnetworkfoundation/fix-plugin-http-api-test-merge
Fix plugin http api test [main]
2022-06-17 16:26:04 -05:00
Matt Witherspoon 2ca2a6f538 before using SE wallet require code signed with certificate 2022-06-17 15:41:04 -04:00
Matt Witherspoon 6ef77f86b6 add Mac Studio to Secure Enclave whitelist 2022-06-17 15:39:16 -04:00
Matt Witherspoon 0f9ac1b210 missed staging a rename in last commit 2022-06-17 15:31:14 -04:00
Matt Witherspoon 3019dcdc76 just use a bool to track when it's acceptable to log exit hash 2022-06-17 15:27:05 -04:00
Matt Witherspoon c5e31c8f15 Merge pull request #412 from eosnetworkfoundation/main_to_320
bump main to 3.2.0-dev
2022-06-16 23:47:53 -04:00
Matt Witherspoon 8b15d9b3be bump main to 3.2.0-dev 2022-06-16 23:12:54 -04:00
Kevin Heifner 9947888c1a add_async_api was not calling correct add_async_handler.
Added a multi-thread test for the only api that is using the add_async_api.
2022-06-16 19:31:07 -05:00
Kevin Heifner 066414989f get_transaction_status is not thread safe, remove from async_api handler and place in normal api handler. 2022-06-16 19:29:56 -05:00
Kevin Heifner e1112073fa Merge remote-tracking branch 'origin/release/3.1.x' into net-plugin-delay-connect-main 2022-06-16 17:33:58 -05:00
Kevin Heifner 9e1026b14f Merge remote-tracking branch 'origin/release/3.1.x' into fix-plugin-http-api-test-merge 2022-06-16 17:30:19 -05:00
ClaytonCalabrese 4aca6e3409 Merge pull request #404 from eosnetworkfoundation/main_post_3_1
Merge Main post 3 1 into Main
2022-06-16 15:27:11 -05:00
ClaytonCalabrese a1a7d0e9ee Merge pull request #389 from eosnetworkfoundation/boost_exception_reporting
Boost.Test to report the last checkpoint location
2022-06-16 11:05:19 -05:00
766C6164 cbdea59049 Merge branch 'main' into state-history-improvements 2022-06-15 22:07:32 -04:00
Matt Witherspoon a70d6d527b log db hash on start/stop with integrity-hash-on-start & integrity-hash-on-stop 2022-06-15 15:59:20 -04:00
Matt Witherspoon 3c6a5c934c Merge pull request #394 from eosnetworkfoundation/remove_npm_readme_merge
remove an unneeded npm command from README - main
2022-06-15 15:51:23 -04:00
Steven Watanabe f0681a0703 port boost exception reporting. 2022-06-15 10:45:56 -05:00
Vlad d72fb56f2f Merge branch 'main' into state-history-improvements 2022-06-14 12:48:31 -04:00
766C6164 364231c7e0 Added threaded write 2022-06-14 11:43:50 -04:00
766C6164 56726ffd2a Merge branch 'state-history-improvements' of github.com:eosnetworkfoundation/mandel into state-history-improvements 2022-06-13 19:11:24 -04:00
766C6164 08c814c71b SHiP post send_update to main thread to avoid overwhelming the main thread 2022-06-13 19:11:19 -04:00
Clayton Calabrese 574ab49496 Merge branch 'main' into main_post_3_1 2022-06-13 11:03:19 -05:00
Christopher Gundlach c553833b79 Merge pull request #355 from eosnetworkfoundation/test_txn_plugin_params
Add new parameters to txn-test-gen plugin
2022-06-10 09:22:39 -05:00
Chris Gundlach d8f92da702 Merge branch 'test_txn_plugin_params' of https://github.com/eosnetworkfoundation/mandel into test_txn_plugin_params 2022-06-09 09:52:16 -05:00
Chris Gundlach 89c698e642 added initializers
added initializers
2022-06-09 09:47:26 -05:00
Christopher Gundlach 786b7bc2e3 Merge branch 'main_post_3_1' into test_txn_plugin_params 2022-06-08 13:35:11 -05:00
Huang-Ming Huang 314d4fdd39 add txn-test-gen-stop-on-push-failed option 2022-06-08 10:04:17 -05:00
Huang-Ming Huang ff0be92c3f add expiration config 2022-06-08 10:03:54 -05:00
Vlad f504eb5185 Merge branch 'main' into state-history-improvements 2022-06-06 13:46:50 -04:00
766C6164 02b7aba063 Check and report error on socket close 2022-06-06 12:18:18 -04:00
Vlad 341b50703e Merge branch 'main' into state-history-improvements 2022-06-06 11:43:14 -04:00
Vlad b58261f8a0 Merge branch 'main' into state-history-improvements 2022-06-02 11:29:22 -04:00
766C6164 5b65a5d1fd Backported threading, session manager, unix socket 2022-06-01 23:38:29 -04:00
1508 changed files with 90004 additions and 25307 deletions
+4 -2
View File
@@ -10,15 +10,17 @@ RUN apt-get update && apt-get upgrade -y && \
libcurl4-openssl-dev \
libgmp-dev \
libssl-dev \
libusb-1.0-0-dev \
llvm-7-dev \
ninja-build \
pkg-config \
python3 \
python3-numpy \
python3-pip \
software-properties-common \
zlib1g-dev \
zstd
RUN python3 -m pip install dataclasses
# GitHub's actions/checkout requires git 2.18+ but Ubuntu 18 only provides 2.17
RUN add-apt-repository ppa:git-core/ppa && apt update && apt install -y git
+1 -2
View File
@@ -10,8 +10,7 @@ RUN apt-get update && apt-get upgrade -y && \
libcurl4-openssl-dev \
libgmp-dev \
libssl-dev \
libusb-1.0-0-dev \
llvm-11-dev \
ninja-build \
pkg-config \
python3-numpy \
zstd
+1 -2
View File
@@ -10,8 +10,7 @@ RUN apt-get update && apt-get upgrade -y && \
libcurl4-openssl-dev \
libgmp-dev \
libssl-dev \
libusb-1.0-0-dev \
llvm-11-dev \
ninja-build \
pkg-config \
python3-numpy \
zstd
@@ -0,0 +1,14 @@
name: 'Parallel ctest'
description: 'Runs a set of labeled ctests in parallel via multiple docker containers'
inputs:
container:
required: true
error-log-paths:
required: true
log-tarball-prefix:
required: true
tests-label:
required: true
runs:
using: 'node16'
main: 'dist/index.mjs'
File diff suppressed because one or more lines are too long
@@ -0,0 +1,69 @@
import child_process from 'node:child_process';
import process from 'node:process';
import stream from 'node:stream';
import fs from 'node:fs';
import zlib from 'node:zlib';
import tar from 'tar-stream';
import core from '@actions/core'
const container = core.getInput('container', {required: true});
const error_log_paths = JSON.parse(core.getInput('error-log-paths', {required: true}));
const log_tarball_prefix = core.getInput('log-tarball-prefix', {required: true});
const tests_label = core.getInput('tests-label', {required: true});
try {
if(child_process.spawnSync("docker", ["run", "--name", "base", "-v", `${process.cwd()}/build.tar.zst:/build.tar.zst`, "--workdir", "/__w/leap/leap", container, "sh", "-c", "zstdcat /build.tar.zst | tar x"], {stdio:"inherit"}).status)
throw new Error("Failed to create base container");
if(child_process.spawnSync("docker", ["commit", "base", "baseimage"], {stdio:"inherit"}).status)
throw new Error("Failed to create base image");
if(child_process.spawnSync("docker", ["rm", "base"], {stdio:"inherit"}).status)
throw new Error("Failed to remove base container");
// the correct approach is by far "--show-only=json-v1" and then pluck out .tests[].name; but that doesn't work on U18's cmake 3.10 since it lacks json-v1 output
const test_query_result = child_process.spawnSync("docker", ["run", "--rm", "baseimage", "bash", "-e", "-o", "pipefail", "-c", `cd build; ctest -L '${tests_label}' --show-only | head -n -1 | cut -d ':' -f 2 -s | jq -cnR '[inputs | select(length>0)[1:]]'`]);
if(test_query_result.status)
throw new Error("Failed to discover tests with label")
const tests = JSON.parse(test_query_result.stdout);
let subprocesses = [];
tests.forEach(t => {
subprocesses.push(new Promise(resolve => {
child_process.spawn("docker", ["run", "--security-opt", "seccomp=unconfined", "-e", "GITHUB_ACTIONS=True", "--name", t, "--init", "baseimage", "bash", "-c", `cd build; ctest --output-on-failure -R '^${t}$'`], {stdio:"inherit"}).on('close', code => resolve(code));
}));
});
const results = await Promise.all(subprocesses);
for(let i = 0; i < results.length; ++i) {
if(results[i] === 0)
continue;
//failing test
core.setFailed("Some tests failed");
let extractor = tar.extract();
let packer = tar.pack();
extractor.on('entry', (header, stream, next) => {
if(!header.name.startsWith(`__w/leap/leap/build`)) {
stream.on('end', () => next());
stream.resume();
return;
}
header.name = header.name.substring(`__w/leap/leap/`.length);
if(header.name !== "build/" && error_log_paths.filter(p => header.name.startsWith(p)).length === 0) {
stream.on('end', () => next());
stream.resume();
return;
}
stream.pipe(packer.entry(header, next));
}).on('finish', () => {packer.finalize()});
child_process.spawn("docker", ["export", tests[i]]).stdout.pipe(extractor);
stream.promises.pipeline(packer, zlib.createGzip(), fs.createWriteStream(`${log_tarball_prefix}-${tests[i]}-logs.tar.gz`));
}
} catch(e) {
core.setFailed(`Uncaught exception ${e.message}`);
}
@@ -0,0 +1,351 @@
{
"name": "parallel-ctest-containers",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"dependencies": {
"@actions/core": "^1.9.1",
"@vercel/ncc": "^0.34.0",
"tar-stream": "^2.2.0"
}
},
"node_modules/@actions/core": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.9.1.tgz",
"integrity": "sha512-5ad+U2YGrmmiw6du20AQW5XuWo7UKN2052FjSV7MX+Wfjf8sCqcsZe62NfgHys4QI4/Y+vQvLKYL8jWtA1ZBTA==",
"dependencies": {
"@actions/http-client": "^2.0.1",
"uuid": "^8.3.2"
}
},
"node_modules/@actions/http-client": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.1.tgz",
"integrity": "sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==",
"dependencies": {
"tunnel": "^0.0.6"
}
},
"node_modules/@vercel/ncc": {
"version": "0.34.0",
"resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.34.0.tgz",
"integrity": "sha512-G9h5ZLBJ/V57Ou9vz5hI8pda/YQX5HQszCs3AmIus3XzsmRn/0Ptic5otD3xVST8QLKk7AMk7AqpsyQGN7MZ9A==",
"bin": {
"ncc": "dist/ncc/cli.js"
}
},
"node_modules/base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/bl": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
"integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
"dependencies": {
"buffer": "^5.5.0",
"inherits": "^2.0.4",
"readable-stream": "^3.4.0"
}
},
"node_modules/buffer": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
],
"dependencies": {
"base64-js": "^1.3.1",
"ieee754": "^1.1.13"
}
},
"node_modules/end-of-stream": {
"version": "1.4.4",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
"dependencies": {
"once": "^1.4.0"
}
},
"node_modules/fs-constants": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
},
"node_modules/ieee754": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dependencies": {
"wrappy": "1"
}
},
"node_modules/readable-stream": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
"dependencies": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
"util-deprecate": "^1.0.1"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/string_decoder": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"dependencies": {
"safe-buffer": "~5.2.0"
}
},
"node_modules/tar-stream": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
"integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
"dependencies": {
"bl": "^4.0.3",
"end-of-stream": "^1.4.1",
"fs-constants": "^1.0.0",
"inherits": "^2.0.3",
"readable-stream": "^3.1.1"
},
"engines": {
"node": ">=6"
}
},
"node_modules/tunnel": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
"integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==",
"engines": {
"node": ">=0.6.11 <=0.7.0 || >=0.7.3"
}
},
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
},
"node_modules/uuid": {
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
"bin": {
"uuid": "dist/bin/uuid"
}
},
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
}
},
"dependencies": {
"@actions/core": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.9.1.tgz",
"integrity": "sha512-5ad+U2YGrmmiw6du20AQW5XuWo7UKN2052FjSV7MX+Wfjf8sCqcsZe62NfgHys4QI4/Y+vQvLKYL8jWtA1ZBTA==",
"requires": {
"@actions/http-client": "^2.0.1",
"uuid": "^8.3.2"
}
},
"@actions/http-client": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.1.tgz",
"integrity": "sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==",
"requires": {
"tunnel": "^0.0.6"
}
},
"@vercel/ncc": {
"version": "0.34.0",
"resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.34.0.tgz",
"integrity": "sha512-G9h5ZLBJ/V57Ou9vz5hI8pda/YQX5HQszCs3AmIus3XzsmRn/0Ptic5otD3xVST8QLKk7AMk7AqpsyQGN7MZ9A=="
},
"base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
},
"bl": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
"integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
"requires": {
"buffer": "^5.5.0",
"inherits": "^2.0.4",
"readable-stream": "^3.4.0"
}
},
"buffer": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
"requires": {
"base64-js": "^1.3.1",
"ieee754": "^1.1.13"
}
},
"end-of-stream": {
"version": "1.4.4",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
"requires": {
"once": "^1.4.0"
}
},
"fs-constants": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
},
"ieee754": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
},
"inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"requires": {
"wrappy": "1"
}
},
"readable-stream": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
"requires": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
"util-deprecate": "^1.0.1"
}
},
"safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
},
"string_decoder": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"requires": {
"safe-buffer": "~5.2.0"
}
},
"tar-stream": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
"integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
"requires": {
"bl": "^4.0.3",
"end-of-stream": "^1.4.1",
"fs-constants": "^1.0.0",
"inherits": "^2.0.3",
"readable-stream": "^3.1.1"
}
},
"tunnel": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
"integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg=="
},
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
},
"uuid": {
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
},
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
}
}
}
@@ -0,0 +1,7 @@
{
"dependencies": {
"@actions/core": "^1.9.1",
"@vercel/ncc": "^0.34.0",
"tar-stream": "^2.2.0"
}
}
+71 -64
View File
@@ -7,13 +7,9 @@ on:
- "release/*"
pull_request:
workflow_dispatch:
inputs:
run-lr-tests:
description: 'Run long running tests'
type: boolean
permissions:
packages: write
packages: read
contents: read
defaults:
@@ -44,6 +40,9 @@ jobs:
matrix:
platform: ${{fromJSON(needs.d.outputs.missing-platforms)}}
runs-on: ["self-hosted", "enf-x86-beefy"]
permissions:
packages: write
contents: read
steps:
- name: Login to Container Registry
uses: docker/login-action@v2
@@ -57,6 +56,7 @@ jobs:
push: true
tags: ${{fromJSON(needs.d.outputs.p)[matrix.platform].image}}
file: ${{fromJSON(needs.d.outputs.p)[matrix.platform].dockerfile}}
Build:
needs: [d, build-platforms]
if: always() && needs.d.result == 'success' && (needs.build-platforms.result == 'success' || needs.build-platforms.result == 'skipped')
@@ -64,8 +64,6 @@ jobs:
fail-fast: false
matrix:
platform: [ubuntu18, ubuntu20, ubuntu22]
outputs:
lr-tests: ${{steps.build.outputs.lr-tests}}
runs-on: ["self-hosted", "enf-x86-beefy"]
container: ${{fromJSON(needs.d.outputs.p)[matrix.platform].image}}
steps:
@@ -81,25 +79,38 @@ jobs:
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -GNinja ..
ninja
# the correct approach is by far "--show-only=json-v1 | jq '.tests[].name' | jq -sc" but that doesn't work on U18's cmake 3.10 since it lacks json-v1
echo ::set-output name=lr-tests::$(ctest -L "long_running_tests" --show-only | head -n -1 | cut -d ':' -f 2 -s | jq -cnR '[inputs | select(length>0)[1:]]')
tar -pc -C .. --exclude "*.a" --exclude "*.o" build | zstd --long -T0 -9 > ../build.tar.gz
tar -pc -C .. --exclude "*.o" build | zstd --long -T0 -9 > ../build.tar.zst
- name: Upload builddir
uses: actions/upload-artifact@v3
uses: AntelopeIO/upload-artifact-large-chunks-action@v1
with:
name: ${{matrix.platform}}-build
path: build.tar.gz
- name: Build dev package (Ubuntu 20 only)
if: matrix.platform == 'ubuntu20'
run: |
cd build
ninja package
- name: Upload dev package (Ubuntu 20 only)
if: matrix.platform == 'ubuntu20'
uses: actions/upload-artifact@v3
with:
name: leap-dev-ubuntu20-amd64
path: build/leap-dev*.deb
path: build.tar.zst
dev-package:
name: Build leap-dev package
needs: [d, Build]
if: always() && needs.Build.result == 'success'
runs-on: ubuntu-latest
container: ${{fromJSON(needs.d.outputs.p)['ubuntu20'].image}}
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Download builddir
uses: actions/download-artifact@v3
with:
name: ubuntu20-build
- name: Build dev package
run: |
zstdcat build.tar.zst | tar x
cd build
cpack
- name: Upload dev package
uses: actions/upload-artifact@v3
with:
name: leap-dev-ubuntu20-amd64
path: build/leap-dev*.deb
tests:
name: Tests
needs: [d, Build]
@@ -107,13 +118,13 @@ jobs:
strategy:
fail-fast: false
matrix:
platform: [ubuntu20]
runs-on: ["self-hosted", "enf-x86-beefy"]
container: ${{fromJSON(needs.d.outputs.p)[matrix.platform].image}}
platform: [ubuntu20, ubuntu22]
runs-on: ["self-hosted", "enf-x86-hightier"]
container:
image: ${{fromJSON(needs.d.outputs.p)[matrix.platform].image}}
options: --security-opt seccomp=unconfined
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Download builddir
uses: actions/download-artifact@v3
with:
@@ -122,9 +133,13 @@ jobs:
run: |
# https://github.com/actions/runner/issues/2033 -- need this because of full version label test looking at git revs
chown -R $(id -u):$(id -g) $PWD
zstdcat build.tar.gz | tar x
# jammy's boost 1.74 can stumble on an EXDEV via copy_file_range() it doesn't have a fallback for; re-eval once moving to std::filesystem
export TMPDIR="$PWD/tmp"
mkdir -p $TMPDIR
zstdcat build.tar.zst | tar x
cd build
ctest --output-on-failure -j $(nproc) -LE "(nonparallelizable_tests|long_running_tests)"
np-tests:
name: NP Tests
needs: [d, Build]
@@ -132,70 +147,62 @@ jobs:
strategy:
fail-fast: false
matrix:
platform: [ubuntu20]
runs-on: ubuntu-latest
container:
image: ${{fromJSON(needs.d.outputs.p)[matrix.platform].image}}
options: --init
platform: [ubuntu18, ubuntu20, ubuntu22]
runs-on: ["self-hosted", "enf-x86-midtier"]
steps:
- uses: actions/checkout@v3
- name: Download builddir
uses: actions/download-artifact@v3
with:
name: ${{matrix.platform}}-build
- name: Run NP Tests
run: |
zstdcat build.tar.gz | tar x
cd build
ctest --output-on-failure -L "nonparallelizable_tests"
- name: Bundle logs from failed tests
if: failure()
run: tar --ignore-failed-read -czf ${{matrix.platform}}-serial-logs.tar.gz build/var build/etc build/leap-ignition-wd
- name: Run tests in parallel containers
uses: ./.github/actions/parallel-ctest-containers
with:
container: ${{fromJSON(needs.d.outputs.p)[matrix.platform].image}}
error-log-paths: '["build/etc", "build/var", "build/leap-ignition-wd", "build/TestLogs"]'
log-tarball-prefix: ${{matrix.platform}}
tests-label: nonparallelizable_tests
- name: Upload logs from failed tests
uses: actions/upload-artifact@v3
if: failure()
with:
name: ${{matrix.platform}}-serial-logs
path: ${{matrix.platform}}-serial-logs.tar.gz
name: ${{matrix.platform}}-np-logs
path: '*-logs.tar.gz'
lr-tests:
name: LR Tests
needs: [d, Build]
if: always() && needs.Build.result == 'success' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/') || inputs.run-lr-tests)
if: always() && needs.Build.result == 'success'
strategy:
fail-fast: false
matrix:
platform: [ubuntu20]
test-name: ${{fromJSON(needs.Build.outputs.lr-tests)}}
runs-on: ubuntu-latest
container:
image: ${{fromJSON(needs.d.outputs.p)[matrix.platform].image}}
options: --init
platform: [ubuntu18, ubuntu20, ubuntu22]
runs-on: ["self-hosted", "enf-x86-lowtier"]
steps:
- uses: actions/checkout@v3
- name: Download builddir
uses: actions/download-artifact@v3
with:
name: ${{matrix.platform}}-build
- name: Run ${{matrix.test-name}} Test
run: |
zstdcat build.tar.gz | tar x
cd build
ctest --output-on-failure -R ${{matrix.test-name}}
- name: Bundle logs from failed tests
if: failure()
run: tar --ignore-failed-read -czf ${{matrix.platform}}-${{matrix.test-name}}-logs.tar.gz build/var build/etc build/leap-ignition-wd
- name: Upload logs from failed tests
- name: Run tests in parallel containers
uses: ./.github/actions/parallel-ctest-containers
with:
container: ${{fromJSON(needs.d.outputs.p)[matrix.platform].image}}
error-log-paths: '["build/etc", "build/var", "build/leap-ignition-wd", "build/TestLogs"]'
log-tarball-prefix: ${{matrix.platform}}
tests-label: long_running_tests
- name: Upload logs from failed tests
uses: actions/upload-artifact@v3
if: failure()
with:
name: ${{matrix.platform}}-${{matrix.test-name}}-logs
path: ${{matrix.platform}}-${{matrix.test-name}}-logs.tar.gz
name: ${{matrix.platform}}-lr-logs
path: '*-logs.tar.gz'
all-passing:
name: All Required Tests Passed
needs: [tests, np-tests]
needs: [dev-package, tests, np-tests]
if: always()
runs-on: ubuntu-latest
steps:
- if: needs.tests.result != 'success' || needs.np-tests.result != 'success'
- if: needs.dev-package.result != 'success' || needs.tests.result != 'success' || needs.np-tests.result != 'success'
run: false
+42
View File
@@ -0,0 +1,42 @@
name: Jira Issue Creator
on:
issues:
types:
- labeled
jobs:
create-jira-issue:
runs-on: ubuntu-latest
if: github.event.label.name == 'OCI'
steps:
- name: Create json issue file
run: |
cat << EOF > issue.json
{
"fields": {
"project":
{
"key": "$JIRA_PROJECT_KEY"
},
"summary": "$JIRA_ISSUE_SUMMARY",
"description": "$JIRA_ISSUE_DESCRIPTION",
"issuetype": {
"name": "$JIRA_ISSUE_TYPE_NAME"
}
}
}
EOF
env:
JIRA_PROJECT_KEY: ${{ secrets.JIRA_PROJECT_KEY }}
JIRA_ISSUE_SUMMARY: ${{ github.event.issue.title }}
JIRA_ISSUE_DESCRIPTION: "${{ github.event.issue.url }}\\n\\n${{ github.event.issue.html_url }}"
JIRA_ISSUE_TYPE_NAME: "Story"
- name: Check issue json
run: |
cat issue.json
- name: Trigger jira issue creation
run: |
curl -u $JIRA_AUTH -X POST --data @issue.json -H "Content-Type: application/json" --url $JIRA_PROJECT_URL
env:
JIRA_AUTH: ${{ secrets.JIRA_USN_AND_TOKEN }}
JIRA_PROJECT_URL: ${{ secrets.JIRA_PROJECT_URL }}
+18
View File
@@ -0,0 +1,18 @@
name: Label New Issue
on:
issues:
types: opened
jobs:
label_new_issue:
uses: AntelopeIO/issue-project-labeler-workflow/.github/workflows/issue-project-labeler.yaml@v1
with:
issue-id: ${{github.event.issue.node_id}}
label: triage
org-project: 'Team Backlog'
project-field: Status=Todo
skip-if-existing-project: true
secrets:
token: ${{secrets.ENFCIBOT_REPO_AND_PROJECTS}}
+4 -3
View File
@@ -10,6 +10,7 @@
*.abi.hpp
*.cmake
!.cicd
!package.cmake
!CMakeModules/*.cmake
*.ninja
\#*
@@ -76,17 +77,17 @@ witness_node_data_dir
Testing/*
build.tar.gz
build/*
build-debug/*
[Bb]uild*/*
deps/*
dependencies/*
etc/eosio/node_*
var/lib/node_*
TestLogs*
.vscode
.idea/
*.iws
.DS_Store
CMakeLists.txt.user
!*.swagger.*
+18 -9
View File
@@ -7,18 +7,27 @@
[submodule "libraries/eos-vm"]
path = libraries/eos-vm
url = https://github.com/AntelopeIO/eos-vm
[submodule "libraries/fc"]
path = libraries/fc
url = https://github.com/AntelopeIO/fc
[submodule "libraries/softfloat"]
path = libraries/softfloat
url = https://github.com/AntelopeIO/berkeley-softfloat-3
[submodule "libraries/yubihsm"]
path = libraries/yubihsm
url = https://github.com/Yubico/yubihsm-shell
[submodule "libraries/rapidjson"]
path = libraries/rapidjson
url = https://github.com/Tencent/rapidjson/
[submodule "tests/abieos"]
path = tests/abieos
url = https://github.com/AntelopeIO/abieos
[submodule "wasm-spec-tests"]
path = wasm-spec-tests
url = https://github.com/AntelopeIO/wasm-spec-tests
[submodule "libraries/libfc/include/fc/crypto/webauthn_json"]
path = libraries/libfc/include/fc/crypto/webauthn_json
url = https://github.com/Tencent/rapidjson/
[submodule "libraries/libfc/secp256k1/secp256k1"]
path = libraries/libfc/secp256k1/secp256k1
url = https://github.com/bitcoin-core/secp256k1
[submodule "libraries/prometheus/prometheus-cpp"]
path = libraries/prometheus/prometheus-cpp
url = https://github.com/jupp0r/prometheus-cpp.git
[submodule "libraries/libfc/libraries/bn256"]
path = libraries/libfc/libraries/bn256
url = https://github.com/AntelopeIO/bn256
[submodule "libraries/cli11/cli11"]
path = libraries/cli11/cli11
url = https://github.com/AntelopeIO/CLI11.git
+90 -44
View File
@@ -13,10 +13,10 @@ set( CMAKE_CXX_STANDARD 17 )
set( CMAKE_CXX_EXTENSIONS ON )
set( CXX_STANDARD_REQUIRED ON)
set(VERSION_MAJOR 3)
set(VERSION_MAJOR 4)
set(VERSION_MINOR 1)
set(VERSION_PATCH 4)
#set(VERSION_SUFFIX rc4)
set(VERSION_PATCH 0)
set(VERSION_SUFFIX dev)
if(VERSION_SUFFIX)
set(VERSION_FULL "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}-${VERSION_SUFFIX}")
@@ -24,9 +24,16 @@ else()
set(VERSION_FULL "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
endif()
# Options
option(ENABLE_WERROR "Enable `-Werror` compilation flag." Off)
option(ENABLE_WEXTRA "Enable `-Wextra` compilation flag." Off)
set( CLI_CLIENT_EXECUTABLE_NAME cleos )
set( NODE_EXECUTABLE_NAME nodeos )
set( KEY_STORE_EXECUTABLE_NAME keosd )
set( LEAP_UTIL_EXECUTABLE_NAME leap-util )
# http://stackoverflow.com/a/18369825
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
@@ -53,10 +60,12 @@ set(ENABLE_MULTIVERSION_PROTOCOL_TEST FALSE CACHE BOOL "Enable nodeos multiversi
# add defaults for openssl
if(APPLE AND UNIX AND "${OPENSSL_ROOT_DIR}" STREQUAL "")
set(OPENSSL_ROOT_DIR "/usr/local/opt/openssl@3;/usr/local/opt/openssl@1.1")
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
set(OPENSSL_ROOT_DIR "/opt/homebrew/opt/openssl@3;/opt/homebrew/opt/openssl@1.1")
else()
set(OPENSSL_ROOT_DIR "/usr/local/opt/openssl@3;/usr/local/opt/openssl@1.1")
endif()
endif()
# fc also adds these definitions to its public interface. once fc becomes the sole importer of openssl, this should be removed
add_definitions(-DOPENSSL_API_COMPAT=0x10100000L -DOPENSSL_NO_DEPRECATED)
option(ENABLE_OC "Enable eosvm-oc on supported platforms" ON)
@@ -123,6 +132,16 @@ else()
endif()
endif()
if(ENABLE_WERROR)
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror" )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror" )
endif()
if(ENABLE_WEXTRA)
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wextra" )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wextra" )
endif()
option(EOSIO_ENABLE_DEVELOPER_OPTIONS "enable developer options for Leap" OFF)
# based on http://www.delorie.com/gnu/docs/gdb/gdb_70.html
@@ -177,16 +196,10 @@ add_subdirectory( scripts )
add_subdirectory( unittests )
add_subdirectory( tests )
add_subdirectory( tools )
add_subdirectory( benchmark )
option(DISABLE_WASM_SPEC_TESTS "disable building of wasm spec unit tests" OFF)
if (NOT DISABLE_WASM_SPEC_TESTS)
add_subdirectory( wasm-spec-tests/generated-tests )
endif()
install(FILES testnet.template DESTINATION ${CMAKE_INSTALL_FULL_SYSCONFDIR}/eosio/launcher COMPONENT dev EXCLUDE_FROM_ALL)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/testnet.template ${CMAKE_CURRENT_BINARY_DIR}/etc/eosio/launcher/testnet.template COPYONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/eosio.version.in ${CMAKE_CURRENT_BINARY_DIR}/eosio.version.hpp)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/eosio.version.hpp DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR} COMPONENT dev EXCLUDE_FROM_ALL)
@@ -213,35 +226,71 @@ install(FILES ${CMAKE_BINARY_DIR}/modules/leap-config.cmake DESTINATION ${CMAKE_
install(FILES ${CMAKE_BINARY_DIR}/modules/EosioTester.cmake DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/cmake/leap COMPONENT dev EXCLUDE_FROM_ALL)
install(FILES ${CMAKE_SOURCE_DIR}/CMakeModules/EosioCheckVersion.cmake DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/cmake/leap COMPONENT dev EXCLUDE_FROM_ALL)
configure_file(${CMAKE_SOURCE_DIR}/LICENSE
${CMAKE_BINARY_DIR}/licenses/leap/LICENSE COPYONLY)
configure_file(${CMAKE_SOURCE_DIR}/libraries/softfloat/COPYING.txt
${CMAKE_BINARY_DIR}/licenses/leap/LICENSE.softfloat COPYONLY)
configure_file(${CMAKE_SOURCE_DIR}/libraries/wasm-jit/LICENSE
${CMAKE_BINARY_DIR}/licenses/leap/LICENSE.wavm COPYONLY)
configure_file(${CMAKE_SOURCE_DIR}/libraries/fc/secp256k1/secp256k1/COPYING
${CMAKE_BINARY_DIR}/licenses/leap/LICENSE.secp256k1 COPYONLY)
configure_file(${CMAKE_SOURCE_DIR}/libraries/fc/include/fc/crypto/webauthn_json/license.txt
${CMAKE_BINARY_DIR}/licenses/leap/LICENSE.rapidjson COPYONLY)
configure_file(${CMAKE_SOURCE_DIR}/libraries/fc/src/network/LICENSE.go
${CMAKE_BINARY_DIR}/licenses/leap/LICENSE.go COPYONLY)
configure_file(${CMAKE_SOURCE_DIR}/libraries/yubihsm/LICENSE
${CMAKE_BINARY_DIR}/licenses/leap/LICENSE.yubihsm COPYONLY)
configure_file(${CMAKE_SOURCE_DIR}/libraries/eos-vm/LICENSE
${CMAKE_BINARY_DIR}/licenses/leap/LICENSE.eos-vm COPYONLY)
configure_file(${CMAKE_SOURCE_DIR}/programs/cleos/LICENSE.CLI11
${CMAKE_BINARY_DIR}/programs/cleos/LICENSE.CLI11 COPYONLY)
configure_file(LICENSE licenses/leap/LICENSE COPYONLY)
configure_file(libraries/softfloat/COPYING.txt licenses/leap/LICENSE.softfloat COPYONLY)
configure_file(libraries/wasm-jit/LICENSE licenses/leap/LICENSE.wavm COPYONLY)
configure_file(libraries/libfc/secp256k1/secp256k1/COPYING licenses/leap/LICENSE.secp256k1 COPYONLY)
configure_file(libraries/libfc/include/fc/crypto/webauthn_json/license.txt licenses/leap/LICENSE.rapidjson COPYONLY)
configure_file(libraries/eos-vm/LICENSE licenses/leap/LICENSE.eos-vm COPYONLY)
configure_file(libraries/prometheus/prometheus-cpp/LICENSE licenses/leap/LICENSE.prom COPYONLY)
configure_file(programs/cleos/LICENSE.CLI11 licenses/leap/LICENSE.CLI11 COPYONLY)
install(FILES LICENSE DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/licenses/leap/ COMPONENT base)
install(FILES libraries/softfloat/COPYING.txt DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/licenses/leap/ RENAME LICENSE.softfloat COMPONENT base)
install(FILES libraries/wasm-jit/LICENSE DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/licenses/leap/ RENAME LICENSE.wavm COMPONENT base)
install(FILES libraries/fc/secp256k1/secp256k1/COPYING DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/licenses/leap/ RENAME LICENSE.secp256k1 COMPONENT base)
install(FILES libraries/fc/include/fc/crypto/webauthn_json/license.txt DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/licenses/leap/ RENAME LICENSE.rapidjson COMPONENT base)
install(FILES libraries/fc/src/network/LICENSE.go DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/licenses/leap/ COMPONENT base)
install(FILES libraries/yubihsm/LICENSE DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/licenses/leap/ RENAME LICENSE.yubihsm COMPONENT base)
install(FILES libraries/eos-vm/LICENSE DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/licenses/leap/ RENAME LICENSE.eos-vm COMPONENT base)
install(FILES libraries/fc/libraries/ff/LICENSE DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/licenses/leap/ RENAME LICENSE.libff COMPONENT base)
install(FILES programs/cleos/LICENSE.CLI11 DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/licenses/leap/ COMPONENT base)
install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/licenses/leap" DESTINATION "${CMAKE_INSTALL_FULL_DATAROOTDIR}/licenses/" COMPONENT base)
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/libraries/testing/contracts DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/leap_testing/libraries/testing COMPONENT dev EXCLUDE_FROM_ALL
PATTERN "CMakeFiles" EXCLUDE
PATTERN "*.cmake" EXCLUDE
PATTERN "Makefile" EXCLUDE)
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/unittests/contracts DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/leap_testing/unittests COMPONENT dev EXCLUDE_FROM_ALL
PATTERN "CMakeFiles" EXCLUDE
PATTERN "*.cmake" EXCLUDE
PATTERN "Makefile" EXCLUDE)
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tests/TestHarness DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/leap_testing/tests COMPONENT dev EXCLUDE_FROM_ALL
FILES_MATCHING
PATTERN "*.py"
PATTERN "*.json"
PATTERN "__pycache__" EXCLUDE
PATTERN "CMakeFiles" EXCLUDE)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/tests/launcher.py DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/leap_testing/tests COMPONENT dev EXCLUDE_FROM_ALL)
if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.21)
# Cmake versions < 3.21 did not support installing symbolic links to a directory via install(FILES ...)
# Cmake 3.21 fixed this (https://gitlab.kitware.com/cmake/cmake/-/commit/d71a7cc19d6e03f89581efdaa8d63db216184d40)
# If/when the lowest cmake version supported becomes >= 3.21, the else block as well as the postinit and prerm scripts
# would be a good option to remove in favor of using the facilities in cmake / cpack directly.
add_custom_target(link_target ALL
COMMAND ${CMAKE_COMMAND} -E make_directory lib/python3/dist-packages
COMMAND ${CMAKE_COMMAND} -E create_symlink ../../../share/leap_testing/tests/TestHarness lib/python3/dist-packages/TestHarness
COMMAND ${CMAKE_COMMAND} -E make_directory share/leap_testing
COMMAND ${CMAKE_COMMAND} -E create_symlink ../../bin share/leap_testing/bin)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/lib/python3/dist-packages/TestHarness DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/python3/dist-packages COMPONENT dev EXCLUDE_FROM_ALL)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/share/leap_testing/bin DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/leap_testing COMPONENT dev EXCLUDE_FROM_ALL)
else()
# The following install(CODE ...) steps are necessary for `make dev-install` to work on cmake versions < 3.21.
# However, it can flag as an error if using `make package` instead of `make dev-install` for installation.
# This is due to those directories and symbolic links being created in the postinit script during the package install instead.
# Note If/when doing `make package`, it is not a true error if you see:
# Error creating directory "/<leap_install_dir>/lib/python3/dist-packages".
# CMake Error: failed to create symbolic link '/<leap_install_dir>/lib/python3/dist-packages/TestHarness': no such file or directory
# CMake Error: failed to create symbolic link '/<leap_install_dir>/share/leap_testing/bin': no such file or directory
install(CODE "execute_process( COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_INSTALL_FULL_LIBDIR}/python3/dist-packages)" COMPONENT dev EXCLUDE_FROM_ALL)
install(CODE "execute_process( COMMAND ${CMAKE_COMMAND} -E create_symlink ../../../share/leap_testing/tests/TestHarness ${CMAKE_INSTALL_FULL_LIBDIR}/python3/dist-packages/TestHarness)" COMPONENT dev EXCLUDE_FROM_ALL)
install(CODE "execute_process( COMMAND ${CMAKE_COMMAND} -E create_symlink ../../bin ${CMAKE_INSTALL_FULL_DATAROOTDIR}/leap_testing/bin)" COMPONENT dev EXCLUDE_FROM_ALL)
# The `make package` installation of symlinks happens via the `postinst` script installed in cmake.package via the line below
endif()
configure_file(${CMAKE_SOURCE_DIR}/libraries/cli11/bash-completion/completions/leap-util
${CMAKE_BINARY_DIR}/programs/leap-util/bash-completion/completions/leap-util COPYONLY)
configure_file(${CMAKE_SOURCE_DIR}/libraries/cli11/bash-completion/completions/cleos
${CMAKE_BINARY_DIR}/programs/cleos/bash-completion/completions/cleos COPYONLY)
install(FILES libraries/cli11/bash-completion/completions/leap-util DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/bash-completion/completions COMPONENT base)
install(FILES libraries/cli11/bash-completion/completions/cleos DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/bash-completion/completions COMPONENT base)
add_custom_target(dev-install
COMMAND "${CMAKE_COMMAND}" --build "${CMAKE_BINARY_DIR}"
@@ -250,9 +299,6 @@ add_custom_target(dev-install
USES_TERMINAL
)
get_property(_CTEST_CUSTOM_TESTS_IGNORE GLOBAL PROPERTY CTEST_CUSTOM_TESTS_IGNORE)
file(WRITE "${CMAKE_BINARY_DIR}/CTestCustom.cmake" "SET(CTEST_CUSTOM_TESTS_IGNORE ${_CTEST_CUSTOM_TESTS_IGNORE})")
include(doxygen)
include(package.cmake)
+5 -10
View File
@@ -54,15 +54,10 @@ find_package(Boost @Boost_MAJOR_VERSION@.@Boost_MINOR_VERSION@ EXACT REQUIRED CO
find_library(libtester eosio_testing @CMAKE_INSTALL_FULL_LIBDIR@ NO_DEFAULT_PATH)
find_library(libchain eosio_chain @CMAKE_INSTALL_FULL_LIBDIR@ NO_DEFAULT_PATH)
if ( "${CMAKE_BUILD_TYPE}" STREQUAL "Debug" )
find_library(libfc fc_debug @CMAKE_INSTALL_FULL_LIBDIR@ NO_DEFAULT_PATH)
find_library(libsecp256k1 secp256k1_debug @CMAKE_INSTALL_FULL_LIBDIR@ NO_DEFAULT_PATH)
else()
find_library(libfc fc @CMAKE_INSTALL_FULL_LIBDIR@ NO_DEFAULT_PATH)
find_library(libsecp256k1 secp256k1 @CMAKE_INSTALL_FULL_LIBDIR@ NO_DEFAULT_PATH)
endif()
find_library(libfc fc @CMAKE_INSTALL_FULL_LIBDIR@ NO_DEFAULT_PATH)
find_library(libsecp256k1 secp256k1 @CMAKE_INSTALL_FULL_LIBDIR@ NO_DEFAULT_PATH)
find_library(libbn256 bn256 @CMAKE_INSTALL_FULL_LIBDIR@ NO_DEFAULT_PATH)
find_library(libff ff @CMAKE_INSTALL_FULL_LIBDIR@ NO_DEFAULT_PATH)
find_library(libwasm WASM @CMAKE_INSTALL_FULL_LIBDIR@ NO_DEFAULT_PATH)
find_library(libwast WAST @CMAKE_INSTALL_FULL_LIBDIR@ NO_DEFAULT_PATH)
find_library(libir IR @CMAKE_INSTALL_FULL_LIBDIR@ NO_DEFAULT_PATH)
@@ -103,7 +98,7 @@ macro(add_eosio_test_executable test_name)
${libchainbase}
${libbuiltins}
${libsecp256k1}
${libff}
${libbn256}
@GMP_LIBRARY@
${Boost_FILESYSTEM_LIBRARY}
@@ -120,7 +115,7 @@ macro(add_eosio_test_executable test_name)
${WRAP_MAIN}
Threads::Threads
)
#adds -ltr. Ubuntu eosio.contracts build breaks without this
if(UNIX AND NOT APPLE)
target_link_libraries(${test_name} ${LIBRT})
+7 -13
View File
@@ -51,16 +51,10 @@ find_package(Boost @Boost_MAJOR_VERSION@.@Boost_MINOR_VERSION@ EXACT REQUIRED CO
find_library(libtester eosio_testing @CMAKE_BINARY_DIR@/libraries/testing NO_DEFAULT_PATH)
find_library(libchain eosio_chain @CMAKE_BINARY_DIR@/libraries/chain NO_DEFAULT_PATH)
if ( "${CMAKE_BUILD_TYPE}" STREQUAL "Debug" )
find_library(libfc fc_debug @CMAKE_BINARY_DIR@/libraries/fc NO_DEFAULT_PATH)
find_library(libsecp256k1 secp256k1_debug @CMAKE_BINARY_DIR@/libraries/fc/secp256k1 NO_DEFAULT_PATH)
find_library(libfc fc @CMAKE_BINARY_DIR@/libraries/libfc NO_DEFAULT_PATH)
find_library(libsecp256k1 secp256k1 @CMAKE_BINARY_DIR@/libraries/libfc/secp256k1 NO_DEFAULT_PATH)
find_library(libbn256 bn256 @CMAKE_BINARY_DIR@/libraries/libfc/libraries/bn256/src NO_DEFAULT_PATH)
else()
find_library(libfc fc @CMAKE_BINARY_DIR@/libraries/fc NO_DEFAULT_PATH)
find_library(libsecp256k1 secp256k1 @CMAKE_BINARY_DIR@/libraries/fc/secp256k1 NO_DEFAULT_PATH)
endif()
find_library(libff ff @CMAKE_BINARY_DIR@/libraries/fc/libraries/ff/libff NO_DEFAULT_PATH)
find_library(libwasm WASM @CMAKE_BINARY_DIR@/libraries/wasm-jit/Source/WASM NO_DEFAULT_PATH)
find_library(libwast WAST @CMAKE_BINARY_DIR@/libraries/wasm-jit/Source/WAST NO_DEFAULT_PATH)
find_library(libir IR @CMAKE_BINARY_DIR@/libraries/wasm-jit/Source/IR NO_DEFAULT_PATH)
@@ -101,7 +95,7 @@ macro(add_eosio_test_executable test_name)
${libchainbase}
${libbuiltins}
${libsecp256k1}
${libff}
${libbn256}
@GMP_LIBRARY@
${Boost_FILESYSTEM_LIBRARY}
@@ -118,7 +112,7 @@ macro(add_eosio_test_executable test_name)
${WRAP_MAIN}
Threads::Threads
)
#adds -ltr. Ubuntu eosio.contracts build breaks without this
if(UNIX AND NOT APPLE)
target_link_libraries(${test_name} ${LIBRT})
@@ -129,7 +123,7 @@ macro(add_eosio_test_executable test_name)
@OPENSSL_INCLUDE_DIR@
@CMAKE_SOURCE_DIR@/libraries/chain/include
@CMAKE_BINARY_DIR@/libraries/chain/include
@CMAKE_SOURCE_DIR@/libraries/fc/include
@CMAKE_SOURCE_DIR@/libraries/libfc/include
@CMAKE_SOURCE_DIR@/libraries/softfloat/source/include
@CMAKE_SOURCE_DIR@/libraries/appbase/include
@CMAKE_SOURCE_DIR@/libraries/chainbase/include
@@ -176,7 +170,7 @@ if(ENABLE_COVERAGE_TESTING)
COMMAND ${LCOV_PATH} --directory . --capture --gcov-tool ${CMAKE_SOURCE_DIR}/tools/llvm-gcov.sh --output-file ${Coverage_NAME}.info
COMMAND ${LCOV_PATH} -remove ${Coverage_NAME}.info '*/boost/*' '/usr/lib/*' '/usr/include/*' '*/externals/*' '*/fc/*' '*/wasm-jit/*' --output-file ${Coverage_NAME}_filtered.info
COMMAND ${LCOV_PATH} -remove ${Coverage_NAME}.info '*/boost/*' '/usr/lib/*' '/usr/include/*' '*/externals/*' '*/libfc/*' '*/wasm-jit/*' --output-file ${Coverage_NAME}_filtered.info
COMMAND ${GENHTML_PATH} -o ${Coverage_NAME} ${PROJECT_BINARY_DIR}/${Coverage_NAME}_filtered.info
+15 -12
View File
@@ -50,12 +50,12 @@ Requirements to build:
- LLVM 7 - 11 - for Linux only
- newer versions do not work
- openssl 1.1+
- libcurl
- curl
- libusb
- libcurl 7.40.0+
- git
- GMP
- Python 3
- python3-numpy
- zlib
### Step 1 - Clone
@@ -111,12 +111,14 @@ Make sure you are in the root of the `leap` repo, then run the `install_depts.sh
sudo scripts/install_deps.sh
```
Next, run the pinned build script. You have to give it three arguments, in the following order:
- A temporary folder, for all dependencies that need to be built from source.
- A build folder, where the binaries you need to install will be built to.
- The number of jobs or CPU cores/threads to use (note the [jobs flag](#step-3---build) warning above).
Next, run the pinned build script. You have to give it three arguments in the following order:
1. A temporary folder, for all dependencies that need to be built from source.
1. A build folder, where the binaries you need to install will be built to.
1. The number of jobs or CPU cores/threads to use (note the [jobs flag](#step-3---build) warning above).
The following command runs the `pinned_build.sh` script, specifies a `deps` and `build` folder in the root of the Leap repo for the first two arguments, then builds the packages using all of your computer's CPU threads (Note: you don't need `sudo` for this command):
> 🔒 You do not need to run this script with `sudo` or as root.
For example, the following command runs the `pinned_build.sh` script, specifies a `deps` and `build` folder in the root of the Leap repo for the first two arguments, then builds the packages using all of your computer's CPU threads:
```bash
scripts/pinned_build.sh deps build "$(nproc)"
```
@@ -139,16 +141,15 @@ sudo apt-get install -y \
libcurl4-openssl-dev \
libgmp-dev \
libssl-dev \
libusb-1.0-0-dev \
llvm-11-dev \
pkg-config
python3-numpy
```
To build, make sure you are in the root of the `leap` repo, then run the following command:
```bash
mkdir -p build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/usr/lib/llvm-11 ..
make -j $(nproc) package
make -j "$(nproc)" package
```
</details>
@@ -166,11 +167,13 @@ sudo apt-get install -y \
libcurl4-openssl-dev \
libgmp-dev \
libssl-dev \
libusb-1.0-0-dev \
llvm-7-dev \
pkg-config \
python3 \
python3-numpy \
python3-pip \
zlib1g-dev
python3 -m pip install dataclasses
```
You need to build Boost from source on this distribution:
```bash
+7
View File
@@ -0,0 +1,7 @@
file(GLOB BENCHMARK "*.cpp")
add_executable( benchmark ${BENCHMARK} )
target_link_libraries( benchmark fc Boost::program_options bn256)
target_include_directories( benchmark PUBLIC
"${CMAKE_CURRENT_SOURCE_DIR}"
)
+112
View File
@@ -0,0 +1,112 @@
#include <iostream>
#include <bn256/bn256.h>
#include <benchmark.hpp>
namespace benchmark {
using bytes = std::vector<char>;
using g1g2_pair = std::vector<std::string>;
void add_benchmarking() {
const unsigned char point1[64] = {
12,175,215,144,98,95,151,228,179,85,31,170,172,159,40,255,250,252,68,28,235,65,172,180,69,164,153,29,187,239,220,201, // x
18,102,219,76,79,148,120,28,39,149,42,172,41,248,120,249,255,69,42,51,160,239,13,219,239,183,77,174,217,158,130,10,}; // y
const unsigned char point2[64] = {
12,144,10,32,104,85,103,36,222,232,48,152,108,217,40,145,230,48,8,54,0,7,134,164,7,10,139,110,95,205,124,121, // x
22,254,176,251,18,168,78,220,142,100,102,113,58,176,83,186,212,62,154,138,235,135,34,46,237,117,54,36,198,40,79,73,}; // y
unsigned char ans[64] ={};
auto f = [&]() {
auto res = bn256::g1_add(point1, point2, ans);
if (res == -1) {
std::cout << "alt_bn128_add failed" << std::endl;
}
};
benchmarking("alt_bn128_add", f);
}
void mul_benchmarking() {
const unsigned char point[64] = {
12,175,215,144,98,95,151,228,179,85,31,170,172,159,40,255,250,252,68,28,235,65,172,180,69,164,153,29,187,239,220,201, // x
18,102,219,76,79,148,120,28,39,149,42,172,41,248,120,249,255,69,42,51,160,239,13,219,239,183,77,174,217,158,130,10,}; // y
const unsigned char scalar[32] = {
25,62,182,170,104,140,135,90,37,150,0,77,2,77,146,71,54,101,113,69,177,216,157,4,229,213,33,215,169,99,150,91, }; // scaler size 256 bits
unsigned char ans[64] = {};
auto f = [&]() {
auto res = bn256::g1_scalar_mul(point, scalar, ans);
if (res == -1) {
std::cout << "alt_bn128_mul failed" << std::endl;
}
};
benchmarking("alt_bn128_mul", f);
}
void pair_benchmarking() {
const unsigned char g1_g2_pairs[] = {
/* pair 1 */
12,175,215,144,98,95,151,228,179,85,31,170,172,159,40,255,250,252,68,28,235,65,172,180,69,164,153,29,187,239,220,201,18,102,219,76,79,148,120,28,39,149,42,172,41,248,120,249,255,69,42,51,160,239,13,219,239,183,77,174,217,158,130,10,
46,24,234,176,148,82,198,136,44,30,157,18,217,25,49,241,63,197,2,151,14,150,136,210,114,4,74,124,145,225,131,139,13,60,0,50,236,103,39,15,150,226,246,189,209,113,0,46,151,39,41,6,87,119,228,213,45,225,29,234,161,110,43,87,3,237,74,227,93,23,171,129,49,118,228,173,154,111,168,220,161,46,140,103,155,56,168,207,254,90,228,76,188,232,25,34,44,102,159,35,193,216,177,31,131,247,226,19,170,222,26,227,86,37,81,149,202,144,188,126,120,168,9,195,32,169,147,161,
/* pair,2,*/
12,144,10,32,104,85,103,36,222,232,48,152,108,217,40,145,230,48,8,54,0,7,134,164,7,10,139,110,95,205,124,121,22,254,176,251,18,168,78,220,142,100,102,113,58,176,83,186,212,62,154,138,235,135,34,46,237,117,54,36,198,40,79,73,
0,186,148,242,227,252,208,242,165,128,1,160,59,2,6,195,30,54,69,118,8,28,223,92,254,98,110,219,90,92,7,113,26,8,119,98,122,61,119,91,216,107,29,179,122,218,203,6,84,109,119,140,44,12,57,157,203,90,14,108,218,54,94,44,42,77,118,169,232,192,189,60,129,213,156,157,215,160,91,214,138,130,119,145,167,89,237,149,225,85,151,33,89,181,224,235,2,91,213,225,37,226,214,14,255,84,254,117,142,211,28,164,78,254,64,11,126,217,25,124,203,220,52,181,39,32,78,132,
/* pair 3 */
48,58,116,183,56,3,62,111,104,127,0,7,202,204,146,2,236,192,214,213,231,100,12,17,104,47,76,49,149,39,35,179,2,162,218,104,52,130,61,134,223,111,123,225,186,122,171,2,144,236,110,29,26,142,113,183,238,44,130,30,76,212,52,15,
19,206,16,79,220,158,153,194,12,48,10,79,173,10,97,199,113,25,255,87,220,3,102,235,164,170,50,240,177,237,223,205,11,75,211,28,143,229,192,35,171,167,172,238,138,235,82,134,111,165,144,29,118,150,179,21,158,9,202,2,242,109,33,148,14,188,33,145,213,186,0,126,178,10,131,168,121,66,121,193,106,209,176,34,176,41,145,227,3,55,245,150,82,218,232,155,31,153,213,183,157,2,159,247,25,69,49,215,219,36,46,5,192,205,201,182,72,189,84,62,61,47,136,81,51,65,231,161,
/* pair 4 */
27,31,150,92,17,82,135,210,46,161,0,24,16,199,200,165,29,165,157,168,222,9,83,17,44,27,64,226,208,112,223,128,20,253,182,130,45,130,249,9,168,206,153,86,197,214,59,248,241,191,93,113,70,113,247,244,43,214,240,246,24,38,33,50,
23,76,241,195,191,99,69,237,123,173,212,42,74,85,138,108,39,80,105,135,226,11,84,237,39,73,180,224,42,230,246,76,26,61,86,57,253,213,223,2,93,42,38,186,38,38,206,38,209,138,153,181,57,89,16,187,234,2,110,23,12,14,252,240,32,231,237,147,16,62,220,6,160,64,154,167,57,238,243,112,255,35,80,36,100,173,21,58,96,244,77,245,75,202,24,63,35,178,46,215,219,69,120,221,70,119,111,195,145,45,109,84,206,76,254,205,98,167,30,72,117,5,128,129,156,128,196,192,
/* pair 5 */
33,230,106,254,43,77,114,126,9,205,25,63,9,170,62,237,149,102,198,184,60,31,185,213,103,120,71,249,28,106,238,107,1,133,60,180,58,152,18,177,142,248,46,186,90,34,94,200,235,158,242,255,209,32,143,133,102,195,19,107,153,42,207,228,
30,43,165,137,133,231,242,156,65,126,94,159,26,27,78,164,165,159,225,150,220,158,247,118,118,170,195,122,12,125,8,34,39,57,159,231,167,233,3,47,243,142,174,224,162,38,147,65,74,191,98,144,126,125,81,177,75,140,161,27,34,97,46,249,8,65,220,15,139,144,78,12,72,239,54,163,39,6,30,147,154,208,89,111,170,126,6,214,32,181,195,140,215,53,218,239,44,43,229,0,169,242,16,227,163,185,224,21,142,203,135,66,60,53,91,80,48,112,8,13,226,206,58,249,163,52,196,53,
/* pair 6 */
14,157,100,136,255,206,130,101,56,187,235,39,67,209,67,124,40,174,153,135,155,26,166,170,118,193,244,21,70,71,120,150,3,189,254,120,183,98,23,175,175,28,195,233,165,224,35,95,247,132,40,64,26,208,70,206,247,92,134,105,118,181,21,242,
16,159,200,208,93,99,234,139,8,222,239,67,3,187,15,125,5,144,190,196,146,171,15,218,92,36,37,130,2,201,241,182,36,31,104,164,95,29,73,231,87,50,174,142,209,72,31,75,48,13,70,237,118,193,39,85,97,88,228,50,77,163,209,112,7,202,214,212,235,15,224,247,229,179,101,15,72,130,125,8,62,227,46,20,109,53,26,168,10,237,222,85,169,133,181,196,25,36,112,182,41,208,39,132,100,181,199,189,44,99,238,140,6,187,19,197,99,93,243,63,159,132,211,0,230,118,153,54,
/* pair 7 */
31,60,154,8,188,169,224,107,69,183,223,15,60,32,61,51,81,226,85,38,72,88,241,202,216,204,253,98,0,250,116,167,21,255,0,81,80,3,108,196,240,102,114,33,33,122,116,155,188,19,232,217,42,217,54,195,91,187,88,188,249,218,240,146,
12,28,171,60,8,166,151,19,125,237,128,127,207,183,19,1,188,189,105,181,170,172,8,180,30,175,4,108,191,252,197,161,37,122,14,151,117,34,172,227,236,154,84,99,189,197,91,46,43,148,174,218,83,61,196,48,131,45,242,61,92,242,56,251,39,125,111,11,24,37,76,62,151,59,183,3,156,187,249,232,229,56,230,171,55,2,246,70,74,102,0,156,185,237,126,90,0,30,248,164,199,146,66,237,158,134,139,168,128,189,126,55,35,198,48,18,112,40,63,70,254,246,88,111,254,67,213,223,
/* pair 8 */
27,106,52,232,120,148,201,234,161,123,171,160,223,151,6,105,206,47,94,147,47,22,27,21,248,20,223,51,116,192,29,221,25,149,109,33,131,198,32,101,157,94,62,164,205,151,23,108,214,43,231,7,95,228,183,1,242,205,19,62,124,79,48,203,
37,186,150,204,63,241,145,219,169,250,247,76,247,18,135,175,140,58,209,133,113,144,185,191,101,197,252,253,50,126,188,177,45,103,105,194,21,229,145,210,89,135,244,248,238,64,102,155,129,232,252,32,208,82,51,131,113,100,25,174,253,19,211,18,6,77,66,232,173,42,146,120,106,72,92,144,51,233,117,184,113,60,33,118,209,83,119,93,170,253,126,41,58,13,85,111,30,233,117,238,183,18,219,38,216,163,244,98,219,254,156,189,57,246,220,178,17,190,88,84,13,41,8,236,181,155,85,198,
/* pair 9 */
25,62,182,170,104,140,135,90,37,150,0,77,2,77,146,71,54,101,113,69,177,216,157,4,229,213,33,215,169,99,150,91,5,185,157,10,152,12,220,171,39,188,1,48,87,129,192,101,36,179,99,212,123,207,13,76,89,78,8,154,75,239,117,189,
19,87,226,242,101,183,176,42,195,135,40,225,195,207,13,62,60,37,28,251,13,165,96,198,173,250,251,107,25,141,77,68,45,115,128,233,135,104,231,12,192,206,60,249,137,191,114,141,3,235,34,189,208,170,23,59,231,12,197,116,5,188,52,20,11,153,186,15,96,240,54,123,212,242,168,141,151,187,17,38,185,238,196,242,26,194,193,18,34,107,95,238,108,154,140,224,13,76,71,149,81,56,85,83,56,59,203,183,170,10,167,200,128,135,105,19,93,203,131,146,116,209,62,27,81,80,234,172,
/* pair 10 */
30,204,212,77,212,159,135,173,195,194,165,112,62,248,180,204,66,73,253,99,65,111,39,171,19,211,171,203,35,66,146,20,33,241,46,6,167,133,80,76,238,165,59,232,120,58,211,157,50,212,86,191,95,6,134,164,36,227,79,58,119,98,108,171,
48,49,12,141,166,151,158,56,136,255,197,138,114,195,39,59,71,236,82,57,149,249,170,55,187,95,193,171,14,124,45,87,7,157,47,178,153,237,194,157,142,194,100,14,40,51,61,201,244,93,61,196,154,59,14,135,209,72,102,186,14,228,228,152,40,246,109,82,93,249,92,105,191,121,77,108,20,87,3,87,167,173,171,255,189,34,155,239,218,95,181,153,222,20,120,195,27,28,47,82,113,3,218,129,54,210,185,165,206,99,126,61,217,19,237,5,12,90,148,246,128,231,63,53,37,223,204,195
};
// benchmarking 1 pair of points
auto f_1_pair = [&]() {
auto res = bn256::pairing_check({ g1_g2_pairs, 384}, [](){});
if (res == -1) {
std::cout << "alt_bn128_pair 1 pair failed" << std::endl;
}
};
benchmarking("alt_bn128_pair (1 pair)", f_1_pair);
// benchmarking 10 pair of points
auto f_10_pairs = [&]() {
auto res = bn256::pairing_check(g1_g2_pairs, [](){});
if (res == -1) {
std::cout << "alt_bn128_pair 10 pair failed" << std::endl;
}
};
benchmarking("alt_bn128_pair (10 pairs)", f_10_pairs);
}
void alt_bn_128_benchmarking() {
add_benchmarking();
mul_benchmarking();
pair_benchmarking();
}
} // benchmark
+82
View File
@@ -0,0 +1,82 @@
#include <chrono>
#include <iostream>
#include <iomanip>
#include <locale>
#include <benchmark.hpp>
namespace benchmark {
// update this map when a new feature is supported
// key is the name and value is the function doing benchmarking
std::map<std::string, std::function<void()>> features {
{ "alt_bn_128", alt_bn_128_benchmarking },
{ "modexp", modexp_benchmarking },
{ "key", key_benchmarking },
{ "hash", hash_benchmarking },
{ "blake2", blake2_benchmarking },
};
// values to control cout format
constexpr auto name_width = 28;
constexpr auto runs_width = 5;
constexpr auto time_width = 12;
constexpr auto ns_width = 2;
uint32_t num_runs = 1;
std::map<std::string, std::function<void()>> get_features() {
return features;
}
void set_num_runs(uint32_t runs) {
num_runs = runs;
}
void print_header() {
std::cout << std::left << std::setw(name_width) << "function"
<< std::setw(runs_width) << "runs"
<< std::setw(time_width + ns_width) << std::right << "average"
<< std::setw(time_width + ns_width) << "minimum"
<< std::setw(time_width + ns_width) << "maximum"
<< std::endl << std::endl;
}
void print_results(std::string name, uint32_t runs, uint64_t total, uint64_t min, uint64_t max) {
std::cout.imbue(std::locale(""));
std::cout
<< std::setw(name_width) << std::left << name
<< std::setw(runs_width) << runs
// std::fixed for not printing 1234 in 1.234e3.
// setprecision(0) for not printing fractions
<< std::right << std::fixed << std::setprecision(0)
<< std::setw(time_width) << total/runs << std::setw(ns_width) << " ns"
<< std::setw(time_width) << min << std::setw(ns_width) << " ns"
<< std::setw(time_width) << max << std::setw(ns_width) << " ns"
<< std::endl;
}
bytes to_bytes(const std::string& source) {
bytes output(source.length()/2);
fc::from_hex(source, output.data(), output.size());
return output;
};
void benchmarking(std::string name, const std::function<void()>& func) {
uint64_t total {0}, min {std::numeric_limits<uint64_t>::max()}, max {0};
for (auto i = 0U; i < num_runs; ++i) {
auto start_time = std::chrono::high_resolution_clock::now();
func();
auto end_time = std::chrono::high_resolution_clock::now();
uint64_t duration = std::chrono::duration_cast<std::chrono::nanoseconds>(end_time - start_time).count();
total += duration;
min = std::min(min, duration);
max = std::max(max, duration);
}
print_results(name, num_runs, total, min, max);
}
} // benchmark
+25
View File
@@ -0,0 +1,25 @@
#pragma once
#include <functional>
#include <map>
#include <vector>
#include <fc/crypto/hex.hpp>
namespace benchmark {
using bytes = std::vector<char>;
void set_num_runs(uint32_t runs);
std::map<std::string, std::function<void()>> get_features();
void print_header();
bytes to_bytes(const std::string& source);
void alt_bn_128_benchmarking();
void modexp_benchmarking();
void key_benchmarking();
void hash_benchmarking();
void blake2_benchmarking();
void benchmarking(std::string name, const std::function<void()>& func);
} // benchmark
+21
View File
@@ -0,0 +1,21 @@
#include <fc/crypto/blake2.hpp>
#include <benchmark.hpp>
namespace benchmark {
void blake2_benchmarking() {
uint32_t _rounds = 0x0C;
bytes _h = to_bytes( "48c9bdf267e6096a3ba7ca8485ae67bb2bf894fe72f36e3cf1361d5f3af54fa5d182e6ad7f520e511f6c3e2b8c68059b6bbd41fbabd9831f79217e1319cde05b");
bytes _m = to_bytes("6162630000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000");
bytes _t0_offset = to_bytes("0300000000000000");
bytes _t1_offset = to_bytes("0000000000000000");
bool _f = false;
auto blake2_f = [&]() {
fc::blake2b(_rounds, _h, _m, _t0_offset, _t1_offset, _f, [](){});;
};
benchmarking("blake2", blake2_f);
}
} // benchmark
+89
View File
@@ -0,0 +1,89 @@
#include <fc/crypto/hex.hpp>
#include <fc/crypto/sha1.hpp>
#include <fc/crypto/sha3.hpp>
#include <fc/crypto/sha256.hpp>
#include <fc/crypto/sha512.hpp>
#include <fc/crypto/ripemd160.hpp>
#include <fc/utility.hpp>
#include <benchmark.hpp>
using namespace fc;
namespace benchmark {
void hash_benchmarking() {
std::string small_message = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01";
// build a large message
constexpr auto large_msg_size = 4096;
std::string large_message;
large_message.reserve(large_msg_size);
uint32_t num_concats = large_msg_size/small_message.length();
for (uint32_t i = 0; i < num_concats; ++i) {
large_message += small_message;
}
auto sha1_small_msg = [&]() {
fc::sha1::hash(small_message);
};
benchmarking("sha1 (" + std::to_string(small_message.length()) + " bytes)", sha1_small_msg);
auto sha1_large_msg = [&]() {
fc::sha1::hash(large_message);
};
benchmarking("sha1 (" + std::to_string(large_message.length()) + " bytes)", sha1_large_msg);
auto sha256_small_msg = [&]() {
fc::sha256::hash(small_message);
};
benchmarking("sha256 (" + std::to_string(small_message.length()) + " bytes)", sha256_small_msg);
auto sha256_large_msg = [&]() {
fc::sha256::hash(large_message);
};
benchmarking("sha256 (" + std::to_string(large_message.length()) + " bytes)", sha256_large_msg);
auto sha512_small_msg = [&]() {
fc::sha512::hash(small_message);
};
benchmarking("sha512 (" + std::to_string(small_message.length()) + " bytes)", sha512_small_msg);
auto sha512_large_msg = [&]() {
fc::sha512::hash(large_message);
};
benchmarking("sha512 (" + std::to_string(large_message.length()) + " bytes)", sha512_large_msg);
auto ripemd160_small_msg = [&]() {
fc::ripemd160::hash(small_message);
};
benchmarking("ripemd160 (" + std::to_string(small_message.length()) + " bytes)", ripemd160_small_msg);
auto ripemd160_large_msg = [&]() {
fc::ripemd160::hash(large_message);
};
benchmarking("ripemd160 (" + std::to_string(large_message.length()) + " bytes)", ripemd160_large_msg);
auto sha3_small_msg = [&]() {
fc::sha3::hash(small_message, true);
};
benchmarking("sha3-256 (" + std::to_string(small_message.length()) + " bytes)", sha3_small_msg);
auto sha3_large_msg = [&]() {
fc::sha3::hash(large_message, true);
};
benchmarking("sha3-256 (" + std::to_string(large_message.length()) + " bytes)", sha3_large_msg);
auto keccak_small_msg = [&]() {
fc::sha3::hash(small_message, false);
};
benchmarking("keccak256 (" + std::to_string(small_message.length()) + " bytes)", keccak_small_msg);
auto keccak_large_msg = [&]() {
fc::sha3::hash(large_message, false);
};
benchmarking("keccak256 (" + std::to_string(large_message.length()) + " bytes)", keccak_large_msg);
}
} // benchmark
+109
View File
@@ -0,0 +1,109 @@
#include <fc/crypto/public_key.hpp>
#include <fc/crypto/private_key.hpp>
#include <fc/crypto/signature.hpp>
#include <fc/crypto/k1_recover.hpp>
#include <benchmark.hpp>
using namespace fc::crypto;
using namespace fc;
using namespace std::literals;
namespace benchmark {
void k1_sign_benchmarking() {
auto payload = "Test Cases";
auto digest = sha256::hash(payload, const_strlen(payload));
auto private_key_string = std::string("5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3");
auto key = private_key(private_key_string);
auto sign_non_canonical_f = [&]() {
key.sign(digest, false);
};
benchmarking("k1_sign_non_canonical", sign_non_canonical_f);
}
void k1_recover_benchmarking() {
auto signature = to_bytes( "1b323dd47a1dd5592c296ee2ee12e0af38974087a475e99098a440284f19c1f7642fa0baa10a8a3ab800dfdbe987dee68a09b6fa3db45a5cc4f3a5835a1671d4dd");
auto digest = to_bytes( "92390316873c5a9d520b28aba61e7a8f00025ac069acd9c4d2a71d775a55fa5f");
auto recover_f = [&]() {
fc::k1_recover(signature, digest);
};
benchmarking("k1_recover", recover_f);
}
void k1_benchmarking() {
k1_sign_benchmarking();
k1_recover_benchmarking();
}
void r1_benchmarking() {
auto payload = "Test Cases";
auto digest = sha256::hash(payload, const_strlen(payload));
auto key = private_key::generate<r1::private_key_shim>();
auto sign_f = [&]() {
key.sign(digest);
};
benchmarking("r1_sign", sign_f);
auto sig = key.sign(digest);
auto recover_f = [&]() {
public_key(sig, digest);;
};
benchmarking("r1_recover", recover_f);
}
static fc::crypto::webauthn::signature make_webauthn_sig(const fc::crypto::r1::private_key& priv_key,
std::vector<uint8_t>& auth_data,
const std::string& json) {
//webauthn signature is sha256(auth_data || client_data_hash)
fc::sha256 client_data_hash = fc::sha256::hash(json);
fc::sha256::encoder e;
e.write((char*)auth_data.data(), auth_data.size());
e.write(client_data_hash.data(), client_data_hash.data_size());
r1::compact_signature sig = priv_key.sign_compact(e.result());
char buff[8192];
datastream<char*> ds(buff, sizeof(buff));
fc::raw::pack(ds, sig);
fc::raw::pack(ds, auth_data);
fc::raw::pack(ds, json);
ds.seekp(0);
fc::crypto::webauthn::signature ret;
fc::raw::unpack(ds, ret);
return ret;
}
void wa_benchmarking() {
static const r1::private_key priv = fc::crypto::r1::private_key::generate();
static const fc::sha256 d = fc::sha256::hash("sup"s);
static const fc::sha256 origin_hash = fc::sha256::hash("fctesting.invalid"s);
std::string json = "{\"origin\":\"https://fctesting.invalid\",\"type\":\"webauthn.get\", \"challenge\":\"" + fc::base64url_encode(d.data(), d.data_size()) + "\"}";
std::vector<uint8_t> auth_data(37);
memcpy(auth_data.data(), origin_hash.data(), sizeof(origin_hash));
auto sign = [&]() {
make_webauthn_sig(priv, auth_data, json);
};
benchmarking("webauthn_sign", sign);
auto sig = make_webauthn_sig(priv, auth_data, json);
auto recover= [&]() {
sig.recover(d, true);
};
benchmarking("webauthn_recover", recover);
}
void key_benchmarking() {
k1_benchmarking();
r1_benchmarking();
wa_benchmarking();
}
} // benchmark
+80
View File
@@ -0,0 +1,80 @@
#include <iostream>
#include <boost/program_options.hpp>
#include <benchmark.hpp>
namespace bpo = boost::program_options;
using bpo::options_description;
using bpo::variables_map;
int main(int argc, char* argv[]) {
uint32_t num_runs = 1;
std::string feature_name;
auto features = benchmark::get_features();
options_description cli ("benchmark command line options");
cli.add_options()
("feature,f", bpo::value<std::string>(), "feature to be benchmarked; if this option is not present, all features are benchmarked.")
("list,l", "list of supported features")
("runs,r", bpo::value<uint32_t>(&num_runs)->default_value(1000), "the number of times running a function during benchmarking")
("help,h", "benchmark functions, and report average, minimum, and maximum execution time in nanoseconds");
variables_map vmap;
try {
bpo::store(bpo::parse_command_line(argc, argv, cli), vmap);
bpo::notify(vmap);
if (vmap.count("help") > 0) {
cli.print(std::cerr);
return 0;
}
if (vmap.count("list") > 0) {
auto first = true;
std::cout << "Supported features are ";
for (auto& [name, f]: features) {
if (first) {
first = false;
} else {
std::cout << ", ";
}
std::cout << name;
}
std::cout << std::endl;
return 0;
}
if (vmap.count("feature") > 0) {
feature_name = vmap["feature"].as<std::string>();
if (features.find(feature_name) == features.end()) {
std::cout << feature_name << " is not supported" << std::endl;
return 1;
}
}
} catch (bpo::unknown_option &ex) {
std::cerr << ex.what() << std::endl;
cli.print (std::cerr);
return 1;
} catch( ... ) {
std::cerr << "unknown exception" << std::endl;
}
benchmark::set_num_runs(num_runs);
benchmark::print_header();
if (feature_name.empty()) {
for (auto& [name, f]: features) {
std::cout << name << ":" << std::endl;
f();
std::cout << std::endl;
}
} else {
std::cout << feature_name << ":" << std::endl;
features[feature_name]();
std::cout << std::endl;
}
return 0;
}
+58
View File
@@ -0,0 +1,58 @@
#include <fc/crypto/modular_arithmetic.hpp>
#include <random>
#include <benchmark.hpp>
namespace benchmark {
void modexp_benchmarking() {
std::mt19937 r(0x11223344);
auto generate_random_bytes = [](std::mt19937& rand_eng, unsigned int num_bytes) {
std::vector<char> result(num_bytes);
uint_fast32_t v = 0;
for(int byte_pos = 0, end = result.size(); byte_pos < end; ++byte_pos) {
if ((byte_pos & 0x03) == 0) { // if divisible by 4
v = rand_eng();
}
result[byte_pos] = v & 0xFF;
v >>= 8;
}
return result;
};
static constexpr unsigned int start_num_bytes = 128; // 64
static constexpr unsigned int end_num_bytes = 256; // 512
static constexpr unsigned int delta_num_bytes = 128; // 64
static_assert(start_num_bytes <= end_num_bytes);
static_assert(delta_num_bytes > 0);
static_assert((end_num_bytes - start_num_bytes) % delta_num_bytes == 0);
for (unsigned int n = start_num_bytes, slot = 0; n <= end_num_bytes; n += delta_num_bytes, ++slot) {
auto base = generate_random_bytes(r, n);
auto exponent = generate_random_bytes(r, n);
auto modulus = generate_random_bytes(r, n);
auto f = [&]() {
fc::modexp(base, exponent, modulus);
};
benchmarking(std::to_string(n*8) + " bit width", f);
}
// Running the above benchmark (using commented values for num_trials and *_num_bytes) with a release build on an AMD 3.4 GHz CPU
// provides average durations for executing mod_exp for increasing bit sizes for the value.
// For example: with 512-bit values, the average duration is approximately 40 microseconds; with 1024-bit values, the average duration
// is approximately 260 microseconds; with 2048-bit values, the average duration is approximately 2 milliseconds; and, with 4096-bit
// values, the average duration is approximately 14 milliseconds.
// It appears that a model of the average time that scales quadratically with the bit size fits the empirically generated data well.
// TODO: See if theoretical analysis of the modular exponentiation algorithm also justifies quadratic scaling.
}
} // benchmark
@@ -2,19 +2,19 @@
content_title: Build Antelope from Source
---
The shell scripts previously recommended for building the software have been removed in favor of a build process entirely driven by CMake. Those wishing to build from source are now responsible for installing the necessary dependencies. The list of dependencies and the recommended build procedure are in the [`README.md`](https://github.com/AntelopeIO/leap/blob/release/3.1/README.md) file. Instructions are also included for efficiently running the tests.
The shell scripts previously recommended for building the software have been removed in favor of a build process entirely driven by CMake. Those wishing to build from source are now responsible for installing the necessary dependencies. The list of dependencies and the recommended build procedure are in the [`README.md`](https://github.com/AntelopeIO/leap/blob/main/README.md) file. Instructions are also included for efficiently running the tests.
### Using DUNE
As an alternative to building from source, try [Docker Utilities for Node Execution](https://github.com/AntelopeIO/DUNE) for the easiest way to get started and for multi-platform support.
### Building From Source
You can also build and install Leap from source. Instructions for that currently live [here](https://github.com/AntelopeIO/leap/blob/release/3.1/README.md#build-and-install-from-source).
You can also build and install Leap from source. Instructions for that currently live [here](https://github.com/AntelopeIO/leap/blob/main/README.md#build-and-install-from-source).
#### Building Pinned Build Binary Packages
The pinned build instructions have moved [here](https://github.com/AntelopeIO/leap/blob/release/3.1/README.md#pinned-build). You may want to look at the [prerequisites](https://github.com/AntelopeIO/leap/blob/release/3.1/README.md#prerequisites) and our warning on parallelization using the `-j` jobs flag [here](https://github.com/AntelopeIO/leap/blob/release/3.1/README.md#step-3---build) before you build.
The pinned build instructions have moved [here](https://github.com/AntelopeIO/leap/blob/main/README.md#pinned-build). You may want to look at the [prerequisites](https://github.com/AntelopeIO/leap/blob/main/README.md#prerequisites) and our warning on parallelization using the `-j` jobs flag [here](https://github.com/AntelopeIO/leap/blob/main/README.md#step-3---build) before you build.
#### Manual (non "pinned") Build Instructions
The unpinned build instructions have moved [here](https://github.com/AntelopeIO/leap/blob/release/3.1/README.md#unpinned-build). You may want to look at the [prerequisites](https://github.com/AntelopeIO/leap/blob/release/3.1/README.md#prerequisites) and our warning on parallelization using the `-j` jobs flag [here](https://github.com/AntelopeIO/leap/blob/release/3.1/README.md#step-3---build) before you build.
The unpinned build instructions have moved [here](https://github.com/AntelopeIO/leap/blob/main/README.md#unpinned-build). You may want to look at the [prerequisites](https://github.com/AntelopeIO/leap/blob/main/README.md#prerequisites) and our warning on parallelization using the `-j` jobs flag [here](https://github.com/AntelopeIO/leap/blob/main/README.md#step-3---build) before you build.
### Running Tests
Documentation on available test suites and how to run them has moved [here](https://github.com/AntelopeIO/leap/blob/release/3.1/README.md#test).
Documentation on available test suites and how to run them has moved [here](https://github.com/AntelopeIO/leap/blob/main/README.md#test).
@@ -143,7 +143,7 @@ We now have an account that is available to have a contract assigned to it, enab
In the fourth terminal window, start a second `nodeos` instance. Notice that this command line is substantially longer than the one we used above to create the first producer. This is necessary to avoid collisions with the first `nodeos` instance. Fortunately, you can just cut and paste this command line and adjust the keys:
```sh
nodeos --producer-name inita --plugin eosio::chain_api_plugin --plugin eosio::net_api_plugin --http-server-address 127.0.0.1:8889 --p2p-listen-endpoint 127.0.0.1:9877 --p2p-peer-address 127.0.0.1:9876 --config-dir node2 --data-dir node2 --private-key [\"EOS6hMjoWRF2L8x9YpeqtUEcsDKAyxSuM1APicxgRU1E3oyV5sDEg\",\"5JgbL2ZnoEAhTudReWH1RnMuQS6DBeLZt4ucV6t8aymVEuYg7sr\"]
nodeos --producer-name inita --plugin eosio::chain_api_plugin --plugin eosio::net_api_plugin --http-server-address 127.0.0.1:8889 --p2p-listen-endpoint 127.0.0.1:9877 --p2p-peer-address 127.0.0.1:9876 --config-dir node2 --data-dir node2 --signature-provider EOS6hMjoWRF2L8x9YpeqtUEcsDKAyxSuM1APicxgRU1E3oyV5sDEg=KEY:5JgbL2ZnoEAhTudReWH1RnMuQS6DBeLZt4ucV6t8aymVEuYg7sr
```
The output from this new node will show a little activity but will stop reporting until the last step in this tutorial, when the `inita` account is registered as a producer account and activated. Here is some example output from a newly started node. Your output might look a little different, depending on how much time you took entering each of these commands. Furthermore, this example is only the last few lines of output:
+21 -28
View File
@@ -63,6 +63,9 @@ Config Options for eosio::chain_plugin:
--blocks-dir arg (="blocks") the location of the blocks directory
(absolute path or relative to
application data dir)
--state-dir arg (="state") the location of the state directory
(absolute path or relative to
application data dir)
--protocol-features-dir arg (="protocol_features")
the location of the protocol_features
directory (absolute path or relative to
@@ -116,35 +119,18 @@ Config Options for eosio::chain_plugin:
subjective whitelist/blacklist checks
applied to them (may specify multiple
times)
--read-mode arg (=speculative) Database read mode ("speculative",
"head", "read-only", "irreversible").
In "speculative" mode: database
contains state changes by transactions
in the blockchain up to the head block
as well as some transactions not yet
included in the blockchain.
--read-mode arg (=head) Database read mode ("head",
"irreversible").
In "head" mode: database contains state
changes by only transactions in the
blockchain up to the head block;
changes up to the head block;
transactions received by the node are
relayed if valid.
In "read-only" mode: (DEPRECATED: see
p2p-accept-transactions &
api-accept-transactions) database
contains state changes by only
transactions in the blockchain up to
the head block; transactions received
via the P2P network are not relayed and
transactions cannot be pushed via the
chain API.
In "irreversible" mode: database
contains state changes by only
transactions in the blockchain up to
the last irreversible block;
transactions received via the P2P
network are not relayed and
transactions cannot be pushed via the
chain API.
contains state changes up to the last
irreversible block; transactions
received via the P2P network are not
relayed and transactions cannot be
pushed via the chain API.
--api-accept-transactions arg (=1) Allow API transactions to be evaluated
and relayed if valid.
@@ -221,9 +207,16 @@ Config Options for eosio::chain_plugin:
transaction's Finality Status will
remain available from being first
identified.
--block-log-retain-blocks arg if set, periodically prune the block
log to store only configured number of
most recent blocks
--integrity-hash-on-start Log the state integrity hash on startup
--integrity-hash-on-stop Log the state integrity hash on
shutdown
--block-log-retain-blocks arg If set to greater than 0, periodically
prune the block log to store only
configured number of most recent
blocks.
If set to 0, no blocks are be written
to the block log; block log file is
removed after startup.
```
@@ -1,39 +0,0 @@
## Description
The `http_client_plugin` is an internal utility plugin, providing the `producer_plugin` the ability to use securely an external `keosd` instance as its block signer. It can only be used when the `producer_plugin` is configured to produce blocks.
## Usage
```console
# config.ini
plugin = eosio::http_client_plugin
https-client-root-cert = "path/to/my/certificate.pem"
https-client-validate-peers = 1
```
```sh
# command-line
nodeos ... --plugin eosio::http_client_plugin \
--https-client-root-cert "path/to/my/certificate.pem" \
--https-client-validate-peers 1
```
## Options
These can be specified from both the `nodeos` command-line or the `config.ini` file:
```console
Config Options for eosio::http_client_plugin:
--https-client-root-cert arg PEM encoded trusted root certificate
(or path to file containing one) used
to validate any TLS connections made.
(may specify multiple times)
--https-client-validate-peers arg (=1)
true: validate that the peer
certificates are valid and trusted,
false: ignore cert errors
```
## Dependencies
* [`producer_plugin`](../producer_plugin/index.md)
+12 -13
View File
@@ -29,20 +29,10 @@ Config Options for eosio::http_plugin:
The local IP and port to listen for
incoming http connections; set blank to
disable.
--https-server-address arg The local IP and port to listen for
incoming https connections; leave blank
to disable.
--https-certificate-chain-file arg Filename with the certificate chain to
present on https connections. PEM
format. Required for https.
--https-private-key-file arg Filename with https private key in PEM
format. Required for https
--https-ecdh-curve arg (=secp384r1) Configure https ECDH curve to use:
secp384r1 or prime256v1
--access-control-allow-origin arg Specify the Access-Control-Allow-Origin
to be returned on each request.
to be returned on each request
--access-control-allow-headers arg Specify the Access-Control-Allow-Header
s to be returned on each request.
s to be returned on each request
--access-control-max-age arg Specify the Access-Control-Max-Age to
be returned on each request.
--access-control-allow-credentials Specify if Access-Control-Allow-Credent
@@ -55,7 +45,13 @@ Config Options for eosio::http_plugin:
should use for processing http
requests. -1 for unlimited. 429 error
response when exceeded.
--http-max-response-time-ms arg (=30) Maximum time for processing a request.
--http-max-in-flight-requests arg (=-1)
Maximum number of requests http_plugin
should use for processing http
requests. 429 error response when
exceeded.
--http-max-response-time-ms arg (=30) Maximum time for processing a request,
-1 for unlimited
--verbose-http-errors Append the error log to HTTP responses
--http-validate-host arg (=1) If set to false, then any incoming
"Host" header is considered valid
@@ -66,6 +62,9 @@ Config Options for eosio::http_plugin:
by default.
--http-threads arg (=2) Number of worker threads in http thread
pool
--http-keep-alive arg (=1) If set to false, do not keep HTTP
connections alive, even if client
requests.
```
## Dependencies
-3
View File
@@ -11,9 +11,7 @@ For information on specific plugins, just select from the list below:
* [`chain_api_plugin`](chain_api_plugin/index.md)
* [`chain_plugin`](chain_plugin/index.md)
* [`db_size_api_plugin`](db_size_api_plugin/index.md)
* [`http_client_plugin`](http_client_plugin/index.md)
* [`http_plugin`](http_plugin/index.md)
* [`login_plugin`](login_plugin/index.md)
* [`net_api_plugin`](net_api_plugin/index.md)
* [`net_plugin`](net_plugin/index.md)
* [`producer_plugin`](producer_plugin/index.md)
@@ -21,7 +19,6 @@ For information on specific plugins, just select from the list below:
* [`test_control_api_plugin`](test_control_api_plugin/index.md)
* [`test_control_plugin`](test_control_plugin/index.md)
* [`trace_api_plugin`](trace_api_plugin/index.md)
* [`txn_test_gen_plugin`](txn_test_gen_plugin/index.md)
[[info | Nodeos is modular]]
| Plugins add incremental functionality to `nodeos`. Unlike runtime plugins, `nodeos` plugins are built at compile-time.
@@ -1,47 +0,0 @@
## Description
The `login_plugin` supports the concept of applications authenticating with the Antelope blockchain. The `login_plugin` API allows an application to verify whether an account is allowed to sign in order to satisfy a specified authority.
## Usage
```console
# config.ini
plugin = eosio::login_plugin
[options]
```
```sh
# command-line
nodeos ... --plugin eosio::login_plugin [options]
```
## Options
These can be specified from both the `nodeos` command-line or the `config.ini` file:
```console
Config Options for eosio::login_plugin:
--max-login-requests arg (=1000000) The maximum number of pending login
requests
--max-login-timeout arg (=60) The maximum timeout for pending login
requests (in seconds)
```
## Dependencies
* [`chain_plugin`](../chain_plugin/index.md)
* [`http_plugin`](../http_plugin/index.md)
### Load Dependency Examples
```console
# config.ini
plugin = eosio::chain_plugin
[options]
plugin = eosio::http_plugin
[options]
```
```sh
# command-line
nodeos ... --plugin eosio::chain_plugin [options] \
--plugin eosio::http_plugin [options]
```
@@ -39,10 +39,6 @@ Config Options for eosio::producer_plugin:
-p [ --producer-name ] arg ID of producer controlled by this node
(e.g. inita; may specify multiple
times)
--private-key arg (DEPRECATED - Use signature-provider
instead) Tuple of [public key, WIF
private key] (may specify multiple
times)
--signature-provider arg (=EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV=KEY:5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3)
Key=Value pairs in the form
<public-key>=<provider-spec>
@@ -55,7 +51,7 @@ Config Options for eosio::producer_plugin:
form <provider-type>
:<data>
<provider-type> is KEY, or KEOSD
<provider-type> is KEY, KEOSD, or SE
KEY:<data> is a string form of
a valid EOS
@@ -68,10 +64,6 @@ Config Options for eosio::producer_plugin:
and the approptiate
wallet(s) are
unlocked
--keosd-provider-timeout arg (=5) Limits the maximum time (in
milliseconds) that is allowed for
sending blocks to a keosd provider for
signing
--greylist-account arg account that can not access to extended
CPU/NET virtual resources
--greylist-limit arg (=1000) Limit (between 1 and 1000) on the
@@ -106,9 +98,10 @@ Config Options for eosio::producer_plugin:
--max-scheduled-transaction-time-per-block-ms arg (=100)
Maximum wall-clock time, in
milliseconds, spent retiring scheduled
transactions in any block before
returning to normal transaction
processing.
transactions (and incoming transactions
according to incoming-defer-ratio) in
any block before returning to normal
transaction processing.
--subjective-cpu-leeway-us arg (=31000)
Time in microseconds allowed for a
transaction that starts with
@@ -129,8 +122,6 @@ Config Options for eosio::producer_plugin:
transaction queue. Exceeding this value
will subjectively drop transaction with
resource exhaustion.
--disable-api-persisted-trx Disable the re-apply of API
transactions.
--disable-subjective-billing arg (=1) Disable subjective CPU billing for
API/P2P transactions
--disable-subjective-account-billing arg
@@ -42,6 +42,9 @@ Config Options for eosio::state_history_plugin:
incoming connections. Caution: only
expose this port to your internal
network.
--state-history-unix-socket-path arg the path (relative to data-dir) to
create a unix socket upon which to
listen for incoming connections.
--trace-history-debug-mode enable debug mode for trace history
--state-history-log-retain-blocks arg if set, periodically prune the state
history files to store only configured
@@ -1,40 +0,0 @@
## Description
The `txn_test_gen_plugin` is used for transaction test purposes.
[[info | For More Information]]
For more information, check the [txn_test_gen_plugin/README.md](https://github.com/AntelopeIO/leap/tree/main/plugins/txn_test_gen_plugin) on the `AntelopeIO/leap` repository.
## Usage
```console
# config.ini
plugin = eosio::txn_test_gen_plugin
[options]
```
```sh
# command-line
nodeos ... --plugin eosio::txn_test_gen_plugin [options]
```
## Options
These can be specified from both the `nodeos` command-line or the `config.ini` file:
```console
Config Options for eosio::txn_test_gen_plugin:
--txn-reference-block-lag arg (=0) Lag in number of blocks from the head
block when selecting the reference
block for transactions (-1 means Last
Irreversible Block)
--txn-test-gen-threads arg (=2) Number of worker threads in
txn_test_gen thread pool
--txn-test-gen-account-prefix arg (=txn.test.)
Prefix to use for accounts generated
and used by this plugin
```
## Dependencies
None
@@ -64,3 +64,24 @@ Sample `logging.json`:
]
}
```
## Expected Output of Log Levels
* `error` - Log output that likely requires operator intervention.
- Error level logging should be reserved for conditions that are completely unexpected or otherwise need human intervention.
- Also used to indicate software errors such as: impossible values for an `enum`, out of bounds array access, null pointers, or other conditions that likely will throw an exception.
- *Note*: Currently, there are numerous `error` level logging that likely should be `warn` as they do not require human intervention. The `net_plugin_impl`, for example, has a number of `error` level logs for bad network connections. This is handled and processed correctly. These should be changed to `warn` or `info`.
* `warn` - Log output indicating unexpected but recoverable errors.
- Although, `warn` level typically does not require human intervention, repeated output of `warn` level logs might indicate actions needed by an operator.
- `warn` should not be used simply for conveying information. A `warn` level log is something to take notice of, but not necessarily be concerned about.
* `info` (default) - Log output that provides useful information to an operator.
- Can be just progress indication or other useful data to a user. Care is taken not to create excessive log output with `info` level logging. For example, no `info` level logging should be produced for every transaction.
- For progress indication, some multiple of transactions should be processed between each log output; typically, every 1000 transactions.
* `debug` - Useful log output for when non-default logging is enabled.
- Answers the question: is this useful information for a user that is monitoring the log output. Care should be taken not to create excessive log output; similar to `info` level logging.
- Enabling `debug` level logging should provide greater insight into behavior without overwhelming the output with log entries.
- `debug` level should not be used for *trace* level logging; to that end, use `all` (see below).
- Like `info`, no `debug` level logging should be produced for every transaction. There are specific transaction level loggers dedicated to transaction level logging: `transaction`, `transaction_trace_failure`, `transaction_trace_success`, `transaction_failure_tracing`, `transaction_success_tracing`, `transient_trx_success_tracing`, `transient_trx_failure_tracing`.
* `all` (trace) - For logging that would be overwhelming if `debug` level logging were used.
- Can be used for trace level logging. Only used in a few places and not completely supported.
- *Note*: In the future a different logging library may provide better trace level logging support. The current logging framework is not performant enough to enable excess trace level output.
@@ -27,38 +27,17 @@ The `nodeos` service provides query access to the chain database via the HTTP [R
The `nodeos` service can be run in different "read" modes. These modes control how the node operates and how it processes blocks and transactions:
- `speculative`: this includes the side effects of confirmed and unconfirmed transactions.
- `head`: this only includes the side effects of confirmed transactions, this mode processes unconfirmed transactions but does not include them.
- `read-only`: this mode is deprecated. Similar functionality can be achieved by combining options: `read-mode = head`, `p2p-accept-transactions = false`, `api-accept-transactions = false`. When these options are set, the local database will contain state changes made by transactions in the chain up to the head block. Also, transactions received via the P2P network are not relayed and transactions cannot be pushed via the chain API.
- `irreversible`: this mode also includes confirmed transactions only up to those included in the last irreversible block.
A transaction is considered confirmed when a `nodeos` instance has received, processed, and written it to a block on the blockchain, i.e. it is in the head block or an earlier block.
### Speculative Mode
Clients such as `cleos` and the RPC API, will see database state as of the current head block plus changes made by all transactions known to this node but potentially not included in the chain, unconfirmed transactions for example.
Speculative mode is low latency but fragile, there is no guarantee that the transactions reflected in the state will be included in the chain OR that they will reflected in the same order the state implies.
This mode features the lowest latency, but is the least consistent.
In speculative mode `nodeos` is able to execute transactions which have TaPoS (Transaction as Proof of Stake) pointing to any valid block in a fork considered to be the best fork by this node.
### Head Mode
Clients such as `cleos` and the RPC API will see database state as of the current head block of the chain. Since current head block is not yet irreversible and short-lived forks are possible, state read in this mode may become inaccurate if `nodeos` switches to a better fork. Note that this is also true of speculative mode.
This mode represents a good trade-off between highly consistent views of the data and latency.
Clients such as `cleos` and the RPC API will see database state as of the current head block of the chain. Since current head block is not yet irreversible and short-lived forks are possible, state read in this mode may become inaccurate if `nodeos` switches to a better fork.
In this mode `nodeos` is able to execute transactions which have TaPoS pointing to any valid block in a fork considered to be the best fork by this node.
### Read-Only Mode
[[caution | Deprecation Notice]]
| The explicit `read-mode = read-only` mode is deprecated. Similar functionality can now be achieved in `head` mode by combining options: `read-mode = head`, `p2p-accept-transactions = false`, `api-accept-transactions = false`.
Clients such as `cleos` and the RPC API will see database state as of the current head block of the chain. It **will not** include changes made by transactions known to this node but not included in the chain, such as unconfirmed transactions.
### Irreversible Mode
When `nodeos` is configured to be in irreversible read mode, it will still track the most up-to-date blocks in the fork database, but the state will lag behind the current best head block, sometimes referred to as the fork DB head, to always reflect the state of the last irreversible block.
-15
View File
@@ -44,16 +44,6 @@ Config Options for eosio::http_plugin:
--http-server-address arg The local IP and port to listen for
incoming http connections; leave blank
to disable.
--https-server-address arg The local IP and port to listen for
incoming https connections; leave blank
to disable.
--https-certificate-chain-file arg Filename with the certificate chain to
present on https connections. PEM
format. Required for https.
--https-private-key-file arg Filename with https private key in PEM
format. Required for https
--https-ecdh-curve arg (=secp384r1) Configure https ECDH curve to use:
secp384r1 or prime256v1
--access-control-allow-origin arg Specify the Access-Control-Allow-Origin
to be returned on each request.
--access-control-allow-headers arg Specify the Access-Control-Allow-Header
@@ -91,11 +81,6 @@ Config Options for eosio::wallet_plugin:
number of seconds of inactivity.
Activity is defined as any wallet
command e.g. list-wallets.
--yubihsm-url URL Override default URL of
http://localhost:12345 for connecting
to yubihsm-connector
--yubihsm-authkey key_num Enables YubiHSM support using given
Authkey
Application Config Options:
--plugin arg Plugin(s) to enable, may be specified
@@ -1,73 +0,0 @@
---
content_title: How To Attach a YubiHSM Hard Wallet
link_text: How To Attach a YubiHSM Hard Wallet
---
## Goal
Attach a YubiHSM as a hard wallet
## Before you begin
* Install the currently supported version of `keosd`
* Install YubiHSM2 Software Toolkit (YubiHSM2 SDK)
* Create an AuthKey with at least the following Capabilities:
* sign-ecdsa
* generate-asymmetric-key
* export-wrapped
* **Delete the default AuthKey**
[[warning | Security]]
| It is extremely important to create a new AuthKey and remove the default AuthKey before proceed to the following steps.
## Steps
### Configure `keosd`
There are two options to connect `keosd` to YubiHSM:
#### Using a YubiHSM connector
By default, `keosd` will connect to the YubiHSM connector on the default host and port. If a non-default URL is used, set the `--yubihsm-url` option or `yubihsm-url` in `config.ini` with the correct connector URL
#### Directly connect via USB
`keosd` also can directly connect to YubiHSM via USB protocol
If this option is used, set `keosd` startup option as the below:
```sh
--yubihsm-url=ysb://
```
### Start `keosd` with AuthKey:
```sh
--yubihsm-authkey Your_AuthKey_Object_Number
```
if a YubiHSM connector is used, check the YubiHSM connector is up and running by visiting YubiHSM URL:
http://YubiHSM_HOST:YubiHSM_PORT/connector/status ((Default HOST and Port: http://127.0.0.1:12345)
You should see something like this:
```console
status=OK
serial=*
version=2.0.0
pid=666
address=localhost
port=12345
```
### Unlock YubiHSM wallet with the password of AuthKey using the following option:
```sh
cleos wallet unlock -n YubiHSM --password YOUR_AUTHKEY_PASSWORD
```
After unlocking the wallet, you can use `cleos wallet` commands as usual. Beware as a part of security mechanism, some wallet subcommands, such as retrieve private keys, or remove a key, are not supported when a YubiHSM is used
-5
View File
@@ -1,5 +0,0 @@
---
content_title: Keosd How-to Guides
---
* [How to attach a YubiHSM hard wallet](how-to-attach-a-yubihsm-hard-wallet.md)
-38
View File
@@ -1,38 +0,0 @@
---
content_title: eosio-blocklog
link_text: eosio-blocklog
---
`eosio-blocklog` is a command-line interface (CLI) utility that allows node operators to perform low-level tasks on the block logs created by a `nodeos` instance. `eosio-blocklog` can perform one of the following operations:
* Convert a range of blocks to JSON format, as single objects or array.
* Generate `blocks.index` from `blocks.log` in blocks directory.
* Trim `blocks.log` and `blocks.index` between a range of blocks.
* Perform consistency test between `blocks.log` and `blocks.index`.
* Output the results of the operation to a file or `stdout` (default).
## Usage
```sh
eosio-blocklog <options> ...
```
## Options
Option (=default) | Description
-|-
`--blocks-dir arg (="blocks")` | The location of the blocks directory (absolute path or relative to the current directory)
`-o [ --output-file ] arg` | The file to write the generated output to (absolute or relative path). If not specified then output is to `stdout`
`-f [ --first ] arg (=0)` | The first block number to log or the first block to keep if `trim-blocklog` specified
`-l [ --last ] arg (=4294967295)` | the last block number to log or the last block to keep if `trim-blocklog` specified
`--no-pretty-print` | Do not pretty print the output. Useful if piping to `jq` to improve performance
`--as-json-array` | Print out JSON blocks wrapped in JSON array (otherwise the output is free-standing JSON objects)
`--make-index` | Create `blocks.index` from `blocks.log`. Must give `blocks-dir` location. Give `output-file` relative to current directory or absolute path (default is `<blocks-dir>/blocks.index`)
`--trim-blocklog` | Trim `blocks.log` and `blocks.index`. Must give `blocks-dir` and `first` and/or `last` options.
`--smoke-test` | Quick test that `blocks.log` and `blocks.index` are well formed and agree with each other
`-h [ --help ]` | Print this help message and exit
## Remarks
When `eosio-blocklog` is launched, the utility attempts to perform the specified operation, then yields the following possible outcomes:
* If successful, the selected operation is performed and the utility terminates with a zero error code (no error).
* If unsuccessful, the utility outputs an error to `stderr` and terminates with a non-zero error code (indicating an error).
-1
View File
@@ -5,5 +5,4 @@ link_text: Antelope Utilities
This section contains documentation for additional utilities that complement or extend `nodeos` and potentially other Antelope software:
* [eosio-blocklog](eosio-blocklog.md) - Low-level utility for node operators to interact with block log files.
* [trace_api_util](trace_api_util.md) - Low-level utility for performing tasks associated with the [Trace API](../01_nodeos/03_plugins/trace_api_plugin/index.md).
+5 -20
View File
@@ -3,23 +3,21 @@ set(FC_INSTALL_COMPONENT "dev")
set(APPBASE_INSTALL_COMPONENT "dev")
set(SOFTFLOAT_INSTALL_COMPONENT "dev")
set(EOSVM_INSTALL_COMPONENT "dev")
set(BN256_INSTALL_COMPONENT "dev")
add_subdirectory( fc )
add_subdirectory( libfc )
add_subdirectory( builtins )
# Suppress warnings on 3rdParty Library
add_definitions( -w )
add_subdirectory( softfloat )
add_subdirectory( wasm-jit )
remove_definitions( -w )
add_subdirectory( chainbase )
set(APPBASE_ENABLE_AUTO_VERSION OFF CACHE BOOL "enable automatic discovery of version via 'git describe'")
add_subdirectory( appbase )
add_subdirectory( custom_appbase )
add_subdirectory( chain )
add_subdirectory( testing )
add_subdirectory( version )
add_subdirectory( state_history )
add_subdirectory( cli11 )
set(USE_EXISTING_SOFTFLOAT ON CACHE BOOL "use pre-exisiting softfloat lib")
set(ENABLE_TOOLS OFF CACHE BOOL "Build tools")
@@ -30,17 +28,4 @@ set(ENABLE_PROFILE OFF CACHE BOOL "Enable for profile builds")
if(eos-vm IN_LIST EOSIO_WASM_RUNTIMES OR eos-vm-jit IN_LIST EOSIO_WASM_RUNTIMES)
add_subdirectory( eos-vm )
endif()
set(ENABLE_STATIC ON)
set(CMAKE_MACOSX_RPATH OFF)
set(BUILD_ONLY_LIB ON CACHE BOOL "Library only build")
message(STATUS "Starting yubihsm configuration...")
add_subdirectory( yubihsm EXCLUDE_FROM_ALL )
target_compile_options(yubihsm_static PRIVATE -fno-lto -fcommon)
message(STATUS "yubihsm configuration complete")
get_property(_CTEST_CUSTOM_TESTS_IGNORE GLOBAL PROPERTY CTEST_CUSTOM_TESTS_IGNORE)
set_property(GLOBAL PROPERTY CTEST_CUSTOM_TESTS_IGNORE
"change_authkey import_ed decrypt_ec decrypt_rsa ssh logs generate_rsa import_ec echo\
yubico_otp wrap_data wrap info import_rsa import_authkey generate_hmac generate_ec\
attest pbkdf2 parsing ${_CTEST_CUSTOM_TESTS_IGNORE}")
add_subdirectory( prometheus )
+5 -5
View File
@@ -42,7 +42,7 @@ if("eos-vm-oc" IN_LIST EOSIO_WASM_RUNTIMES)
endif()
llvm_map_components_to_libnames(LLVM_LIBS support core passes mcjit native orcjit)
include_directories(${LLVM_INCLUDE_DIRS})
include_directories(SYSTEM ${LLVM_INCLUDE_DIRS})
add_definitions(${LLVM_DEFINITIONS})
option(EOSVMOC_ENABLE_DEVELOPER_OPTIONS "enable developer options for EOS VM OC" OFF)
@@ -72,6 +72,9 @@ set(CHAIN_WEBASSEMBLY_SOURCES
webassembly/transaction.cpp
)
add_library(eosio_rapidjson INTERFACE)
target_include_directories(eosio_rapidjson INTERFACE ../rapidjson/include)
## SORT .cpp by most likely to change / break compile
add_library( eosio_chain
merkle.cpp
@@ -125,7 +128,7 @@ add_library( eosio_chain
${HEADERS}
)
target_link_libraries( eosio_chain PUBLIC fc chainbase Logging IR WAST WASM Runtime
target_link_libraries( eosio_chain PUBLIC bn256 fc chainbase eosio_rapidjson Logging IR WAST WASM Runtime
softfloat builtins ${CHAIN_EOSVM_LIBRARIES} ${LLVM_LIBS} ${CHAIN_RT_LINKAGE}
)
target_include_directories( eosio_chain
@@ -162,6 +165,3 @@ install( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/eosio/chain/
FILES_MATCHING PATTERN "*.hpp" PATTERN "*.h" EXCLUDE
)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/include/eosio/chain/core_symbol.hpp DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}/eosio/chain COMPONENT dev EXCLUDE_FROM_ALL)
#if(MSVC)
# set_source_files_properties( db_init.cpp db_block.cpp database.cpp block_log.cpp PROPERTIES COMPILE_FLAGS "/bigobj" )
#endif(MSVC)
+50 -29
View File
@@ -70,14 +70,14 @@ namespace eosio { namespace chain {
);
}
abi_serializer::abi_serializer( const abi_def& abi, const yield_function_t& yield ) {
abi_serializer::abi_serializer( abi_def abi, const yield_function_t& yield ) {
configure_built_in_types();
set_abi(abi, yield);
set_abi(std::move(abi), yield);
}
abi_serializer::abi_serializer( const abi_def& abi, const fc::microseconds& max_serialization_time) {
configure_built_in_types();
set_abi(abi, max_serialization_time);
set_abi(abi, create_yield_function(max_serialization_time));
}
void abi_serializer::add_specialized_unpack_pack( const string& name,
@@ -128,11 +128,19 @@ namespace eosio { namespace chain {
built_in_types.emplace("extended_asset", pack_unpack<extended_asset>());
}
void abi_serializer::set_abi(const abi_def& abi, const yield_function_t& yield) {
void abi_serializer::set_abi(abi_def abi, const yield_function_t& yield) {
impl::abi_traverse_context ctx(yield);
EOS_ASSERT(starts_with(abi.version, "eosio::abi/1."), unsupported_abi_version_exception, "ABI has an unsupported version");
size_t types_size = abi.types.size();
size_t structs_size = abi.structs.size();
size_t actions_size = abi.actions.size();
size_t tables_size = abi.tables.size();
size_t error_messages_size = abi.error_messages.size();
size_t variants_size = abi.variants.value.size();
size_t action_results_size = abi.action_results.value.size();
typedefs.clear();
structs.clear();
actions.clear();
@@ -141,41 +149,41 @@ namespace eosio { namespace chain {
variants.clear();
action_results.clear();
for( const auto& st : abi.structs )
structs[st.name] = st;
for( auto& st : abi.structs )
structs[st.name] = std::move(st);
for( const auto& td : abi.types ) {
for( auto& td : abi.types ) {
EOS_ASSERT(!_is_type(td.new_type_name, ctx), duplicate_abi_type_def_exception,
"type already exists", ("new_type_name",impl::limit_size(td.new_type_name)));
typedefs[td.new_type_name] = td.type;
typedefs[std::move(td.new_type_name)] = std::move(td.type);
}
for( const auto& a : abi.actions )
actions[a.name] = a.type;
for( auto& a : abi.actions )
actions[std::move(a.name)] = std::move(a.type);
for( const auto& t : abi.tables )
tables[t.name] = t.type;
for( auto& t : abi.tables )
tables[std::move(t.name)] = std::move(t.type);
for( const auto& e : abi.error_messages )
error_messages[e.error_code] = e.error_msg;
for( auto& e : abi.error_messages )
error_messages[std::move(e.error_code)] = std::move(e.error_msg);
for( const auto& v : abi.variants.value )
variants[v.name] = v;
for( auto& v : abi.variants.value )
variants[v.name] = std::move(v);
for( const auto& r : abi.action_results.value )
action_results[r.name] = r.result_type;
for( auto& r : abi.action_results.value )
action_results[std::move(r.name)] = std::move(r.result_type);
/**
* The ABI vector may contain duplicates which would make it
* an invalid ABI
*/
EOS_ASSERT( typedefs.size() == abi.types.size(), duplicate_abi_type_def_exception, "duplicate type definition detected" );
EOS_ASSERT( structs.size() == abi.structs.size(), duplicate_abi_struct_def_exception, "duplicate struct definition detected" );
EOS_ASSERT( actions.size() == abi.actions.size(), duplicate_abi_action_def_exception, "duplicate action definition detected" );
EOS_ASSERT( tables.size() == abi.tables.size(), duplicate_abi_table_def_exception, "duplicate table definition detected" );
EOS_ASSERT( error_messages.size() == abi.error_messages.size(), duplicate_abi_err_msg_def_exception, "duplicate error message definition detected" );
EOS_ASSERT( variants.size() == abi.variants.value.size(), duplicate_abi_variant_def_exception, "duplicate variant definition detected" );
EOS_ASSERT( action_results.size() == abi.action_results.value.size(), duplicate_abi_action_results_def_exception, "duplicate action results definition detected" );
EOS_ASSERT( typedefs.size() == types_size, duplicate_abi_type_def_exception, "duplicate type definition detected" );
EOS_ASSERT( structs.size() == structs_size, duplicate_abi_struct_def_exception, "duplicate struct definition detected" );
EOS_ASSERT( actions.size() == actions_size, duplicate_abi_action_def_exception, "duplicate action definition detected" );
EOS_ASSERT( tables.size() == tables_size, duplicate_abi_table_def_exception, "duplicate table definition detected" );
EOS_ASSERT( error_messages.size() == error_messages_size, duplicate_abi_err_msg_def_exception, "duplicate error message definition detected" );
EOS_ASSERT( variants.size() == variants_size, duplicate_abi_variant_def_exception, "duplicate variant definition detected" );
EOS_ASSERT( action_results.size() == action_results_size, duplicate_abi_action_results_def_exception, "duplicate action results definition detected" );
validate(ctx);
}
@@ -209,6 +217,19 @@ namespace eosio { namespace chain {
return ends_with(type, "[]");
}
bool abi_serializer::is_szarray(const string_view& type)const {
auto pos1 = type.find_last_of('[');
auto pos2 = type.find_last_of(']');
if(pos1 == string_view::npos || pos2 == string_view::npos) return false;
auto pos = pos1 + 1;
if(pos == pos2) return false;
while(pos < pos2) {
if( ! (type[pos] >= '0' && type[pos] <= '9') ) return false;
++pos;
}
return true;
}
bool abi_serializer::is_optional(const string_view& type)const {
return ends_with(type, "?");
}
@@ -225,6 +246,8 @@ namespace eosio { namespace chain {
std::string_view abi_serializer::fundamental_type(const std::string_view& type)const {
if( is_array(type) ) {
return type.substr(0, type.size()-2);
} else if (is_szarray (type) ){
return type.substr(0, type.find_last_of('['));
} else if ( is_optional(type) ) {
return type.substr(0, type.size()-1);
} else {
@@ -395,10 +418,8 @@ namespace eosio { namespace chain {
for( decltype(size.value) i = 0; i < size; ++i ) {
ctx.set_array_index_of_path_back(i);
auto v = _binary_to_variant(ftype, stream, ctx);
// QUESTION: Is it actually desired behavior to require the returned variant to not be null?
// This would disallow arrays of optionals in general (though if all optionals in the array were present it would be allowed).
// Is there any scenario in which the returned variant would be null other than in the case of an empty optional?
EOS_ASSERT( !v.is_null(), unpack_exception, "Invalid packed array '${p}'", ("p", ctx.get_path_string()) );
// The exception below is commented out to allow array of optional as input data
//EOS_ASSERT( !v.is_null(), unpack_exception, "Invalid packed array '${p}'", ("p", ctx.get_path_string()) );
vars.emplace_back(std::move(v));
}
// QUESTION: Why would the assert below ever fail?
+104 -86
View File
@@ -71,51 +71,53 @@ void apply_context::exec_one()
try {
action_return_value.clear();
receiver_account = &db.get<account_metadata_object,by_name>( receiver );
privileged = receiver_account->is_privileged();
auto native = control.find_apply_handler( receiver, act->account, act->name );
if( native ) {
if( trx_context.enforce_whiteblacklist && control.is_producing_block() ) {
control.check_contract_list( receiver );
control.check_action_list( act->account, act->name );
}
(*native)( *this );
}
if( ( receiver_account->code_hash != digest_type() ) &&
( !( act->account == config::system_account_name
&& act->name == "setcode"_n
&& receiver == config::system_account_name )
|| control.is_builtin_activated( builtin_protocol_feature_t::forward_setcode )
)
) {
if( trx_context.enforce_whiteblacklist && control.is_producing_block() ) {
control.check_contract_list( receiver );
control.check_action_list( act->account, act->name );
}
try {
control.get_wasm_interface().apply( receiver_account->code_hash, receiver_account->vm_type, receiver_account->vm_version, *this );
} catch( const wasm_exit& ) {}
}
if( !privileged && control.is_builtin_activated( builtin_protocol_feature_t::ram_restrictions ) ) {
const size_t checktime_interval = 10;
size_t counter = 0;
bool not_in_notify_context = (receiver == act->account);
const auto end = _account_ram_deltas.end();
for( auto itr = _account_ram_deltas.begin(); itr != end; ++itr, ++counter ) {
if( counter == checktime_interval ) {
trx_context.checktime();
counter = 0;
if( !(context_free && control.skip_trx_checks()) ) {
privileged = receiver_account->is_privileged();
auto native = control.find_apply_handler( receiver, act->account, act->name );
if( native ) {
if( trx_context.enforce_whiteblacklist && control.is_speculative_block() ) {
control.check_contract_list( receiver );
control.check_action_list( act->account, act->name );
}
if( itr->delta > 0 && itr->account != receiver ) {
EOS_ASSERT( not_in_notify_context, unauthorized_ram_usage_increase,
"unprivileged contract cannot increase RAM usage of another account within a notify context: ${account}",
("account", itr->account)
);
EOS_ASSERT( has_authorization( itr->account ), unauthorized_ram_usage_increase,
"unprivileged contract cannot increase RAM usage of another account that has not authorized the action: ${account}",
("account", itr->account)
);
(*native)( *this );
}
if( ( receiver_account->code_hash != digest_type() ) &&
( !( act->account == config::system_account_name
&& act->name == "setcode"_n
&& receiver == config::system_account_name )
|| control.is_builtin_activated( builtin_protocol_feature_t::forward_setcode )
)
) {
if( trx_context.enforce_whiteblacklist && control.is_speculative_block() ) {
control.check_contract_list( receiver );
control.check_action_list( act->account, act->name );
}
try {
control.get_wasm_interface().apply( receiver_account->code_hash, receiver_account->vm_type, receiver_account->vm_version, *this );
} catch( const wasm_exit& ) {}
}
if( !privileged && control.is_builtin_activated( builtin_protocol_feature_t::ram_restrictions ) ) {
const size_t checktime_interval = 10;
size_t counter = 0;
bool not_in_notify_context = (receiver == act->account);
const auto end = _account_ram_deltas.end();
for( auto itr = _account_ram_deltas.begin(); itr != end; ++itr, ++counter ) {
if( counter == checktime_interval ) {
trx_context.checktime();
counter = 0;
}
if( itr->delta > 0 && itr->account != receiver ) {
EOS_ASSERT( not_in_notify_context, unauthorized_ram_usage_increase,
"unprivileged contract cannot increase RAM usage of another account within a notify context: ${account}",
("account", itr->account)
);
EOS_ASSERT( has_authorization( itr->account ), unauthorized_ram_usage_increase,
"unprivileged contract cannot increase RAM usage of another account that has not authorized the action: ${account}",
("account", itr->account)
);
}
}
}
}
@@ -180,7 +182,7 @@ void apply_context::exec_one()
print_debug(receiver, trace);
}
if (auto dm_logger = control.get_deep_mind_logger())
if (auto dm_logger = control.get_deep_mind_logger(trx_context.is_transient()))
{
dm_logger->on_end_action();
}
@@ -287,7 +289,7 @@ void apply_context::require_recipient( account_name recipient ) {
schedule_action( action_ordinal, recipient, false )
);
if (auto dm_logger = control.get_deep_mind_logger()) {
if (auto dm_logger = control.get_deep_mind_logger(trx_context.is_transient())) {
dm_logger->on_require_recipient();
}
}
@@ -314,12 +316,12 @@ void apply_context::execute_inline( action&& a ) {
EOS_ASSERT( code != nullptr, action_validate_exception,
"inline action's code account ${account} does not exist", ("account", a.account) );
bool enforce_actor_whitelist_blacklist = trx_context.enforce_whiteblacklist && control.is_producing_block();
bool enforce_actor_whitelist_blacklist = trx_context.enforce_whiteblacklist && control.is_speculative_block();
flat_set<account_name> actors;
bool disallow_send_to_self_bypass = control.is_builtin_activated( builtin_protocol_feature_t::restrict_action_to_self );
bool send_to_self = (a.account == receiver);
bool inherit_parent_authorizations = (!disallow_send_to_self_bypass && send_to_self && (receiver == act->account) && control.is_producing_block());
bool inherit_parent_authorizations = (!disallow_send_to_self_bypass && send_to_self && (receiver == act->account) && control.is_speculative_block());
flat_set<permission_level> inherited_authorizations;
if( inherit_parent_authorizations ) {
@@ -345,14 +347,14 @@ void apply_context::execute_inline( action&& a ) {
control.check_actor_list( actors );
}
if( !privileged && control.is_producing_block() ) {
if( !privileged && control.is_speculative_block() ) {
const auto& chain_config = control.get_global_properties().configuration;
EOS_ASSERT( a.data.size() < std::min(chain_config.max_inline_action_size, control.get_max_nonprivileged_inline_action_size()),
inline_action_too_big_nonprivileged,
"inline action too big for nonprivileged account ${account}", ("account", a.account));
}
// No need to check authorization if replaying irreversible blocks or contract is privileged
if( !control.skip_auth_check() && !privileged ) {
if( !control.skip_auth_check() && !privileged && !trx_context.is_read_only() ) {
try {
control.get_authorization_manager()
.check_authorization( {a},
@@ -361,7 +363,7 @@ void apply_context::execute_inline( action&& a ) {
control.pending_block_time() - trx_context.published,
std::bind(&transaction_context::checktime, &this->trx_context),
false,
trx_context.is_read_only,
trx_context.is_dry_run(), // check_but_dont_fail
inherited_authorizations
);
@@ -371,7 +373,7 @@ void apply_context::execute_inline( action&& a ) {
} catch( const fc::exception& e ) {
if( disallow_send_to_self_bypass || !send_to_self ) {
throw;
} else if( control.is_producing_block() ) {
} else if( control.is_speculative_block() ) {
subjective_block_production_exception new_exception(FC_LOG_MESSAGE( error, "Authorization failure with inline action sent to self"));
for (const auto& log: e.get_log()) {
new_exception.append_log(log);
@@ -381,7 +383,7 @@ void apply_context::execute_inline( action&& a ) {
} catch( ... ) {
if( disallow_send_to_self_bypass || !send_to_self ) {
throw;
} else if( control.is_producing_block() ) {
} else if( control.is_speculative_block() ) {
EOS_THROW(subjective_block_production_exception, "Unexpected exception occurred validating inline action sent to self");
}
}
@@ -392,7 +394,7 @@ void apply_context::execute_inline( action&& a ) {
schedule_action( std::move(a), inline_receiver, false )
);
if (auto dm_logger = control.get_deep_mind_logger()) {
if (auto dm_logger = control.get_deep_mind_logger(trx_context.is_transient())) {
dm_logger->on_send_inline();
}
}
@@ -405,7 +407,7 @@ void apply_context::execute_context_free_inline( action&& a ) {
EOS_ASSERT( a.authorization.size() == 0, action_validate_exception,
"context-free actions cannot have authorizations" );
if( !privileged && control.is_producing_block() ) {
if( !privileged && control.is_speculative_block() ) {
const auto& chain_config = control.get_global_properties().configuration;
EOS_ASSERT( a.data.size() < std::min(chain_config.max_inline_action_size, control.get_max_nonprivileged_inline_action_size()),
inline_action_too_big_nonprivileged,
@@ -417,16 +419,17 @@ void apply_context::execute_context_free_inline( action&& a ) {
schedule_action( std::move(a), inline_receiver, true )
);
if (auto dm_logger = control.get_deep_mind_logger()) {
if (auto dm_logger = control.get_deep_mind_logger(trx_context.is_transient())) {
dm_logger->on_send_context_free_inline();
}
}
void apply_context::schedule_deferred_transaction( const uint128_t& sender_id, account_name payer, transaction&& trx, bool replace_existing ) {
EOS_ASSERT( !trx_context.is_read_only(), transaction_exception, "cannot schedule a deferred transaction from within a readonly transaction" );
EOS_ASSERT( trx.context_free_actions.size() == 0, cfa_inside_generated_tx, "context free actions are not currently allowed in generated transactions" );
bool enforce_actor_whitelist_blacklist = trx_context.enforce_whiteblacklist && control.is_producing_block()
bool enforce_actor_whitelist_blacklist = trx_context.enforce_whiteblacklist && control.is_speculative_block()
&& !control.sender_avoids_whitelist_blacklist_enforcement( receiver );
trx_context.validate_referenced_accounts( trx, enforce_actor_whitelist_blacklist );
@@ -528,7 +531,7 @@ void apply_context::schedule_deferred_transaction( const uint128_t& sender_id, a
} catch( const fc::exception& e ) {
if( disallow_send_to_self_bypass || !is_sending_only_to_self(receiver) ) {
throw;
} else if( control.is_producing_block() ) {
} else if( control.is_speculative_block() ) {
subjective_block_production_exception new_exception(FC_LOG_MESSAGE( error, "Authorization failure with sent deferred transaction consisting only of actions to self"));
for (const auto& log: e.get_log()) {
new_exception.append_log(log);
@@ -538,7 +541,7 @@ void apply_context::schedule_deferred_transaction( const uint128_t& sender_id, a
} catch( ... ) {
if( disallow_send_to_self_bypass || !is_sending_only_to_self(receiver) ) {
throw;
} else if( control.is_producing_block() ) {
} else if( control.is_speculative_block() ) {
EOS_THROW(subjective_block_production_exception, "Unexpected exception occurred validating sent deferred transaction consisting only of actions to self");
}
}
@@ -550,12 +553,12 @@ void apply_context::schedule_deferred_transaction( const uint128_t& sender_id, a
bool replace_deferred_activated = control.is_builtin_activated(builtin_protocol_feature_t::replace_deferred);
EOS_ASSERT( replace_deferred_activated || !control.is_producing_block()
EOS_ASSERT( replace_deferred_activated || !control.is_speculative_block()
|| control.all_subjective_mitigations_disabled(),
subjective_block_production_exception,
"Replacing a deferred transaction is temporarily disabled." );
if (auto dm_logger = control.get_deep_mind_logger()) {
if (auto dm_logger = control.get_deep_mind_logger(trx_context.is_transient())) {
dm_logger->on_ram_trace(RAM_EVENT_ID("${id}", ("id", ptr->id)), "deferred_trx", "cancel", "deferred_trx_cancel");
}
@@ -573,7 +576,7 @@ void apply_context::schedule_deferred_transaction( const uint128_t& sender_id, a
trx_id_for_new_obj = ptr->trx_id;
}
if (auto dm_logger = control.get_deep_mind_logger()) {
if (auto dm_logger = control.get_deep_mind_logger(trx_context.is_transient())) {
dm_logger->on_cancel_deferred(deep_mind_handler::operation_qualifier::modify, *ptr);
}
@@ -590,7 +593,7 @@ void apply_context::schedule_deferred_transaction( const uint128_t& sender_id, a
trx_size = gtx.set( trx );
if (auto dm_logger = control.get_deep_mind_logger()) {
if (auto dm_logger = control.get_deep_mind_logger(trx_context.is_transient())) {
dm_logger->on_send_deferred(deep_mind_handler::operation_qualifier::modify, gtx);
dm_logger->on_ram_trace(RAM_EVENT_ID("${id}", ("id", gtx.id)), "deferred_trx", "update", "deferred_trx_add");
}
@@ -607,7 +610,7 @@ void apply_context::schedule_deferred_transaction( const uint128_t& sender_id, a
trx_size = gtx.set( trx );
if (auto dm_logger = control.get_deep_mind_logger()) {
if (auto dm_logger = control.get_deep_mind_logger(trx_context.is_transient())) {
dm_logger->on_send_deferred(deep_mind_handler::operation_qualifier::none, gtx);
dm_logger->on_ram_trace(RAM_EVENT_ID("${id}", ("id", gtx.id)), "deferred_trx", "add", "deferred_trx_add");
}
@@ -624,10 +627,11 @@ void apply_context::schedule_deferred_transaction( const uint128_t& sender_id, a
}
bool apply_context::cancel_deferred_transaction( const uint128_t& sender_id, account_name sender ) {
EOS_ASSERT( !trx_context.is_read_only(), transaction_exception, "cannot cancel a deferred transaction from within a readonly transaction" );
auto& generated_transaction_idx = db.get_mutable_index<generated_transaction_multi_index>();
const auto* gto = db.find<generated_transaction_object,by_sender_id>(boost::make_tuple(sender, sender_id));
if ( gto ) {
if (auto dm_logger = control.get_deep_mind_logger()) {
if (auto dm_logger = control.get_deep_mind_logger(trx_context.is_transient())) {
dm_logger->on_cancel_deferred(deep_mind_handler::operation_qualifier::none, *gto);
dm_logger->on_ram_trace(RAM_EVENT_ID("${id}", ("id", gto->id)), "deferred_trx", "cancel", "deferred_trx_cancel");
}
@@ -668,7 +672,7 @@ const table_id_object& apply_context::find_or_create_table( name code, name scop
return *existing_tid;
}
if (auto dm_logger = control.get_deep_mind_logger()) {
if (auto dm_logger = control.get_deep_mind_logger(trx_context.is_transient())) {
std::string event_id = RAM_EVENT_ID("${code}:${scope}:${table}",
("code", code)
("scope", scope)
@@ -685,14 +689,14 @@ const table_id_object& apply_context::find_or_create_table( name code, name scop
t_id.table = table;
t_id.payer = payer;
if (auto dm_logger = control.get_deep_mind_logger()) {
if (auto dm_logger = control.get_deep_mind_logger(trx_context.is_transient())) {
dm_logger->on_create_table(t_id);
}
});
}
void apply_context::remove_table( const table_id_object& tid ) {
if (auto dm_logger = control.get_deep_mind_logger()) {
if (auto dm_logger = control.get_deep_mind_logger(trx_context.is_transient())) {
std::string event_id = RAM_EVENT_ID("${code}:${scope}:${table}",
("code", tid.code)
("scope", tid.scope)
@@ -703,7 +707,7 @@ void apply_context::remove_table( const table_id_object& tid ) {
update_db_usage(tid.payer, - config::billable_size_v<table_id_object>);
if (auto dm_logger = control.get_deep_mind_logger()) {
if (auto dm_logger = control.get_deep_mind_logger(trx_context.is_transient())) {
dm_logger->on_remove_table(tid);
}
@@ -776,11 +780,13 @@ int apply_context::get_context_free_data( uint32_t index, char* buffer, size_t b
}
int apply_context::db_store_i64( name scope, name table, const account_name& payer, uint64_t id, const char* buffer, size_t buffer_size ) {
EOS_ASSERT( !trx_context.is_read_only(), table_operation_not_permitted, "cannot store a db record when executing a readonly transaction" );
return db_store_i64( receiver, scope, table, payer, id, buffer, buffer_size);
}
int apply_context::db_store_i64( name code, name scope, name table, const account_name& payer, uint64_t id, const char* buffer, size_t buffer_size ) {
// require_write_lock( scope );
EOS_ASSERT( !trx_context.is_read_only(), table_operation_not_permitted, "cannot store a db record when executing a readonly transaction" );
const auto& tab = find_or_create_table( code, scope, table, payer );
auto tableid = tab.id;
@@ -799,7 +805,7 @@ int apply_context::db_store_i64( name code, name scope, name table, const accoun
int64_t billable_size = (int64_t)(buffer_size + config::billable_size_v<key_value_object>);
if (auto dm_logger = control.get_deep_mind_logger()) {
if (auto dm_logger = control.get_deep_mind_logger(trx_context.is_transient())) {
std::string event_id = RAM_EVENT_ID("${table_code}:${scope}:${table_name}:${primkey}",
("table_code", tab.code)
("scope", tab.scope)
@@ -811,7 +817,7 @@ int apply_context::db_store_i64( name code, name scope, name table, const accoun
update_db_usage( payer, billable_size);
if (auto dm_logger = control.get_deep_mind_logger()) {
if (auto dm_logger = control.get_deep_mind_logger(trx_context.is_transient())) {
dm_logger->on_db_store_i64(tab, obj);
}
@@ -820,6 +826,7 @@ int apply_context::db_store_i64( name code, name scope, name table, const accoun
}
void apply_context::db_update_i64( int iterator, account_name payer, const char* buffer, size_t buffer_size ) {
EOS_ASSERT( !trx_context.is_read_only(), table_operation_not_permitted, "cannot update a db record when executing a readonly transaction" );
const key_value_object& obj = keyval_cache.get( iterator );
const auto& table_obj = keyval_cache.get_table( obj.t_id );
@@ -834,7 +841,7 @@ void apply_context::db_update_i64( int iterator, account_name payer, const char*
if( payer == account_name() ) payer = obj.payer;
std::string event_id;
if (control.get_deep_mind_logger() != nullptr) {
if (control.get_deep_mind_logger(trx_context.is_transient()) != nullptr) {
event_id = RAM_EVENT_ID("${table_code}:${scope}:${table_name}:${primkey}",
("table_code", table_obj.code)
("scope", table_obj.scope)
@@ -845,27 +852,27 @@ void apply_context::db_update_i64( int iterator, account_name payer, const char*
if( account_name(obj.payer) != payer ) {
// refund the existing payer
if (auto dm_logger = control.get_deep_mind_logger())
if (auto dm_logger = control.get_deep_mind_logger(trx_context.is_transient()))
{
dm_logger->on_ram_trace(std::string(event_id), "table_row", "remove", "primary_index_update_remove_old_payer");
}
update_db_usage( obj.payer, -(old_size) );
// charge the new payer
if (auto dm_logger = control.get_deep_mind_logger())
if (auto dm_logger = control.get_deep_mind_logger(trx_context.is_transient()))
{
dm_logger->on_ram_trace(std::move(event_id), "table_row", "add", "primary_index_update_add_new_payer");
}
update_db_usage( payer, (new_size));
} else if(old_size != new_size) {
// charge/refund the existing payer the difference
if (auto dm_logger = control.get_deep_mind_logger())
if (auto dm_logger = control.get_deep_mind_logger(trx_context.is_transient()))
{
dm_logger->on_ram_trace(std::move(event_id) , "table_row", "update", "primary_index_update");
}
update_db_usage( obj.payer, new_size - old_size);
}
if (auto dm_logger = control.get_deep_mind_logger()) {
if (auto dm_logger = control.get_deep_mind_logger(trx_context.is_transient())) {
dm_logger->on_db_update_i64(table_obj, obj, payer, buffer, buffer_size);
}
@@ -876,6 +883,7 @@ void apply_context::db_update_i64( int iterator, account_name payer, const char*
}
void apply_context::db_remove_i64( int iterator ) {
EOS_ASSERT( !trx_context.is_read_only(), table_operation_not_permitted, "cannot remove a db record when executing a readonly transaction" );
const key_value_object& obj = keyval_cache.get( iterator );
const auto& table_obj = keyval_cache.get_table( obj.t_id );
@@ -883,7 +891,7 @@ void apply_context::db_remove_i64( int iterator ) {
// require_write_lock( table_obj.scope );
if (auto dm_logger = control.get_deep_mind_logger()) {
if (auto dm_logger = control.get_deep_mind_logger(trx_context.is_transient())) {
std::string event_id = RAM_EVENT_ID("${table_code}:${scope}:${table_name}:${primkey}",
("table_code", table_obj.code)
("scope", table_obj.scope)
@@ -895,7 +903,7 @@ void apply_context::db_remove_i64( int iterator ) {
update_db_usage( obj.payer, -(obj.value.size() + config::billable_size_v<key_value_object>) );
if (auto dm_logger = control.get_deep_mind_logger()) {
if (auto dm_logger = control.get_deep_mind_logger(trx_context.is_transient())) {
dm_logger->on_db_remove_i64(table_obj, obj);
}
@@ -1027,17 +1035,27 @@ int apply_context::db_end_i64( name code, name scope, name table ) {
uint64_t apply_context::next_global_sequence() {
const auto& p = control.get_dynamic_global_properties();
db.modify( p, [&]( auto& dgp ) {
++dgp.global_action_sequence;
});
return p.global_action_sequence;
if ( trx_context.is_read_only() ) {
// To avoid confusion of duplicated global sequence number, hard code to be 0.
return 0;
} else {
db.modify( p, [&]( auto& dgp ) {
++dgp.global_action_sequence;
});
return p.global_action_sequence;
}
}
uint64_t apply_context::next_recv_sequence( const account_metadata_object& receiver_account ) {
db.modify( receiver_account, [&]( auto& ra ) {
++ra.recv_sequence;
});
return receiver_account.recv_sequence;
if ( trx_context.is_read_only() ) {
// To avoid confusion of duplicated receive sequence number, hard code to be 0.
return 0;
} else {
db.modify( receiver_account, [&]( auto& ra ) {
++ra.recv_sequence;
});
return receiver_account.recv_sequence;
}
}
uint64_t apply_context::next_auth_sequence( account_name actor ) {
const auto& amo = db.get<account_metadata_object,by_name>( actor );
+9 -7
View File
@@ -134,6 +134,7 @@ namespace eosio { namespace chain {
permission_name name,
permission_id_type parent,
const authority& auth,
bool is_trx_transient,
time_point initial_creation_time
)
{
@@ -158,7 +159,7 @@ namespace eosio { namespace chain {
p.last_updated = creation_time;
p.auth = auth;
if (auto dm_logger = _control.get_deep_mind_logger()) {
if (auto dm_logger = _control.get_deep_mind_logger(is_trx_transient)) {
dm_logger->on_create_permission(p);
}
});
@@ -169,6 +170,7 @@ namespace eosio { namespace chain {
permission_name name,
permission_id_type parent,
authority&& auth,
bool is_trx_transient,
time_point initial_creation_time
)
{
@@ -193,20 +195,20 @@ namespace eosio { namespace chain {
p.last_updated = creation_time;
p.auth = std::move(auth);
if (auto dm_logger = _control.get_deep_mind_logger()) {
if (auto dm_logger = _control.get_deep_mind_logger(is_trx_transient)) {
dm_logger->on_create_permission(p);
}
});
return perm;
}
void authorization_manager::modify_permission( const permission_object& permission, const authority& auth ) {
void authorization_manager::modify_permission( const permission_object& permission, const authority& auth, bool is_trx_transient ) {
for(const key_weight& k: auth.keys)
EOS_ASSERT(k.key.which() < _db.get<protocol_state_object>().num_supported_key_types, unactivated_key_type,
"Unactivated key type used when modifying permission");
_db.modify( permission, [&](permission_object& po) {
auto dm_logger = _control.get_deep_mind_logger();
auto dm_logger = _control.get_deep_mind_logger(is_trx_transient);
std::optional<permission_object> old_permission;
if (dm_logger) {
@@ -216,13 +218,13 @@ namespace eosio { namespace chain {
po.auth = auth;
po.last_updated = _control.pending_block_time();
if (auto dm_logger = _control.get_deep_mind_logger()) {
if (auto dm_logger = _control.get_deep_mind_logger(is_trx_transient)) {
dm_logger->on_modify_permission(*old_permission, po);
}
});
}
void authorization_manager::remove_permission( const permission_object& permission ) {
void authorization_manager::remove_permission( const permission_object& permission, bool is_trx_transient ) {
const auto& index = _db.template get_index<permission_index, by_parent>();
auto range = index.equal_range(permission.id);
EOS_ASSERT( range.first == range.second, action_validate_exception,
@@ -230,7 +232,7 @@ namespace eosio { namespace chain {
_db.get_mutable_index<permission_usage_index>().remove_object( permission.usage_id._id );
if (auto dm_logger = _control.get_deep_mind_logger()) {
if (auto dm_logger = _control.get_deep_mind_logger(is_trx_transient)) {
dm_logger->on_remove_permission(permission);
}
+1508 -1266
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -88,7 +88,7 @@ namespace eosio { namespace chain {
block_state::block_state( pending_block_header_state&& cur,
signed_block_ptr&& b,
vector<transaction_metadata_ptr>&& trx_metas,
deque<transaction_metadata_ptr>&& trx_metas,
const protocol_feature_set& pfs,
const std::function<void( block_timestamp_type,
const flat_set<digest_type>&,
File diff suppressed because it is too large Load Diff
+1
View File
@@ -42,6 +42,7 @@ namespace eosio::chain {
case deep_mind_handler::operation_qualifier::none: return "";
case deep_mind_handler::operation_qualifier::modify: return "MODIFY_";
case deep_mind_handler::operation_qualifier::push: return "PUSH_";
default: elog("Unknown operation_qualifier"); return "";
}
}
+26 -15
View File
@@ -54,7 +54,7 @@ void validate_authority_precondition( const apply_context& context, const author
}
}
if( context.trx_context.enforce_whiteblacklist && context.control.is_producing_block() ) {
if( context.trx_context.enforce_whiteblacklist && context.control.is_speculative_block() ) {
for( const auto& p : auth.keys ) {
context.control.check_key_list( p.key );
}
@@ -65,6 +65,7 @@ void validate_authority_precondition( const apply_context& context, const author
* This method is called assuming precondition_system_newaccount succeeds a
*/
void apply_eosio_newaccount(apply_context& context) {
EOS_ASSERT( !context.trx_context.is_read_only(), action_validate_exception, "newaccount not allowed in read-only transaction" );
auto create = context.get_action().data_as<newaccount>();
try {
context.require_authorization(create.creator);
@@ -107,18 +108,18 @@ void apply_eosio_newaccount(apply_context& context) {
}
const auto& owner_permission = authorization.create_permission( create.name, config::owner_name, 0,
std::move(create.owner) );
std::move(create.owner), context.trx_context.is_transient() );
const auto& active_permission = authorization.create_permission( create.name, config::active_name, owner_permission.id,
std::move(create.active) );
std::move(create.active), context.trx_context.is_transient() );
context.control.get_mutable_resource_limits_manager().initialize_account(create.name);
context.control.get_mutable_resource_limits_manager().initialize_account(create.name, context.trx_context.is_transient());
int64_t ram_delta = config::overhead_per_account_ram_bytes;
ram_delta += 2*config::billable_size_v<permission_object>;
ram_delta += owner_permission.auth.get_billable_size();
ram_delta += active_permission.auth.get_billable_size();
if (auto dm_logger = context.control.get_deep_mind_logger()) {
if (auto dm_logger = context.control.get_deep_mind_logger(context.trx_context.is_transient())) {
dm_logger->on_ram_trace(RAM_EVENT_ID("${name}", ("name", create.name)), "account", "add", "newaccount");
}
@@ -127,6 +128,7 @@ void apply_eosio_newaccount(apply_context& context) {
} FC_CAPTURE_AND_RETHROW( (create) ) }
void apply_eosio_setcode(apply_context& context) {
EOS_ASSERT( !context.trx_context.is_read_only(), action_validate_exception, "setcode not allowed in read-only transaction" );
auto& db = context.db;
auto act = context.get_action().data_as<setcode>();
context.require_authorization(act.account);
@@ -194,7 +196,7 @@ void apply_eosio_setcode(apply_context& context) {
});
if (new_size != old_size) {
if (auto dm_logger = context.control.get_deep_mind_logger()) {
if (auto dm_logger = context.control.get_deep_mind_logger(context.trx_context.is_transient())) {
const char* operation = "update";
if (old_size <= 0) {
operation = "add";
@@ -210,6 +212,7 @@ void apply_eosio_setcode(apply_context& context) {
}
void apply_eosio_setabi(apply_context& context) {
EOS_ASSERT( !context.trx_context.is_read_only(), action_validate_exception, "setabi ot allowed in read-only transaction" );
auto& db = context.db;
auto act = context.get_action().data_as<setabi>();
@@ -232,7 +235,7 @@ void apply_eosio_setabi(apply_context& context) {
});
if (new_size != old_size) {
if (auto dm_logger = context.control.get_deep_mind_logger()) {
if (auto dm_logger = context.control.get_deep_mind_logger(context.trx_context.is_transient())) {
const char* operation = "update";
if (old_size <= 0) {
operation = "add";
@@ -248,6 +251,7 @@ void apply_eosio_setabi(apply_context& context) {
}
void apply_eosio_updateauth(apply_context& context) {
EOS_ASSERT( !context.trx_context.is_read_only(), action_validate_exception, "updateauth not allowed in read-only transaction" );
auto update = context.get_action().data_as<updateauth>();
context.require_authorization(update.account); // only here to mark the single authority on this action as used
@@ -297,21 +301,21 @@ void apply_eosio_updateauth(apply_context& context) {
int64_t old_size = (int64_t)(config::billable_size_v<permission_object> + permission->auth.get_billable_size());
authorization.modify_permission( *permission, update.auth );
authorization.modify_permission( *permission, update.auth, context.trx_context.is_transient() );
int64_t new_size = (int64_t)(config::billable_size_v<permission_object> + permission->auth.get_billable_size());
if (auto dm_logger = context.control.get_deep_mind_logger()) {
if (auto dm_logger = context.control.get_deep_mind_logger(context.trx_context.is_transient())) {
dm_logger->on_ram_trace(RAM_EVENT_ID("${id}", ("id", permission->id)), "auth", "update", "updateauth_update");
}
context.add_ram_usage( permission->owner, new_size - old_size );
} else {
const auto& p = authorization.create_permission( update.account, update.permission, parent_id, update.auth );
const auto& p = authorization.create_permission( update.account, update.permission, parent_id, update.auth, context.trx_context.is_transient() );
int64_t new_size = (int64_t)(config::billable_size_v<permission_object> + p.auth.get_billable_size());
if (auto dm_logger = context.control.get_deep_mind_logger()) {
if (auto dm_logger = context.control.get_deep_mind_logger(context.trx_context.is_transient())) {
dm_logger->on_ram_trace(RAM_EVENT_ID("${id}", ("id", p.id)), "auth", "add", "updateauth_create");
}
@@ -322,6 +326,8 @@ void apply_eosio_updateauth(apply_context& context) {
void apply_eosio_deleteauth(apply_context& context) {
// context.require_write_lock( config::eosio_auth_scope );
EOS_ASSERT( !context.trx_context.is_read_only(), action_validate_exception, "deleteauth not allowed in read-only transaction" );
auto remove = context.get_action().data_as<deleteauth>();
context.require_authorization(remove.account); // only here to mark the single authority on this action as used
@@ -344,11 +350,11 @@ void apply_eosio_deleteauth(apply_context& context) {
const auto& permission = authorization.get_permission({remove.account, remove.permission});
int64_t old_size = config::billable_size_v<permission_object> + permission.auth.get_billable_size();
if (auto dm_logger = context.control.get_deep_mind_logger()) {
if (auto dm_logger = context.control.get_deep_mind_logger(context.trx_context.is_transient())) {
dm_logger->on_ram_trace(RAM_EVENT_ID("${id}", ("id", permission.id)), "auth", "remove", "deleteauth");
}
authorization.remove_permission( permission );
authorization.remove_permission( permission, context.trx_context.is_transient() );
context.add_ram_usage( remove.account, -old_size );
@@ -357,6 +363,8 @@ void apply_eosio_deleteauth(apply_context& context) {
void apply_eosio_linkauth(apply_context& context) {
// context.require_write_lock( config::eosio_auth_scope );
EOS_ASSERT( !context.trx_context.is_read_only(), action_validate_exception, "linkauth not allowed in read-only transaction" );
auto requirement = context.get_action().data_as<linkauth>();
try {
EOS_ASSERT(!requirement.requirement.empty(), action_validate_exception, "Required permission cannot be empty");
@@ -401,7 +409,7 @@ void apply_eosio_linkauth(apply_context& context) {
link.required_permission = requirement.requirement;
});
if (auto dm_logger = context.control.get_deep_mind_logger()) {
if (auto dm_logger = context.control.get_deep_mind_logger(context.trx_context.is_transient())) {
dm_logger->on_ram_trace(RAM_EVENT_ID("${id}", ("id", l.id)), "auth_link", "add", "linkauth");
}
@@ -417,6 +425,8 @@ void apply_eosio_linkauth(apply_context& context) {
void apply_eosio_unlinkauth(apply_context& context) {
// context.require_write_lock( config::eosio_auth_scope );
EOS_ASSERT( !context.trx_context.is_read_only(), action_validate_exception, "unlinkauth not allowed in read-only transaction" );
auto& db = context.db;
auto unlink = context.get_action().data_as<unlinkauth>();
@@ -426,7 +436,7 @@ void apply_eosio_unlinkauth(apply_context& context) {
auto link = db.find<permission_link_object, by_action_name>(link_key);
EOS_ASSERT(link != nullptr, action_validate_exception, "Attempting to unlink authority, but no link found");
if (auto dm_logger = context.control.get_deep_mind_logger()) {
if (auto dm_logger = context.control.get_deep_mind_logger(context.trx_context.is_transient())) {
dm_logger->on_ram_trace(RAM_EVENT_ID("${id}", ("id", link->id)), "auth_link", "remove", "unlinkauth");
}
@@ -439,6 +449,7 @@ void apply_eosio_unlinkauth(apply_context& context) {
}
void apply_eosio_canceldelay(apply_context& context) {
EOS_ASSERT( !context.trx_context.is_read_only(), action_validate_exception, "canceldelay not allowed in read-only transaction" );
auto cancel = context.get_action().data_as<canceldelay>();
context.require_authorization(cancel.canceling_auth.actor); // only here to mark the single authority on this action as used
@@ -35,16 +35,17 @@ struct abi_serializer {
using yield_function_t = fc::optional_delegate<void(size_t)>;
abi_serializer(){ configure_built_in_types(); }
abi_serializer( const abi_def& abi, const yield_function_t& yield );
abi_serializer( abi_def abi, const yield_function_t& yield );
[[deprecated("use the overload with yield_function_t[=create_yield_function(max_serialization_time)]")]]
abi_serializer( const abi_def& abi, const fc::microseconds& max_serialization_time );
void set_abi( const abi_def& abi, const yield_function_t& yield );
void set_abi( abi_def abi, const yield_function_t& yield );
[[deprecated("use the overload with yield_function_t[=create_yield_function(max_serialization_time)]")]]
void set_abi(const abi_def& abi, const fc::microseconds& max_serialization_time);
/// @return string_view of `t` or internal string type
std::string_view resolve_type(const std::string_view& t)const;
bool is_array(const std::string_view& type)const;
bool is_szarray(const std::string_view& type)const;
bool is_optional(const std::string_view& type)const;
bool is_type( const std::string_view& type, const yield_function_t& yield )const;
[[deprecated("use the overload with yield_function_t[=create_yield_function(max_serialization_time)]")]]
@@ -366,6 +367,23 @@ namespace impl {
mvo(name, std::move(array));
}
/**
* template which overloads add for deques of types which contain ABI information in their trees
* for these members we call ::add in order to trigger further processing
*/
template<typename M, typename Resolver, require_abi_t<M> = 1>
static void add( mutable_variant_object &mvo, const char* name, const deque<M>& v, Resolver resolver, abi_traverse_context& ctx )
{
auto h = ctx.enter_scope();
deque<fc::variant> array;
for (const auto& iter: v) {
mutable_variant_object elem_mvo;
add(elem_mvo, "_", iter, resolver, ctx);
array.emplace_back(std::move(elem_mvo["_"]));
}
mvo(name, std::move(array));
}
/**
* template which overloads add for shared_ptr of types which contain ABI information in their trees
* for these members we call ::add in order to trigger further processing
@@ -475,7 +493,6 @@ namespace impl {
binary_to_variant_context _ctx(*abi, ctx, type);
_ctx.short_path = true; // Just to be safe while avoiding the complexity of threading an override boolean all over the place
mvo( "data", abi->_binary_to_variant( type, act.data, _ctx ));
set_hex_data(mvo, "hex_data", act.data);
} catch(...) {
// any failure to serialize data, then leave as not serailzed
set_hex_data(mvo, "data", act.data);
@@ -489,6 +506,7 @@ namespace impl {
} catch(...) {
set_hex_data(mvo, "data", act.data);
}
set_hex_data(mvo, "hex_data", act.data);
out(name, std::move(mvo));
}
@@ -730,6 +748,24 @@ namespace impl {
}
}
/**
* template which overloads extract for deque of types which contain ABI information in their trees
* for these members we call ::extract in order to trigger further processing
*/
template<typename M, typename Resolver, require_abi_t<M> = 1>
static void extract( const fc::variant& v, deque<M>& o, Resolver resolver, abi_traverse_context& ctx )
{
auto h = ctx.enter_scope();
const variants& array = v.get_array();
o.clear();
for( auto itr = array.begin(); itr != array.end(); ++itr ) {
M o_iter;
extract(*itr, o_iter, resolver, ctx);
o.emplace_back(std::move(o_iter));
}
}
/**
* template which overloads extract for shared_ptr of types which contain ABI information in their trees
* for these members we call ::extract in order to trigger further processing
@@ -1,6 +1,7 @@
#pragma once
#include <eosio/chain/controller.hpp>
#include <eosio/chain/transaction.hpp>
#include <eosio/chain/transaction_context.hpp>
#include <eosio/chain/contract_table_objects.hpp>
#include <eosio/chain/deep_mind.hpp>
#include <fc/utility.hpp>
@@ -13,7 +14,6 @@ namespace chainbase { class database; }
namespace eosio { namespace chain {
class controller;
class transaction_context;
class apply_context {
private:
@@ -177,6 +177,7 @@ class apply_context {
int store( uint64_t scope, uint64_t table, const account_name& payer,
uint64_t id, secondary_key_proxy_const_type value )
{
EOS_ASSERT( !context.trx_context.is_read_only(), table_operation_not_permitted, "cannot store a db record when executing a readonly transaction" );
EOS_ASSERT( payer != account_name(), invalid_table_payer, "must specify a valid account to pay for new record" );
// context.require_write_lock( scope );
@@ -193,7 +194,7 @@ class apply_context {
context.db.modify( tab, [&]( auto& t ) {
++t.count;
if (auto dm_logger = context.control.get_deep_mind_logger()) {
if (auto dm_logger = context.control.get_deep_mind_logger(context.trx_context.is_transient())) {
std::string event_id = RAM_EVENT_ID("${code}:${scope}:${table}:${index_name}",
("code", t.code)
("scope", t.scope)
@@ -211,12 +212,13 @@ class apply_context {
}
void remove( int iterator ) {
EOS_ASSERT( !context.trx_context.is_read_only(), table_operation_not_permitted, "cannot remove a db record when executing a readonly transaction" );
const auto& obj = itr_cache.get( iterator );
const auto& table_obj = itr_cache.get_table( obj.t_id );
EOS_ASSERT( table_obj.code == context.receiver, table_access_violation, "db access violation" );
if (auto dm_logger = context.control.get_deep_mind_logger()) {
if (auto dm_logger = context.control.get_deep_mind_logger(context.trx_context.is_transient())) {
std::string event_id = RAM_EVENT_ID("${code}:${scope}:${table}:${index_name}",
("code", table_obj.code)
("scope", table_obj.scope)
@@ -243,6 +245,7 @@ class apply_context {
}
void update( int iterator, account_name payer, secondary_key_proxy_const_type secondary ) {
EOS_ASSERT( !context.trx_context.is_read_only(), table_operation_not_permitted, "cannot update a db record when executing a readonly transaction" );
const auto& obj = itr_cache.get( iterator );
const auto& table_obj = itr_cache.get_table( obj.t_id );
@@ -255,7 +258,7 @@ class apply_context {
int64_t billing_size = config::billable_size_v<ObjectType>;
std::string event_id;
if (context.control.get_deep_mind_logger() != nullptr) {
if (context.control.get_deep_mind_logger(context.trx_context.is_transient()) != nullptr) {
event_id = RAM_EVENT_ID("${code}:${scope}:${table}:${index_name}",
("code", table_obj.code)
("scope", table_obj.scope)
@@ -265,12 +268,12 @@ class apply_context {
}
if( obj.payer != payer ) {
if (auto dm_logger = context.control.get_deep_mind_logger())
if (auto dm_logger = context.control.get_deep_mind_logger(context.trx_context.is_transient()))
{
dm_logger->on_ram_trace(std::string(event_id), "secondary_index", "remove", "secondary_index_remove");
}
context.update_db_usage( obj.payer, -(billing_size) );
if (auto dm_logger = context.control.get_deep_mind_logger())
if (auto dm_logger = context.control.get_deep_mind_logger(context.trx_context.is_transient()))
{
dm_logger->on_ram_trace(std::move(event_id), "secondary_index", "add", "secondary_index_update_add_new_payer");
}
@@ -84,6 +84,10 @@ struct permission_level_weight {
friend bool operator == ( const permission_level_weight& lhs, const permission_level_weight& rhs ) {
return tie( lhs.permission, lhs.weight ) == tie( rhs.permission, rhs.weight );
}
friend bool operator < ( const permission_level_weight& lhs, const permission_level_weight& rhs ) {
return tie( lhs.permission, lhs.weight ) < tie( rhs.permission, rhs.weight );
}
};
struct key_weight {
@@ -93,6 +97,10 @@ struct key_weight {
friend bool operator == ( const key_weight& lhs, const key_weight& rhs ) {
return tie( lhs.key, lhs.weight ) == tie( rhs.key, rhs.weight );
}
friend bool operator < ( const key_weight& lhs, const key_weight& rhs ) {
return tie( lhs.key, lhs.weight ) < tie( rhs.key, rhs.weight );
}
};
@@ -137,6 +145,10 @@ struct wait_weight {
friend bool operator == ( const wait_weight& lhs, const wait_weight& rhs ) {
return tie( lhs.wait_sec, lhs.weight ) == tie( rhs.wait_sec, rhs.weight );
}
friend bool operator < ( const wait_weight& lhs, const wait_weight& rhs ) {
return tie( lhs.wait_sec, lhs.weight ) < tie( rhs.wait_sec, rhs.weight );
}
};
namespace config {
@@ -191,6 +203,12 @@ struct authority {
friend bool operator != ( const authority& lhs, const authority& rhs ) {
return tie( lhs.threshold, lhs.keys, lhs.accounts, lhs.waits ) != tie( rhs.threshold, rhs.keys, rhs.accounts, rhs.waits );
}
void sort_fields () {
std::sort(std::begin(keys), std::end(keys));
std::sort(std::begin(accounts), std::end(accounts));
std::sort(std::begin(waits), std::end(waits));
}
};
@@ -31,6 +31,7 @@ namespace eosio { namespace chain {
permission_name name,
permission_id_type parent,
const authority& auth,
bool is_trx_transient,
time_point initial_creation_time = time_point()
);
@@ -38,12 +39,13 @@ namespace eosio { namespace chain {
permission_name name,
permission_id_type parent,
authority&& auth,
bool is_trx_transient,
time_point initial_creation_time = time_point()
);
void modify_permission( const permission_object& permission, const authority& auth );
void modify_permission( const permission_object& permission, const authority& auth, bool is_trx_transient );
void remove_permission( const permission_object& permission );
void remove_permission( const permission_object& permission, bool is_trx_transient );
void update_permission_usage( const permission_object& permission );
@@ -97,7 +97,7 @@ namespace eosio { namespace chain {
signed_block& operator=(signed_block&&) = default;
signed_block clone() const { return *this; }
vector<transaction_receipt> transactions; /// new or generated transactions
deque<transaction_receipt> transactions; /// new or generated transactions
extensions_type block_extensions;
flat_multimap<uint16_t, block_extension> validate_and_extract_extensions()const;
@@ -2,10 +2,11 @@
#include <fc/filesystem.hpp>
#include <eosio/chain/block.hpp>
#include <eosio/chain/genesis_state.hpp>
#include <eosio/chain/block_log_config.hpp>
namespace eosio { namespace chain {
namespace detail { class block_log_impl; }
namespace detail { struct block_log_impl; }
/* The block log is an external append only log of the blocks with a header. Blocks should only
* be written to the log after they irreverisble as the log is append only. The log is a doubly
@@ -34,29 +35,28 @@ namespace eosio { namespace chain {
* An optional "pruned" mode can be activated which stores a 4 byte trailer on the log file indicating
* how many blocks at the end of the log are valid. Any earlier blocks in the log are assumed destroyed
* and unreadable due to reclamation for purposes of saving space.
*
* Object thread-safe. Not safe to have multiple block_log objects to same data_dir.
*/
struct block_log_prune_config {
uint32_t prune_blocks; //number of blocks to prune to when doing a prune
size_t prune_threshold = 4*1024*1024; //(approximately) how many bytes need to be added before a prune is performed
std::optional<size_t> vacuum_on_close; //when set, a vacuum is performed on dtor if log contains less than this many live bytes
};
class block_log {
public:
block_log(const fc::path& data_dir, std::optional<block_log_prune_config> prune_config);
block_log(block_log&& other);
explicit block_log(const fc::path& data_dir, const block_log_config& config = block_log_config{});
block_log(block_log&& other) noexcept;
~block_log();
void append(const signed_block_ptr& b);
void append(const signed_block_ptr& b, const block_id_type& id);
void append(const signed_block_ptr& b, const block_id_type& id, const std::vector<char>& packed_block);
void flush();
void reset( const genesis_state& gs, const signed_block_ptr& genesis_block );
void reset( const chain_id_type& chain_id, uint32_t first_block_num );
signed_block_ptr read_block(uint64_t file_pos)const;
void read_block_header(block_header& bh, uint64_t file_pos)const;
signed_block_ptr read_block_by_num(uint32_t block_num)const;
std::optional<signed_block_header> read_block_header_by_num(uint32_t block_num)const;
block_id_type read_block_id_by_num(uint32_t block_num)const;
signed_block_ptr read_block_by_id(const block_id_type& id)const {
return read_block_by_num(block_header::num_from_id(id));
}
@@ -64,10 +64,11 @@ namespace eosio { namespace chain {
/**
* Return offset of block in file, or block_log::npos if it does not exist.
*/
uint64_t get_block_pos(uint32_t block_num) const;
signed_block_ptr read_head()const;
const signed_block_ptr& head()const;
const block_id_type& head_id()const;
signed_block_ptr read_head()const; //use blocklog
signed_block_ptr head()const;
block_id_type head_id()const;
uint32_t first_block_num() const;
static const uint64_t npos = std::numeric_limits<uint64_t>::max();
@@ -75,6 +76,10 @@ namespace eosio { namespace chain {
static const uint32_t min_supported_version;
static const uint32_t max_supported_version;
/**
* All static methods expected to be called on quiescent block log
*/
static fc::path repair_log( const fc::path& data_dir, uint32_t truncate_at_block = 0, const char* reversible_block_dir_name="" );
static std::optional<genesis_state> extract_genesis_state( const fc::path& data_dir );
@@ -91,36 +96,24 @@ namespace eosio { namespace chain {
static bool is_pruned_log(const fc::path& data_dir);
static void extract_block_range(const fc::path& block_dir, const fc::path&output_dir, block_num_type start, block_num_type end);
static bool trim_blocklog_front(const fc::path& block_dir, const fc::path& temp_dir, uint32_t truncate_at_block);
static int trim_blocklog_end(const fc::path& block_dir, uint32_t n);
// used for unit test to generate older version blocklog
static void set_initial_version(uint32_t);
uint32_t version() const;
uint64_t get_block_pos(uint32_t block_num) const;
/**
* @param n Only test 1 block out of every n blocks. If n is 0, the interval is adjusted so that at most 8 blocks are tested.
*/
static void smoke_test(const fc::path& block_dir, uint32_t n);
static void split_blocklog(const fc::path& block_dir, const fc::path& dest_dir, uint32_t stride);
static void merge_blocklogs(const fc::path& block_dir, const fc::path& dest_dir);
private:
void open(const fc::path& data_dir);
void construct_index();
std::unique_ptr<detail::block_log_impl> my;
};
//to derive blknum_offset==14 see block_header.hpp and note on disk struct is packed
// block_timestamp_type timestamp; //bytes 0:3
// account_name producer; //bytes 4:11
// uint16_t confirmed; //bytes 12:13
// block_id_type previous; //bytes 14:45, low 4 bytes is big endian block number of previous block
struct trim_data { //used by trim_blocklog_front(), trim_blocklog_end(), and smoke_test()
trim_data(fc::path block_dir);
~trim_data();
uint64_t block_index(uint32_t n) const;
uint64_t block_pos(uint32_t n);
fc::path block_file_name, index_file_name; //full pathname for blocks.log and blocks.index
uint32_t version = 0; //blocklog version
uint32_t first_block = 0; //first block in blocks.log
uint32_t last_block = 0; //last block in blocks.log
FILE* blk_in = nullptr; //C style files for reading blocks.log and blocks.index
FILE* ind_in = nullptr; //C style files for reading blocks.log and blocks.index
//we use low level file IO because it is distinctly faster than C++ filebuf or iostream
uint64_t first_block_pos = 0; //file position in blocks.log for the first block in the log
chain_id_type chain_id;
static constexpr int blknum_offset{14}; //offset from start of block to 4 byte block number, valid for the only allowed versions
};
} }
@@ -0,0 +1,31 @@
#pragma once
#include <boost/filesystem/path.hpp>
#include <variant>
namespace eosio { namespace chain {
namespace bfs = boost::filesystem;
struct basic_blocklog_config {};
struct empty_blocklog_config {};
struct partitioned_blocklog_config {
bfs::path retained_dir;
bfs::path archive_dir;
uint32_t stride = UINT32_MAX;
uint32_t max_retained_files = UINT32_MAX;
};
struct prune_blocklog_config {
uint32_t prune_blocks; // number of blocks to prune to when doing a prune
size_t prune_threshold =
4 * 1024 * 1024; //(approximately) how many bytes need to be added before a prune is performed
std::optional<size_t>
vacuum_on_close; // when set, a vacuum is performed on dtor if log contains less than this many live bytes
};
using block_log_config =
std::variant<basic_blocklog_config, empty_blocklog_config, partitioned_blocklog_config, prune_blocklog_config>;
}} // namespace eosio::chain
@@ -19,7 +19,7 @@ namespace eosio { namespace chain {
block_state( pending_block_header_state&& cur,
signed_block_ptr&& b, // unsigned block
vector<transaction_metadata_ptr>&& trx_metas,
deque<transaction_metadata_ptr>&& trx_metas,
const protocol_feature_set& pfs,
const std::function<void( block_timestamp_type,
const flat_set<digest_type>&,
@@ -44,24 +44,24 @@ namespace eosio { namespace chain {
bool is_valid()const { return validated; }
bool is_pub_keys_recovered()const { return _pub_keys_recovered; }
vector<transaction_metadata_ptr> extract_trxs_metas() {
deque<transaction_metadata_ptr> extract_trxs_metas() {
_pub_keys_recovered = false;
auto result = std::move( _cached_trxs );
_cached_trxs.clear();
return result;
}
void set_trxs_metas( vector<transaction_metadata_ptr>&& trxs_metas, bool keys_recovered ) {
void set_trxs_metas( deque<transaction_metadata_ptr>&& trxs_metas, bool keys_recovered ) {
_pub_keys_recovered = keys_recovered;
_cached_trxs = std::move( trxs_metas );
}
const vector<transaction_metadata_ptr>& trxs_metas()const { return _cached_trxs; }
const deque<transaction_metadata_ptr>& trxs_metas()const { return _cached_trxs; }
bool validated = false;
bool _pub_keys_recovered = false;
/// this data is redundant with the data stored in block, but facilitates
/// recapturing transactions when we pop a block
vector<transaction_metadata_ptr> _cached_trxs;
deque<transaction_metadata_ptr> _cached_trxs;
};
using block_state_ptr = std::shared_ptr<block_state>;
@@ -37,6 +37,10 @@ namespace chain {
void reflector_init()const;
static chain_id_type empty_chain_id() {
return {};
}
private:
chain_id_type() = default;
@@ -48,9 +48,7 @@ namespace eosio { namespace chain {
class fork_database;
enum class db_read_mode {
SPECULATIVE,
HEAD,
READ_ONLY,
IRREVERSIBLE
};
@@ -70,7 +68,7 @@ namespace eosio { namespace chain {
flat_set< pair<account_name, action_name> > action_blacklist;
flat_set<public_key_type> key_blacklist;
path blocks_dir = chain::config::default_blocks_dir_name;
std::optional<block_log_prune_config> prune_config;
block_log_config blog;
path state_dir = chain::config::default_state_dir_name;
uint64_t state_size = chain::config::default_state_size;
uint64_t state_guard_size = chain::config::default_state_guard_size;
@@ -85,12 +83,14 @@ namespace eosio { namespace chain {
uint32_t maximum_variable_signature_length = chain::config::default_max_variable_signature_length;
bool disable_all_subjective_mitigations = false; //< for developer & testing purposes, can be configured using `disable-all-subjective-mitigations` when `EOSIO_DEVELOPER` build option is provided
uint32_t terminate_at_block = 0;
bool integrity_hash_on_start= false;
bool integrity_hash_on_stop = false;
wasm_interface::vm_type wasm_runtime = chain::config::default_wasm_runtime;
eosvmoc::config eosvmoc_config;
bool eosvmoc_tierup = false;
db_read_mode read_mode = db_read_mode::SPECULATIVE;
db_read_mode read_mode = db_read_mode::HEAD;
validation_mode block_validation_mode = validation_mode::FULL;
pinnable_mapped_file::map_mode db_map_mode = pinnable_mapped_file::map_mode::mapped;
@@ -106,7 +106,8 @@ namespace eosio { namespace chain {
irreversible = 0, ///< this block has already been applied before by this node and is considered irreversible
validated = 1, ///< this is a complete block signed by a valid producer and has been previously applied by this node and therefore validated but it is not yet irreversible
complete = 2, ///< this is a complete block signed by a valid producer but is not yet irreversible nor has it yet been applied by this node
incomplete = 3, ///< this is an incomplete block (either being produced by a producer or speculatively produced by a node)
incomplete = 3, ///< this is an incomplete block being produced by a producer
ephemeral = 4 ///< this is an incomplete block created for speculative execution of trxs, will always be aborted
};
controller( const config& cfg, const chain_id_type& chain_id );
@@ -118,33 +119,25 @@ namespace eosio { namespace chain {
void startup( std::function<void()> shutdown, std::function<bool()> check_shutdown, const genesis_state& genesis);
void startup( std::function<void()> shutdown, std::function<bool()> check_shutdown);
void preactivate_feature( const digest_type& feature_digest );
void preactivate_feature( const digest_type& feature_digest, bool is_trx_transient );
vector<digest_type> get_preactivated_protocol_features()const;
void validate_protocol_features( const vector<digest_type>& features_to_activate )const;
/**
* Starts a new pending block session upon which new transactions can
* be pushed.
*
* Will only activate protocol features that have been pre-activated.
*/
void start_block( block_timestamp_type time = block_timestamp_type(), uint16_t confirm_block_count = 0 );
/**
* Starts a new pending block session upon which new transactions can
* be pushed.
* Starts a new pending block session upon which new transactions can be pushed.
*/
void start_block( block_timestamp_type time,
uint16_t confirm_block_count,
const vector<digest_type>& new_protocol_feature_activations,
block_status bs,
const fc::time_point& deadline = fc::time_point::maximum() );
/**
* @return transactions applied in aborted block
*/
vector<transaction_metadata_ptr> abort_block();
deque<transaction_metadata_ptr> abort_block();
/**
*
@@ -162,7 +155,14 @@ namespace eosio { namespace chain {
fc::time_point block_deadline, fc::microseconds max_transaction_time,
uint32_t billed_cpu_time_us, bool explicit_billed_cpu_time );
block_state_ptr finalize_block( const signer_callback_type& signer_callback );
struct block_report {
size_t total_net_usage = 0;
size_t total_cpu_usage_us = 0;
fc::microseconds total_elapsed_time{};
fc::microseconds total_time{};
};
block_state_ptr finalize_block( block_report& br, const signer_callback_type& signer_callback );
void sign_block( const signer_callback_type& signer_callback );
void commit_block();
@@ -172,11 +172,13 @@ namespace eosio { namespace chain {
block_state_ptr create_block_state( const block_id_type& id, const signed_block_ptr& b ) const;
/**
* @param br returns statistics for block
* @param bsp block to push
* @param cb calls cb with forked applied transactions for each forked block
* @param trx_lookup user provided lookup function for externally cached transaction_metadata
*/
void push_block( const block_state_ptr& bsp,
void push_block( block_report& br,
const block_state_ptr& bsp,
const forked_branch_callback& cb,
const trx_meta_cache_lookup& trx_lookup );
@@ -219,13 +221,6 @@ namespace eosio { namespace chain {
uint32_t fork_db_head_block_num()const;
block_id_type fork_db_head_block_id()const;
time_point fork_db_head_block_time()const;
account_name fork_db_head_block_producer()const;
uint32_t fork_db_pending_head_block_num()const;
block_id_type fork_db_pending_head_block_id()const;
time_point fork_db_pending_head_block_time()const;
account_name fork_db_pending_head_block_producer()const;
time_point pending_block_time()const;
account_name pending_block_producer()const;
@@ -233,8 +228,6 @@ namespace eosio { namespace chain {
std::optional<block_id_type> pending_producer_block_id()const;
uint32_t pending_block_num()const;
const vector<transaction_receipt>& get_pending_trx_receipts()const;
const producer_authority_schedule& active_producers()const;
const producer_authority_schedule& pending_producers()const;
std::optional<producer_authority_schedule> proposed_producers()const;
@@ -243,13 +236,19 @@ namespace eosio { namespace chain {
block_id_type last_irreversible_block_id() const;
time_point last_irreversible_block_time() const;
// thread-safe
signed_block_ptr fetch_block_by_number( uint32_t block_num )const;
signed_block_ptr fetch_block_by_id( block_id_type id )const;
// thread-safe
signed_block_ptr fetch_block_by_id( const block_id_type& id )const;
// thread-safe
std::optional<signed_block_header> fetch_block_header_by_number( uint32_t block_num )const;
// thread-safe
std::optional<signed_block_header> fetch_block_header_by_id( const block_id_type& id )const;
// return block_state from forkdb, thread-safe
block_state_ptr fetch_block_state_by_number( uint32_t block_num )const;
// return block_state from forkdb, thread-safe
block_state_ptr fetch_block_state_by_id( block_id_type id )const;
// thread-safe
block_id_type get_block_id_for_num( uint32_t block_num )const;
sha256 calculate_integrity_hash();
@@ -261,7 +260,7 @@ namespace eosio { namespace chain {
void check_action_list( account_name code, action_name action )const;
void check_key_list( const public_key_type& key )const;
bool is_building_block()const;
bool is_producing_block()const;
bool is_speculative_block()const;
bool is_ram_billing_in_notify_allowed()const;
@@ -311,12 +310,13 @@ namespace eosio { namespace chain {
void add_to_ram_correction( account_name account, uint64_t ram_bytes );
bool all_subjective_mitigations_disabled()const;
deep_mind_handler* get_deep_mind_logger() const;
deep_mind_handler* get_deep_mind_logger(bool is_trx_transient) const;
void enable_deep_mind( deep_mind_handler* logger );
uint32_t earliest_available_block_num() const;
#if defined(EOSIO_EOS_VM_RUNTIME_ENABLED) || defined(EOSIO_EOS_VM_JIT_RUNTIME_ENABLED)
vm::wasm_allocator& get_wasm_allocator();
bool is_eos_vm_oc_enabled() const;
#endif
static std::optional<uint64_t> convert_exception_to_error_code( const fc::exception& e );
@@ -348,9 +348,8 @@ namespace eosio { namespace chain {
if( n.good() ) {
try {
const auto& a = get_account( n );
abi_def abi;
if( abi_serializer::to_abi( a.abi, abi ))
return abi_serializer( abi, yield );
if( abi_def abi; abi_serializer::to_abi( a.abi, abi ))
return abi_serializer( std::move(abi), yield );
} FC_CAPTURE_AND_LOG((n))
}
return std::optional<abi_serializer>();
@@ -371,6 +370,10 @@ namespace eosio { namespace chain {
void replace_producer_keys( const public_key_type& key );
void replace_account_keys( name account, name permission, const public_key_type& key );
void set_db_read_only_mode();
void unset_db_read_only_mode();
void init_thread_local_data();
private:
friend class apply_context;
friend class transaction_context;
@@ -186,17 +186,6 @@ namespace fc {
b = eosio::chain::shared_blob(_s.begin(), _s.end(), b.get_allocator());
}
inline
void to_variant( const blob& b, variant& v ) {
v = variant(base64_encode(b.data.data(), b.data.size()));
}
inline
void from_variant( const variant& v, blob& b ) {
string _s = base64_decode(v.as_string());
b.data = std::vector<char>(_s.begin(), _s.end());
}
template<typename T>
void to_variant( const eosio::chain::shared_vector<T>& sv, variant& v ) {
to_variant(std::vector<T>(sv.begin(), sv.end()), v);
@@ -573,6 +573,12 @@ namespace eosio { namespace chain {
3170011, "The signer returned no valid block signatures" )
FC_DECLARE_DERIVED_EXCEPTION( unsupported_multiple_block_signatures, producer_exception,
3170012, "The signer returned multiple signatures but that is not supported" )
FC_DECLARE_DERIVED_EXCEPTION( duplicate_snapshot_request, producer_exception,
3170013, "Snapshot has been already scheduled with specified parameters" )
FC_DECLARE_DERIVED_EXCEPTION( snapshot_request_not_found, producer_exception,
3170014, "Snapshot request not found" )
FC_DECLARE_DERIVED_EXCEPTION( invalid_snapshot_request, producer_exception,
3170015, "Invalid snapshot request" )
FC_DECLARE_DERIVED_EXCEPTION( reversible_blocks_exception, chain_exception,
3180000, "Reversible Blocks exception" )
@@ -6,11 +6,14 @@
namespace eosio { namespace chain {
/**
* @brief limits for a kv database.
* @brief limits for a kv database: NOT IN USE for mandel
*
* Each database (ram or disk, currently) has its own limits for these parameters.
* The key and value limits apply when adding or modifying elements. They may be reduced
* below existing database entries.
*
* This has been marked for removal at a later date, when v7 snapshots are deemed necessary.
* kv_database_config will be removed as part of that effort.
*/
struct kv_database_config {
std::uint32_t max_key_size = 0; ///< the maximum size in bytes of a key
@@ -0,0 +1,280 @@
#pragma once
#include <boost/container/flat_map.hpp>
#include <boost/filesystem/path.hpp>
#include <boost/iostreams/device/mapped_file.hpp>
#include <fc/io/cfile.hpp>
#include <fc/io/datastream.hpp>
#include <regex>
namespace eosio {
namespace chain {
namespace bfs = boost::filesystem;
template <typename Lambda>
void for_each_file_in_dir_matches(const bfs::path& dir, std::string pattern, Lambda&& lambda) {
const std::regex my_filter(pattern);
std::smatch what;
bfs::directory_iterator end_itr; // Default ctor yields past-the-end
for (bfs::directory_iterator p(dir); p != end_itr; ++p) {
// Skip if not a file
if (!bfs::is_regular_file(p->status()))
continue;
// skip if it does not match the pattern
if (!std::regex_match(p->path().filename().string(), what, my_filter))
continue;
lambda(p->path());
}
}
struct null_verifier {
template <typename LogData>
void verify(const LogData&, const bfs::path&) {}
};
template <typename LogData, typename LogIndex, typename LogVerifier = null_verifier>
struct log_catalog {
using block_num_t = uint32_t;
struct mapped_type {
block_num_t last_block_num;
bfs::path filename_base;
};
using collection_t = boost::container::flat_map<block_num_t, mapped_type>;
using size_type = typename collection_t::size_type;
static constexpr size_type npos = std::numeric_limits<size_type>::max();
bfs::path retained_dir;
bfs::path archive_dir;
size_type max_retained_files = std::numeric_limits<size_type>::max();
collection_t collection;
size_type active_index = npos;
LogData log_data;
LogIndex log_index;
LogVerifier verifier;
bool empty() const { return collection.empty(); }
block_num_t first_block_num() const {
if (empty())
return std::numeric_limits<block_num_t>::max();
return collection.begin()->first;
}
block_num_t last_block_num() const {
if (empty())
return std::numeric_limits<block_num_t>::min();
return collection.rbegin()->second.last_block_num;
}
static bfs::path make_absolute_dir(const bfs::path& base_dir, bfs::path new_dir) {
if (new_dir.is_relative())
new_dir = base_dir / new_dir;
if (!bfs::is_directory(new_dir))
bfs::create_directories(new_dir);
return new_dir;
}
void open(const bfs::path& log_dir, const bfs::path& retained_path, const bfs::path& archive_path, const char* name,
const char* suffix_pattern = R"(-\d+-\d+\.log)") {
retained_dir = make_absolute_dir(log_dir, retained_path.empty() ? log_dir : retained_path);
if (!archive_path.empty()) {
archive_dir = make_absolute_dir(log_dir, archive_path);
}
for_each_file_in_dir_matches(retained_dir, std::string(name) + suffix_pattern, [this](bfs::path path) {
auto log_path = path;
auto index_path = path.replace_extension("index");
auto path_without_extension = log_path.parent_path() / log_path.stem().string();
LogData log(log_path);
verifier.verify(log, log_path);
// check if index file matches the log file
if (!index_matches_data(index_path, log))
log.construct_index(index_path);
auto existing_itr = collection.find(log.first_block_num());
if (existing_itr != collection.end()) {
if (log.last_block_num() <= existing_itr->second.last_block_num) {
wlog("${log_path} contains the overlapping range with ${existing_path}.log, dropping ${log_path} "
"from catalog",
("log_path", log_path.string())("existing_path", existing_itr->second.filename_base.string()));
return;
} else {
wlog(
"${log_path} contains the overlapping range with ${existing_path}.log, droping ${existing_path}.log "
"from catelog",
("log_path", log_path.string())("existing_path", existing_itr->second.filename_base.string()));
}
}
collection.insert_or_assign(log.first_block_num(), mapped_type{log.last_block_num(), path_without_extension});
});
}
bool index_matches_data(const bfs::path& index_path, LogData& log) const {
if (!bfs::exists(index_path))
return false;
auto num_blocks_in_index = bfs::file_size(index_path) / sizeof(uint64_t);
if (num_blocks_in_index != log.num_blocks())
return false;
// make sure the last 8 bytes of index and log matches
fc::cfile index_file;
index_file.set_file_path(index_path);
index_file.open("r");
index_file.seek_end(-sizeof(uint64_t));
uint64_t pos;
index_file.read(reinterpret_cast<char*>(&pos), sizeof(pos));
return pos == log.last_block_position();
}
std::optional<uint64_t> get_block_position(uint32_t block_num) {
try {
if (active_index != npos) {
auto active_item = collection.nth(active_index);
if (active_item->first <= block_num && block_num <= active_item->second.last_block_num) {
return log_index.nth_block_position(block_num - log_data.first_block_num());
}
}
if (block_num < first_block_num())
return {};
auto it = --collection.upper_bound(block_num);
if (block_num <= it->second.last_block_num) {
auto name = it->second.filename_base;
log_data.open(name.replace_extension("log"));
log_index.open(name.replace_extension("index"));
active_index = collection.index_of(it);
return log_index.nth_block_position(block_num - log_data.first_block_num());
}
return {};
} catch (...) {
active_index = npos;
return {};
}
}
fc::datastream<fc::cfile>* ro_stream_for_block(uint32_t block_num) {
auto pos = get_block_position(block_num);
if (pos) {
return &log_data.ro_stream_at(*pos);
}
return nullptr;
}
template <typename ...Rest>
auto ro_stream_for_block(uint32_t block_num, Rest&& ...rest) -> std::optional<decltype( std::declval<LogData>().ro_stream_at(0, std::forward<Rest&&>(rest)...))> {
auto pos = get_block_position(block_num);
if (pos) {
return log_data.ro_stream_at(*pos, std::forward<Rest&&>(rest)...);
}
return {};
}
std::optional<block_id_type> id_for_block(uint32_t block_num) {
auto pos = get_block_position(block_num);
if (pos) {
return log_data.block_id_at(*pos);
}
return {};
}
static void rename_if_not_exists(bfs::path old_name, bfs::path new_name) {
if (!bfs::exists(new_name)) {
bfs::rename(old_name, new_name);
} else {
bfs::remove(old_name);
wlog("${new_name} already exists, just removing ${old_name}",
("old_name", old_name.string())("new_name", new_name.string()));
}
}
static void rename_bundle(bfs::path orig_path, bfs::path new_path) {
rename_if_not_exists(orig_path.replace_extension(".log"), new_path.replace_extension(".log"));
rename_if_not_exists(orig_path.replace_extension(".index"), new_path.replace_extension(".index"));
}
/// Add a new entry into the catalog.
///
/// Notice that \c start_block_num must be monotonically increasing between the invocations of this function
/// so that the new entry would be inserted at the end of the flat_map; otherwise, \c active_index would be
/// invalidated and the mapping between the log data their block range would be wrong. This function is only used
/// during the splitting of block log. Using this function for other purpose should make sure if the monotonically
/// increasing block num guarantee can be met.
void add(uint32_t start_block_num, uint32_t end_block_num, const bfs::path& dir, const char* name) {
const int bufsize = 64;
char buf[bufsize];
snprintf(buf, bufsize, "%s-%u-%u", name, start_block_num, end_block_num);
bfs::path new_path = retained_dir / buf;
rename_bundle(dir / name, new_path);
size_type items_to_erase = 0;
collection.emplace(start_block_num, mapped_type{end_block_num, new_path});
if (collection.size() >= max_retained_files) {
items_to_erase =
max_retained_files > 0 ? collection.size() - max_retained_files : collection.size();
for (auto it = collection.begin(); it < collection.begin() + items_to_erase; ++it) {
auto orig_name = it->second.filename_base;
if (archive_dir.empty()) {
// delete the old files when no backup dir is specified
bfs::remove(orig_name.replace_extension("log"));
bfs::remove(orig_name.replace_extension("index"));
} else {
// move the the archive dir
rename_bundle(orig_name, archive_dir / orig_name.filename());
}
}
collection.erase(collection.begin(), collection.begin() + items_to_erase);
active_index = active_index == npos || active_index < items_to_erase
? npos
: active_index - items_to_erase;
}
}
/// Truncate the catalog so that the log/index bundle containing the block with \c block_num
/// would be rename to \c new_name; the log/index bundles with blocks strictly higher
/// than \c block_num would be deleted, and all the renamed/removed entries would be erased
/// from the catalog.
///
/// \return if nonzero, it's the starting block number for the log/index bundle being renamed.
uint32_t truncate(uint32_t block_num, bfs::path new_name) {
if (collection.empty())
return 0;
auto remove_files = [](typename collection_t::const_reference v) {
auto name = v.second.filename_base;
bfs::remove(name.replace_extension("log"));
bfs::remove(name.replace_extension("index"));
};
active_index = npos;
auto it = collection.upper_bound(block_num);
if (it == collection.begin() || block_num > (it - 1)->second.last_block_num) {
std::for_each(it, collection.end(), remove_files);
collection.erase(it, collection.end());
return 0;
} else {
auto truncate_it = --it;
auto name = truncate_it->second.filename_base;
bfs::rename(name.replace_extension("log"), new_name.replace_extension("log"));
bfs::rename(name.replace_extension("index"), new_name.replace_extension("index"));
std::for_each(truncate_it + 1, collection.end(), remove_files);
auto result = truncate_it->first;
collection.erase(truncate_it, collection.end());
return result;
}
}
};
} // namespace chain
} // namespace eosio
@@ -0,0 +1,49 @@
#pragma once
#include <fc/io/cfile.hpp>
namespace eosio {
namespace chain {
template <typename T>
T read_data_at(fc::datastream<fc::cfile>& file, std::size_t offset) {
file.seek(offset);
T value;
fc::raw::unpack(file, value);
return value;
}
template <typename Derived>
class log_data_base {
protected:
fc::datastream<fc::cfile> file;
Derived* self() { return static_cast<Derived*>(this); }
const Derived* self() const { return static_cast<const Derived*>(this); }
public:
log_data_base() = default;
void close() { file.close(); }
bool is_open() const { return file.is_open(); }
uint64_t size() const { return self()->size(); }
uint32_t last_block_num() { return self()->block_num_at(last_block_position()); }
uint64_t last_block_position() {
uint32_t offset = sizeof(uint64_t);
if (self()->is_currently_pruned())
offset += sizeof(uint32_t);
return read_data_at<uint64_t>(file, size() - offset);
}
uint32_t num_blocks() {
if (self()->first_block_position() == size())
return 0;
else if (self()->is_currently_pruned())
return read_data_at<uint32_t>(file, size() - sizeof(uint32_t));
return last_block_num() - self()->first_block_num() + 1;
}
};
} // namespace chain
} // namespace eosio
@@ -0,0 +1,51 @@
#pragma once
#include <boost/filesystem/path.hpp>
#include <fc/io/cfile.hpp>
namespace eosio {
namespace chain {
/// copy up to n bytes from the current position of src to dest
void copy_file_content(fc::cfile& src, fc::cfile& dest, uint64_t n = UINT64_MAX);
template <typename Exception>
class log_index {
fc::cfile file_;
std::size_t num_blocks_ = 0;
public:
log_index() = default;
log_index(const boost::filesystem::path& path) {
open(path);
}
void open(const boost::filesystem::path& path) {
if (file_.is_open())
file_.close();
file_.set_file_path(path);
file_.open("rb");
file_.seek_end(0);
num_blocks_ = file_.tellp()/ sizeof(uint64_t);
EOS_ASSERT(file_.tellp() % sizeof(uint64_t) == 0, Exception,
"The size of ${file} is not a multiple of sizeof(uint64_t)", ("file", path.generic_string()));
}
bool is_open() const { return file_.is_open(); }
uint64_t back() { return nth_block_position(num_blocks()-1); }
unsigned num_blocks() const { return num_blocks_; }
uint64_t nth_block_position(uint32_t n) {
file_.seek(n*sizeof(uint64_t));
uint64_t r;
file_.read((char*)&r, sizeof(r));
return r;
}
void copy_to(fc::cfile& dest, uint64_t nbytes) {
file_.seek(0);
copy_file_content(file_, dest, nbytes);
}
};
} // namespace chain
} // namespace eosio
@@ -17,6 +17,6 @@ namespace eosio { namespace chain {
/**
* Calculates the merkle root of a set of digests, if ids is odd it will duplicate the last id.
*/
digest_type merkle( vector<digest_type> ids );
digest_type merkle( deque<digest_type> ids );
} } /// eosio::chain
@@ -335,4 +335,3 @@ FC_REFLECT_DERIVED( eosio::chain::producer_schedule_change_extension, (eosio::ch
FC_REFLECT( eosio::chain::shared_block_signing_authority_v0, (threshold)(keys))
FC_REFLECT( eosio::chain::shared_producer_authority, (producer_name)(authority) )
FC_REFLECT( eosio::chain::shared_producer_authority_schedule, (version)(producers) )
@@ -264,7 +264,7 @@ protected:
class protocol_feature_manager {
public:
protocol_feature_manager( protocol_feature_set&& pfs, std::function<deep_mind_handler*()> get_deep_mind_logger );
protocol_feature_manager( protocol_feature_set&& pfs, std::function<deep_mind_handler*(bool is_trx_transient)> get_deep_mind_logger );
class const_iterator {
public:
@@ -393,9 +393,12 @@ protected:
bool _initialized = false;
private:
std::function<deep_mind_handler*()> _get_deep_mind_logger;
std::function<deep_mind_handler*(bool is_trx_transient)> _get_deep_mind_logger;
};
std::optional<builtin_protocol_feature> read_builtin_protocol_feature( const fc::path& p );
protocol_feature_set initialize_protocol_features( const fc::path& p, bool populate_missing_builtins = true );
} } // namespace eosio::chain
FC_REFLECT(eosio::chain::protocol_feature_subjective_restrictions,
@@ -4,6 +4,7 @@
#include <eosio/chain/config.hpp>
#include <eosio/chain/trace.hpp>
#include <eosio/chain/snapshot.hpp>
#include <eosio/chain/block_timestamp.hpp>
#include <chainbase/chainbase.hpp>
#include <set>
@@ -56,12 +57,14 @@ namespace eosio { namespace chain {
int64_t used = 0; ///< quantity used in current window
int64_t available = 0; ///< quantity available in current window (based upon fractional reserve)
int64_t max = 0; ///< max per window under current congestion
block_timestamp_type last_usage_update_time; ///< last usage timestamp
int64_t current_used = 0; ///< current usage according to the given timestamp
};
class resource_limits_manager {
public:
explicit resource_limits_manager(chainbase::database& db, std::function<deep_mind_handler*()> get_deep_mind_logger)
explicit resource_limits_manager(chainbase::database& db, std::function<deep_mind_handler*(bool is_trx_transient)> get_deep_mind_logger)
:_db(db),_get_deep_mind_logger(get_deep_mind_logger)
{
}
@@ -71,17 +74,17 @@ namespace eosio { namespace chain {
void add_to_snapshot( const snapshot_writer_ptr& snapshot ) const;
void read_from_snapshot( const snapshot_reader_ptr& snapshot );
void initialize_account( const account_name& account );
void initialize_account( const account_name& account, bool is_trx_transient );
void set_block_parameters( const elastic_limit_parameters& cpu_limit_parameters, const elastic_limit_parameters& net_limit_parameters );
void update_account_usage( const flat_set<account_name>& accounts, uint32_t ordinal );
void add_transaction_usage( const flat_set<account_name>& accounts, uint64_t cpu_usage, uint64_t net_usage, uint32_t ordinal );
void add_transaction_usage( const flat_set<account_name>& accounts, uint64_t cpu_usage, uint64_t net_usage, uint32_t ordinal, bool is_trx_transient = false );
void add_pending_ram_usage( const account_name account, int64_t ram_delta );
void add_pending_ram_usage( const account_name account, int64_t ram_delta, bool is_trx_transient = false );
void verify_account_ram_usage( const account_name accunt )const;
/// set_account_limits returns true if new ram_bytes limit is more restrictive than the previously set one
bool set_account_limits( const account_name& account, int64_t ram_bytes, int64_t net_weight, int64_t cpu_weight);
bool set_account_limits( const account_name& account, int64_t ram_bytes, int64_t net_weight, int64_t cpu_weight, bool is_trx_transient);
void get_account_limits( const account_name& account, int64_t& ram_bytes, int64_t& net_weight, int64_t& cpu_weight) const;
bool is_unlimited_cpu( const account_name& account ) const;
@@ -102,17 +105,19 @@ namespace eosio { namespace chain {
std::pair<int64_t, bool> get_account_cpu_limit( const account_name& name, uint32_t greylist_limit = config::maximum_elastic_resource_multiplier ) const;
std::pair<int64_t, bool> get_account_net_limit( const account_name& name, uint32_t greylist_limit = config::maximum_elastic_resource_multiplier ) const;
std::pair<account_resource_limit, bool> get_account_cpu_limit_ex( const account_name& name, uint32_t greylist_limit = config::maximum_elastic_resource_multiplier ) const;
std::pair<account_resource_limit, bool> get_account_net_limit_ex( const account_name& name, uint32_t greylist_limit = config::maximum_elastic_resource_multiplier ) const;
std::pair<account_resource_limit, bool>
get_account_cpu_limit_ex( const account_name& name, uint32_t greylist_limit = config::maximum_elastic_resource_multiplier, const std::optional<block_timestamp_type>& current_time={} ) const;
std::pair<account_resource_limit, bool>
get_account_net_limit_ex( const account_name& name, uint32_t greylist_limit = config::maximum_elastic_resource_multiplier, const std::optional<block_timestamp_type>& current_time={} ) const;
int64_t get_account_ram_usage( const account_name& name ) const;
private:
chainbase::database& _db;
std::function<deep_mind_handler*()> _get_deep_mind_logger;
std::function<deep_mind_handler*(bool is_trx_transient)> _get_deep_mind_logger;
};
} } } /// eosio::chain
FC_REFLECT( eosio::chain::resource_limits::account_resource_limit, (used)(available)(max) )
FC_REFLECT( eosio::chain::resource_limits::account_resource_limit, (used)(available)(max)(last_usage_update_time)(current_used) )
FC_REFLECT( eosio::chain::resource_limits::ratio, (numerator)(denominator))
FC_REFLECT( eosio::chain::resource_limits::elastic_limit_parameters, (target)(max)(periods)(max_multiplier)(contract_rate)(expand_rate))
@@ -5,6 +5,7 @@
#include <fc/variant_object.hpp>
#include <boost/core/demangle.hpp>
#include <ostream>
#include <memory>
namespace eosio { namespace chain {
/**
@@ -272,11 +273,6 @@ namespace eosio { namespace chain {
read_section(detail::snapshot_section_traits<T>::section_name(), f);
}
template<typename T>
bool has_section(const std::string& suffix = std::string()) {
return has_section(suffix + detail::snapshot_section_traits<T>::section_name());
}
virtual void validate() const = 0;
virtual void return_to_header() = 0;
@@ -284,7 +280,6 @@ namespace eosio { namespace chain {
virtual ~snapshot_reader(){};
protected:
virtual bool has_section( const std::string& section_name ) = 0;
virtual void set_section( const std::string& section_name ) = 0;
virtual bool read_row( detail::abstract_snapshot_row_reader& row_reader ) = 0;
virtual bool empty( ) = 0;
@@ -313,7 +308,6 @@ namespace eosio { namespace chain {
explicit variant_snapshot_reader(const fc::variant& snapshot);
void validate() const override;
bool has_section( const string& section_name ) override;
void set_section( const string& section_name ) override;
bool read_row( detail::abstract_snapshot_row_reader& row_reader ) override;
bool empty ( ) override;
@@ -342,7 +336,22 @@ namespace eosio { namespace chain {
std::streampos header_pos;
std::streampos section_pos;
uint64_t row_count;
};
class ostream_json_snapshot_writer : public snapshot_writer {
public:
explicit ostream_json_snapshot_writer(std::ostream& snapshot);
void write_start_section( const std::string& section_name ) override;
void write_row( const detail::abstract_snapshot_row_writer& row_writer ) override;
void write_end_section() override;
void finalize();
static const uint32_t magic_number = 0x30510550;
private:
detail::ostream_wrapper snapshot;
uint64_t row_count;
};
class istream_snapshot_reader : public snapshot_reader {
@@ -350,7 +359,6 @@ namespace eosio { namespace chain {
explicit istream_snapshot_reader(std::istream& snapshot);
void validate() const override;
bool has_section( const string& section_name ) override;
void set_section( const string& section_name ) override;
bool read_row( detail::abstract_snapshot_row_reader& row_reader ) override;
bool empty ( ) override;
@@ -366,6 +374,24 @@ namespace eosio { namespace chain {
uint64_t cur_row;
};
class istream_json_snapshot_reader : public snapshot_reader {
public:
explicit istream_json_snapshot_reader(const fc::path& p);
~istream_json_snapshot_reader();
void validate() const override;
void set_section( const string& section_name ) override;
bool read_row( detail::abstract_snapshot_row_reader& row_reader ) override;
bool empty ( ) override;
void clear_section() override;
void return_to_header() override;
private:
bool validate_section() const;
std::unique_ptr<struct istream_json_snapshot_reader_impl> impl;
};
class integrity_hash_snapshot_writer : public snapshot_writer {
public:
explicit integrity_hash_snapshot_writer(fc::sha256::encoder& enc);
@@ -165,6 +165,25 @@ namespace eosio {
return lhs.value() > rhs.value();
}
inline bool operator== (const extended_symbol& lhs, const extended_symbol& rhs)
{
return std::tie(lhs.sym, lhs.contract) == std::tie(rhs.sym, rhs.contract);
}
inline bool operator!= (const extended_symbol& lhs, const extended_symbol& rhs)
{
return std::tie(lhs.sym, lhs.contract) != std::tie(rhs.sym, rhs.contract);
}
inline bool operator< (const extended_symbol& lhs, const extended_symbol& rhs)
{
return std::tie(lhs.sym, lhs.contract) < std::tie(rhs.sym, rhs.contract);
}
inline bool operator> (const extended_symbol& lhs, const extended_symbol& rhs)
{
return std::tie(lhs.sym, lhs.contract) > std::tie(rhs.sym, rhs.contract);
}
} // namespace chain
} // namespace eosio
@@ -1,46 +1,120 @@
#pragma once
#include <eosio/chain/name.hpp>
#include <fc/exception/exception.hpp>
#include <fc/log/logger_config.hpp>
#include <boost/asio/io_context.hpp>
#include <boost/asio/thread_pool.hpp>
#include <boost/asio/post.hpp>
#include <future>
#include <memory>
#include <optional>
#include <thread>
namespace eosio { namespace chain {
/**
* Wrapper class for boost asio thread pool and io_context run.
* Wrapper class for thread pool of boost asio io_context run.
* Also names threads so that tools like htop can see thread name.
* Example: named_thread_pool<struct net> thread_pool;
* or: struct net{}; named_thread_pool<net> thread_pool;
* @param NamePrefixTag is a type name appended with -## of thread.
* A short NamePrefixTag type name (6 chars or under) is recommended as console_appender uses
* 9 chars for the thread name.
*/
template<typename NamePrefixTag>
class named_thread_pool {
public:
// name_prefix is name appended with -## of thread.
// short name_prefix (6 chars or under) is recommended as console_appender uses 9 chars for thread name
named_thread_pool( std::string name_prefix, size_t num_threads );
using on_except_t = std::function<void(const fc::exception& e)>;
using init_t = std::function<void()>;
// calls stop()
~named_thread_pool();
named_thread_pool() = default;
~named_thread_pool(){
stop();
}
boost::asio::io_context& get_executor() { return _ioc; }
// destroy work guard, stop io_context, join thread_pool, and stop thread_pool
void stop();
/// Spawn threads, can be re-started after stop().
/// Assumes start()/stop() called from the same thread or externally protected.
/// @param num_threads is number of threads spawned
/// @param on_except is the function to call if io_context throws an exception, is called from thread pool thread.
/// if an empty function then logs and rethrows exception on thread which will terminate.
/// @param init is an optional function to call at startup to initialize any data.
/// @throw assert_exception if already started and not stopped.
void start( size_t num_threads, on_except_t on_except, init_t init = {} ) {
FC_ASSERT( !_ioc_work, "Thread pool already started" );
_ioc_work.emplace( boost::asio::make_work_guard( _ioc ) );
_ioc.restart();
_thread_pool.reserve( num_threads );
for( size_t i = 0; i < num_threads; ++i ) {
_thread_pool.emplace_back( std::thread( &named_thread_pool::run_thread, this, i, on_except, init ) );
}
}
/// destroy work guard, stop io_context, join thread_pool
void stop() {
_ioc_work.reset();
_ioc.stop();
for( auto& t : _thread_pool ) {
t.join();
}
_thread_pool.clear();
}
private:
void run_thread( size_t i, const on_except_t& on_except, const init_t& init ) {
std::string tn = boost::core::demangle(typeid(this).name());
auto offset = tn.rfind("::");
if (offset != std::string::npos)
tn.erase(0, offset+2);
tn = tn.substr(0, tn.find('>')) + "-" + std::to_string( i );
try {
fc::set_os_thread_name( tn );
if ( init )
init();
_ioc.run();
} catch( const fc::exception& e ) {
if( on_except ) {
on_except( e );
} else {
elog( "Exiting thread ${t} on exception: ${e}", ("t", tn)("e", e.to_detail_string()) );
throw;
}
} catch( const std::exception& e ) {
fc::std_exception_wrapper se( FC_LOG_MESSAGE( warn, "${what}: ", ("what", e.what()) ),
std::current_exception(), BOOST_CORE_TYPEID( e ).name(), e.what() );
if( on_except ) {
on_except( se );
} else {
elog( "Exiting thread ${t} on exception: ${e}", ("t", tn)("e", se.to_detail_string()) );
throw;
}
} catch( ... ) {
if( on_except ) {
fc::unhandled_exception ue( FC_LOG_MESSAGE( warn, "unknown exception" ), std::current_exception() );
on_except( ue );
} else {
elog( "Exiting thread ${t} on unknown exception", ("t", tn) );
throw;
}
}
}
private:
using ioc_work_t = boost::asio::executor_work_guard<boost::asio::io_context::executor_type>;
boost::asio::thread_pool _thread_pool;
boost::asio::io_context _ioc;
std::vector<std::thread> _thread_pool;
std::optional<ioc_work_t> _ioc_work;
};
// async on thread_pool and return future
// async on io_context and return future
template<typename F>
auto async_thread_pool( boost::asio::io_context& thread_pool, F&& f ) {
auto post_async_task( boost::asio::io_context& ioc, F&& f ) {
auto task = std::make_shared<std::packaged_task<decltype( f() )()>>( std::forward<F>( f ) );
boost::asio::post( thread_pool, [task]() { (*task)(); } );
boost::asio::post( ioc, [task]() { (*task)(); } );
return task->get_future();
}
@@ -49,12 +49,6 @@ namespace eosio { namespace chain {
* with a block_header::timestamp greater than expiration is
* deemed irreversible, then a user can safely trust the transaction
* will never be included.
*
* Each region is an independent blockchain, it is included as routing
* information for inter-blockchain communication. A contract in this
* region might generate or authorize a transaction intended for a foreign
* region.
*/
struct transaction_header {
time_point_sec expiration; ///< the time at which a transaction expires
@@ -76,7 +70,7 @@ namespace eosio { namespace chain {
};
/**
* A transaction consits of a set of messages which must all be applied or
* A transaction consists of a set of messages which must all be applied or
* all are rejected. These messages have access to data within the given
* read and write scopes.
*/
@@ -39,7 +39,7 @@ namespace eosio { namespace chain {
const packed_transaction& t,
transaction_checktime_timer&& timer,
fc::time_point start = fc::time_point::now(),
bool read_only=false);
transaction_metadata::trx_type type = transaction_metadata::trx_type::input);
~transaction_context();
void init_for_implicit_trx( uint64_t initial_net_usage = 0 );
@@ -83,6 +83,10 @@ namespace eosio { namespace chain {
void validate_referenced_accounts( const transaction& trx, bool enforce_actor_whitelist_blacklist )const;
bool is_dry_run()const { return trx_type == transaction_metadata::trx_type::dry_run; };
bool is_read_only()const { return trx_type == transaction_metadata::trx_type::read_only; };
bool is_transient()const { return trx_type == transaction_metadata::trx_type::read_only || trx_type == transaction_metadata::trx_type::dry_run; };
private:
friend struct controller_impl;
@@ -110,12 +114,14 @@ namespace eosio { namespace chain {
void schedule_transaction();
void record_transaction( const transaction_id_type& id, fc::time_point_sec expire );
void validate_cpu_usage_to_bill( int64_t billed_us, int64_t account_cpu_limit, bool check_minimum )const;
void validate_account_cpu_usage( int64_t billed_us, int64_t account_cpu_limit )const;
void validate_account_cpu_usage_estimate( int64_t billed_us, int64_t account_cpu_limit )const;
void validate_cpu_usage_to_bill( int64_t billed_us, int64_t account_cpu_limit, bool check_minimum, int64_t subjective_billed_us )const;
void validate_account_cpu_usage( int64_t billed_us, int64_t account_cpu_limit, int64_t subjective_billed_us )const;
void validate_account_cpu_usage_estimate( int64_t billed_us, int64_t account_cpu_limit, int64_t subjective_billed_us )const;
void disallow_transaction_extensions( const char* error_msg )const;
std::string get_tx_cpu_usage_exceeded_reason_msg(fc::microseconds& limit) const;
/// Fields:
public:
@@ -128,7 +134,7 @@ namespace eosio { namespace chain {
fc::time_point published;
vector<digest_type> executed_action_receipt_digests;
deque<digest_type> executed_action_receipt_digests;
flat_set<account_name> bill_to_accounts;
flat_set<account_name> validate_ram_usage;
@@ -148,9 +154,9 @@ namespace eosio { namespace chain {
transaction_checktime_timer transaction_timer;
const bool is_read_only;
private:
bool is_initialized = false;
transaction_metadata::trx_type trx_type;
uint64_t net_limit = 0;
bool net_limit_due_to_block = true;
@@ -169,6 +175,16 @@ namespace eosio { namespace chain {
int64_t billing_timer_exception_code = block_cpu_usage_exceeded::code_value;
fc::time_point pseudo_start;
fc::microseconds billed_time;
enum class tx_cpu_usage_exceeded_reason {
account_cpu_limit, // includes subjective billing
on_chain_consensus_max_transaction_cpu_usage,
user_specified_trx_max_cpu_usage_ms,
node_configured_max_transaction_time,
speculative_executed_adjusted_max_transaction_time // prev_billed_cpu_time_us > 0
};
tx_cpu_usage_exceeded_reason tx_cpu_usage_reason = tx_cpu_usage_exceeded_reason::account_cpu_limit;
fc::microseconds tx_cpu_usage_amount;
};
} }
@@ -24,6 +24,7 @@ class transaction_metadata {
input,
implicit,
scheduled,
dry_run,
read_only
};
@@ -31,11 +32,9 @@ class transaction_metadata {
const packed_transaction_ptr _packed_trx;
const fc::microseconds _sig_cpu_usage;
const flat_set<public_key_type> _recovered_pub_keys;
const trx_type _trx_type;
public:
const bool implicit;
const bool scheduled;
const bool read_only;
bool accepted = false; // not thread safe
uint32_t billed_cpu_time_us = 0; // not thread safe
@@ -52,13 +51,11 @@ class transaction_metadata {
// creation of tranaction_metadata restricted to start_recover_keys and create_no_recover_keys below, public for make_shared
explicit transaction_metadata( const private_type& pt, packed_transaction_ptr ptrx,
fc::microseconds sig_cpu_usage, flat_set<public_key_type> recovered_pub_keys,
bool _implicit = false, bool _scheduled = false, bool _read_only = false)
trx_type t = trx_type::input )
: _packed_trx( std::move( ptrx ) )
, _sig_cpu_usage( sig_cpu_usage )
, _recovered_pub_keys( std::move( recovered_pub_keys ) )
, implicit( _implicit )
, scheduled( _scheduled )
, read_only( _read_only) {
, _trx_type( t ) {
}
transaction_metadata() = delete;
@@ -73,6 +70,12 @@ class transaction_metadata {
fc::microseconds signature_cpu_usage()const { return _sig_cpu_usage; }
const flat_set<public_key_type>& recovered_keys()const { return _recovered_pub_keys; }
size_t get_estimated_size() const;
trx_type get_trx_type() const { return _trx_type; };
bool implicit() const { return _trx_type == trx_type::implicit; };
bool scheduled() const { return _trx_type == trx_type::scheduled; };
bool is_dry_run() const { return _trx_type == trx_type::dry_run; };
bool is_read_only() const { return _trx_type == trx_type::read_only; };
bool is_transient() const { return _trx_type == trx_type::read_only || _trx_type == trx_type::dry_run; };
/// Thread safe.
/// @returns transaction_metadata_ptr or exception via future
@@ -85,7 +88,7 @@ class transaction_metadata {
static transaction_metadata_ptr
create_no_recover_keys( packed_transaction_ptr trx, trx_type t ) {
return std::make_shared<transaction_metadata>( private_type(), std::move(trx),
fc::microseconds(), flat_set<public_key_type>(), t == trx_type::implicit, t == trx_type::scheduled, t==trx_type::read_only );
fc::microseconds(), flat_set<public_key_type>(), t );
}
};
+13 -2
View File
@@ -17,6 +17,9 @@
#include <fc/fixed_string.hpp>
#include <fc/crypto/private_key.hpp>
#include <boost/version.hpp>
#include <boost/container/deque.hpp>
#include <memory>
#include <vector>
#include <deque>
@@ -45,7 +48,6 @@ namespace eosio { namespace chain {
using std::vector;
using std::unordered_map;
using std::string;
using std::deque;
using std::shared_ptr;
using std::weak_ptr;
using std::unique_ptr;
@@ -76,7 +78,15 @@ namespace eosio { namespace chain {
using public_key_type = fc::crypto::public_key;
using private_key_type = fc::crypto::private_key;
using signature_type = fc::crypto::signature;
#if BOOST_VERSION >= 107100
// configurable boost deque performs much better than std::deque in our use cases
using block_1024_option_t = boost::container::deque_options< boost::container::block_size<1024u> >::type;
template<typename T>
using deque = boost::container::deque< T, void, block_1024_option_t >;
#else
template<typename T>
using deque = std::deque<T>;
#endif
struct void_t{};
using chainbase::allocator;
@@ -241,6 +251,7 @@ namespace eosio { namespace chain {
using int128_t = __int128;
using uint128_t = unsigned __int128;
using bytes = vector<char>;
using digests_t = deque<digest_type>;
struct sha256_less {
bool operator()( const fc::sha256& lhs, const fc::sha256& rhs ) const {
@@ -21,23 +21,22 @@ using namespace boost::multi_index;
enum class trx_enum_type {
unknown = 0,
persisted = 1,
forked = 2,
aborted = 3,
incoming_persisted = 4,
incoming = 5 // incoming_end() needs to be updated if this changes
forked = 1,
aborted = 2,
incoming_api = 3,
incoming_p2p = 4 // incoming_end() needs to be updated if this changes
};
using next_func_t = std::function<void(const std::variant<fc::exception_ptr, transaction_trace_ptr>&)>;
struct unapplied_transaction {
const transaction_metadata_ptr trx_meta;
const fc::time_point expiry;
trx_enum_type trx_type = trx_enum_type::unknown;
bool return_failure_trace = false;
next_func_t next;
const transaction_id_type& id()const { return trx_meta->id(); }
fc::time_point_sec expiration()const { return trx_meta->packed_trx()->expiration(); }
unapplied_transaction(const unapplied_transaction&) = delete;
unapplied_transaction() = delete;
@@ -46,8 +45,7 @@ struct unapplied_transaction {
};
/**
* Track unapplied transactions for persisted, forked blocks, and aborted blocks.
* Persisted are first so that they can be applied in each block until expired.
* Track unapplied transactions for incoming, forked blocks, and aborted blocks.
*/
class unapplied_transaction_queue {
private:
@@ -61,7 +59,7 @@ private:
const_mem_fun<unapplied_transaction, const transaction_id_type&, &unapplied_transaction::id>
>,
ordered_non_unique< tag<by_type>, member<unapplied_transaction, trx_enum_type, &unapplied_transaction::trx_type> >,
ordered_non_unique< tag<by_expiry>, member<unapplied_transaction, const fc::time_point, &unapplied_transaction::expiry> >
ordered_non_unique< tag<by_expiry>, const_mem_fun<unapplied_transaction, fc::time_point_sec, &unapplied_transaction::expiration> >
>
> unapplied_trx_queue_type;
@@ -101,7 +99,7 @@ public:
auto& persisted_by_expiry = queue.get<by_expiry>();
while( !persisted_by_expiry.empty() ) {
const auto& itr = persisted_by_expiry.begin();
if( itr->expiry > pending_block_time ) {
if( itr->expiration() > pending_block_time ) {
break;
}
if( yield() ) {
@@ -146,42 +144,24 @@ public:
const block_state_ptr& bsptr = *ritr;
for( auto itr = bsptr->trxs_metas().begin(), end = bsptr->trxs_metas().end(); itr != end; ++itr ) {
const auto& trx = *itr;
fc::time_point expiry = trx->packed_trx()->expiration();
auto insert_itr = queue.insert( { trx, expiry, trx_enum_type::forked } );
auto insert_itr = queue.insert( { trx, trx_enum_type::forked } );
if( insert_itr.second ) added( insert_itr.first );
}
}
}
void add_aborted( std::vector<transaction_metadata_ptr> aborted_trxs ) {
void add_aborted( deque<transaction_metadata_ptr> aborted_trxs ) {
for( auto& trx : aborted_trxs ) {
fc::time_point expiry = trx->packed_trx()->expiration();
auto insert_itr = queue.insert( { std::move( trx ), expiry, trx_enum_type::aborted } );
auto insert_itr = queue.insert( { std::move( trx ), trx_enum_type::aborted } );
if( insert_itr.second ) added( insert_itr.first );
}
}
void add_persisted( const transaction_metadata_ptr& trx ) {
void add_incoming( const transaction_metadata_ptr& trx, bool api_trx, bool return_failure_trace, next_func_t next ) {
auto itr = queue.get<by_trx_id>().find( trx->id() );
if( itr == queue.get<by_trx_id>().end() ) {
fc::time_point expiry = trx->packed_trx()->expiration();
auto insert_itr = queue.insert( { trx, expiry, trx_enum_type::persisted } );
if( insert_itr.second ) added( insert_itr.first );
} else if( itr->trx_type != trx_enum_type::persisted ) {
if (itr->trx_type == trx_enum_type::incoming || itr->trx_type == trx_enum_type::incoming_persisted)
--incoming_count;
queue.get<by_trx_id>().modify( itr, [](auto& un){
un.trx_type = trx_enum_type::persisted;
} );
}
}
void add_incoming( const transaction_metadata_ptr& trx, bool persist_until_expired, bool return_failure_trace, next_func_t next ) {
auto itr = queue.get<by_trx_id>().find( trx->id() );
if( itr == queue.get<by_trx_id>().end() ) {
fc::time_point expiry = trx->packed_trx()->expiration();
auto insert_itr = queue.insert(
{ trx, expiry, persist_until_expired ? trx_enum_type::incoming_persisted : trx_enum_type::incoming, return_failure_trace, std::move( next ) } );
{ trx, api_trx ? trx_enum_type::incoming_api : trx_enum_type::incoming_p2p, return_failure_trace, std::move( next ) } );
if( insert_itr.second ) added( insert_itr.first );
} else {
if( itr->trx_meta == trx ) return; // same trx meta pointer
@@ -197,16 +177,19 @@ public:
iterator begin() { return queue.get<by_type>().begin(); }
iterator end() { return queue.get<by_type>().end(); }
// persisted, forked, aborted
// forked, aborted
iterator unapplied_begin() { return queue.get<by_type>().begin(); }
iterator unapplied_end() { return queue.get<by_type>().upper_bound( trx_enum_type::aborted ); }
iterator persisted_begin() { return queue.get<by_type>().lower_bound( trx_enum_type::persisted ); }
iterator persisted_end() { return queue.get<by_type>().upper_bound( trx_enum_type::persisted ); }
iterator incoming_begin() { return queue.get<by_type>().lower_bound( trx_enum_type::incoming_persisted ); }
iterator incoming_begin() { return queue.get<by_type>().lower_bound( trx_enum_type::incoming_api ); }
iterator incoming_end() { return queue.get<by_type>().end(); } // if changed to upper_bound, verify usage performance
iterator lower_bound( const transaction_id_type& id ) {
auto itr = queue.get<by_trx_id>().find( id );
if( itr == queue.get<by_trx_id>().end() ) return queue.get<by_type>().end();
return queue.project<by_type>(itr);
}
/// caller's responsibility to call next() if applicable
iterator erase( iterator itr ) {
removed( itr );
@@ -217,7 +200,7 @@ private:
template<typename Itr>
void added( Itr itr ) {
auto size = calc_size( itr->trx_meta );
if( itr->trx_type == trx_enum_type::incoming || itr->trx_type == trx_enum_type::incoming_persisted ) {
if( itr->trx_type == trx_enum_type::incoming_p2p || itr->trx_type == trx_enum_type::incoming_api ) {
++incoming_count;
EOS_ASSERT( size_in_bytes + size < max_transaction_queue_size, tx_resource_exhaustion,
"Transaction ${id}, size ${s} bytes would exceed configured "
@@ -230,7 +213,7 @@ private:
template<typename Itr>
void removed( Itr itr ) {
if( itr->trx_type == trx_enum_type::incoming || itr->trx_type == trx_enum_type::incoming_persisted ) {
if( itr->trx_type == trx_enum_type::incoming_p2p || itr->trx_type == trx_enum_type::incoming_api ) {
--incoming_count;
}
size_in_bytes -= calc_size( itr->trx_meta );
@@ -332,7 +332,7 @@ namespace eosio { namespace chain { namespace wasm_validations {
public:
wasm_binary_validation( const eosio::chain::controller& control, IR::Module& mod ) : _module( &mod ) {
// initialize validators here
nested_validator::init(!control.is_producing_block());
nested_validator::init(!control.is_speculative_block());
}
void validate() {
@@ -45,6 +45,9 @@ namespace eosio { namespace chain {
wasm_interface(vm_type vm, bool eosvmoc_tierup, const chainbase::database& d, const boost::filesystem::path data_dir, const eosvmoc::config& eosvmoc_config, bool profile);
~wasm_interface();
// initialize exec per thread
void init_thread_local_data();
//call before dtor to skip what can be minutes of dtor overhead with some runtimes; can cause leaks
void indicate_shutting_down();
@@ -63,12 +66,16 @@ namespace eosio { namespace chain {
//Immediately exits currently running wasm. UB is called when no wasm running
void exit();
//Returns true if the code is cached
bool is_code_cached(const digest_type& code_hash, const uint8_t& vm_type, const uint8_t& vm_version) const;
// If substitute_apply is set, then apply calls it before doing anything else. If substitute_apply returns true,
// then apply returns immediately.
std::function<bool(
const digest_type& code_hash, uint8_t vm_type, uint8_t vm_version, apply_context& context)> substitute_apply;
private:
unique_ptr<struct wasm_interface_impl> my;
vm_type vm;
};
} } // eosio::chain
@@ -50,11 +50,21 @@ namespace eosio { namespace chain {
#ifdef EOSIO_EOS_VM_OC_RUNTIME_ENABLED
struct eosvmoc_tier {
eosvmoc_tier(const boost::filesystem::path& d, const eosvmoc::config& c, const chainbase::database& db)
: cc(d, c, db), exec(cc),
mem(wasm_constraints::maximum_linear_memory/wasm_constraints::wasm_page_size) {}
: cc(d, c, db) {
// construct exec for the main thread
init_thread_local_data();
}
// Support multi-threaded execution.
void init_thread_local_data() {
exec = std::make_unique<eosvmoc::executor>(cc);
}
eosvmoc::code_cache_async cc;
eosvmoc::executor exec;
eosvmoc::memory mem;
// Each thread requires its own exec and mem. Defined in wasm_interface.cpp
thread_local static std::unique_ptr<eosvmoc::executor> exec;
thread_local static eosvmoc::memory mem;
};
#endif
@@ -94,6 +104,11 @@ namespace eosio { namespace chain {
});
}
bool is_code_cached(const digest_type& code_hash, const uint8_t& vm_type, const uint8_t& vm_version) const {
wasm_cache_index::iterator it = wasm_instantiation_cache.find( boost::make_tuple(code_hash, vm_type, vm_version) );
return it != wasm_instantiation_cache.end();
}
std::vector<uint8_t> parse_initial_memory(const Module& module) {
std::vector<uint8_t> mem_image;
@@ -1,6 +1,7 @@
#pragma once
#include <vector>
#include <string>
#include <stdint.h>
namespace eosio { namespace chain {
@@ -34,11 +34,16 @@ class eosvmoc_runtime : public eosio::chain::wasm_runtime_interface {
const digest_type& code_hash, const uint8_t& vm_type, const uint8_t& vm_version) override;
void immediately_exit_currently_running_module() override;
void init_thread_local_data() override;
friend eosvmoc_instantiated_module;
eosvmoc::code_cache_sync cc;
eosvmoc::executor exec;
eosvmoc::memory mem;
// Defined in eos-vm-oc.cpp. Used for non-main thread in multi-threaded execution
thread_local static std::unique_ptr<eosvmoc::executor> exec_thread_local;
thread_local static eosvmoc::memory mem_thread_local;
};
/**
@@ -349,7 +354,13 @@ auto fn(A... a) {
: "cc");
}
using native_args = vm::flatten_parameters_t<AUTO_PARAM_WORKAROUND(F)>;
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-value"
// If a is unpopulated, this reports "statement has no effect [-Werror=unused-value]"
eosio::vm::native_value stack[] = { a... };
#pragma GCC diagnostic pop
constexpr int cb_ctx_ptr_offset = OFFSET_OF_CONTROL_BLOCK_MEMBER(ctx);
apply_context* ctx;
asm("mov %%gs:%c[applyContextOffset], %[cPtr]\n"
@@ -385,7 +396,7 @@ void register_eosvm_oc(Name n) {
if(n == BOOST_HANA_STRING("env.eosio_exit")) return;
constexpr auto fn = create_function<F, Preconditions, injected>();
constexpr auto index = find_intrinsic_index(n.c_str());
intrinsic the_intrinsic(
[[maybe_unused]] intrinsic the_intrinsic(
n.c_str(),
wasm_function_type_provider<std::remove_pointer_t<decltype(fn)>>::type(),
reinterpret_cast<void*>(fn),
@@ -15,6 +15,7 @@
#include <thread>
#include <shared_mutex>
namespace std {
template<> struct hash<eosio::chain::eosvmoc::code_tuple> {
@@ -84,6 +85,9 @@ class code_cache_base {
template <typename T>
void serialize_cache_index(fc::datastream<T>& ds);
std::thread::id _main_thread_id;
bool is_main_thread() const;
};
class code_cache_async : public code_cache_base {
@@ -114,4 +118,4 @@ class code_cache_sync : public code_cache_base {
const code_descriptor* const get_descriptor_for_code_sync(const digest_type& code_id, const uint8_t& vm_version);
};
}}}
}}}
@@ -50,7 +50,9 @@ class memory {
// The maximum amount of data that PIC code can include in the prologue
static constexpr uintptr_t max_prologue_size = mutable_global_size + table_size;
static_assert(-cb_offset == EOS_VM_OC_CONTROL_BLOCK_OFFSET, "EOS VM OC control block offset has slid out of place somehow");
// Changed from -cb_offset == EOS_VM_OC_CONTROL_BLOCK_OFFSET to get around
// of compile warning about comparing integers of different signedness
static_assert(EOS_VM_OC_CONTROL_BLOCK_OFFSET + cb_offset == 0, "EOS VM OC control block offset has slid out of place somehow");
static_assert(stride == EOS_VM_OC_MEMORY_STRIDE, "EOS VM OC memory stride has slid out of place somehow");
private:
@@ -844,7 +844,7 @@ namespace webassembly {
/**
* Find the table row in a primary 64-bit integer index table that matches the lowerbound condition for a given primary key.
* Lowerbound record is the first nearest record which primary key is <= the given key.
* Lowerbound record is the first nearest record which primary key is >= the given key.
*
* @ingroup database primary-index
* @param code - the name of the owner of the table.
@@ -954,7 +954,7 @@ namespace webassembly {
/**
* Find the table row in a secondary 64-bit integer index table that matches the lowerbound condition for a given secondary key.
* Lowerbound secondary index is the first secondary index which key is <= the given secondary index key.
* Lowerbound secondary index is the first secondary index which key is >= the given secondary index key.
*
* @ingroup database uint64_t-secondary-index
* @param code - the name of the owner of the table.
@@ -1095,7 +1095,7 @@ namespace webassembly {
/**
* Find the table row in a secondary 128-bit integer index table that matches the lowerbound condition for a given secondary key.
* Lowerbound secondary index is the first secondary index which key is <= the given secondary index key.
* Lowerbound secondary index is the first secondary index which key is >= the given secondary index key.
*
* @ingroup database uint128_t-secondary-index
* @param code - the name of the owner of the table.
@@ -1236,7 +1236,7 @@ namespace webassembly {
/**
* Find the table row in a secondary 256-bit integer index table that matches the lowerbound condition for a given secondary key.
* Lowerbound secondary index is the first secondary index which key is <= the given secondary index key.
* Lowerbound secondary index is the first secondary index which key is >= the given secondary index key.
*
* @ingroup database 256-bit-secondary-index
* @param code - the name of the owner of the table.
@@ -1380,7 +1380,7 @@ namespace webassembly {
/**
* Find the table row in a secondary double-precision floating-point index table that matches the lowerbound condition for a given secondary key.
* Lowerbound secondary index is the first secondary index which key is <= the given secondary index key.
* Lowerbound secondary index is the first secondary index which key is >= the given secondary index key.
*
* @ingroup database double-secondary-index
* @param code - the name of the owner of the table.
@@ -1524,7 +1524,7 @@ namespace webassembly {
/**
* Find the table row in a secondary quadruple-precision floating-point index table that matches the lowerbound condition for a given secondary key.
* Lowerbound secondary index is the first secondary index which key is <= the given secondary index key.
* Lowerbound secondary index is the first secondary index which key is >= the given secondary index key.
*
* @ingroup database long-double-secondary-index
* @param code - the name of the owner of the table.
@@ -27,6 +27,9 @@ class wasm_runtime_interface {
virtual void immediately_exit_currently_running_module() = 0;
virtual ~wasm_runtime_interface();
// eosvmoc_runtime needs this
virtual void init_thread_local_data() {};
};
}}
+1 -1
View File
@@ -32,7 +32,7 @@ bool is_canonical_right(const digest_type& val) {
}
digest_type merkle(vector<digest_type> ids) {
digest_type merkle(deque<digest_type> ids) {
if( 0 == ids.size() ) { return digest_type(); }
while( ids.size() > 1 ) {
View File
@@ -28,6 +28,7 @@ platform_timer::platform_timer() {
if(refcount++ == 0) {
std::promise<void> p;
auto f = p.get_future();
checktime_thread = std::thread([&p]() {
fc::set_os_thread_name("checktime");
checktime_ios = std::make_unique<boost::asio::io_service>();
@@ -36,7 +37,7 @@ platform_timer::platform_timer() {
checktime_ios->run();
});
p.get_future().get();
f.get();
}
my->timer = std::make_unique<boost::asio::high_resolution_timer>(*checktime_ios);
@@ -64,11 +65,12 @@ void platform_timer::start(fc::time_point tp) {
else {
#if 0
std::promise<void> p;
auto f = p.get_future();
checktime_ios->post([&p,this]() {
expired = 0;
p.set_value();
});
p.get_future().get();
f.get();
#endif
expired = 0;
my->timer->expires_after(std::chrono::microseconds(x.count()));
View File
+202 -2
View File
@@ -4,6 +4,7 @@
#include <eosio/chain/deep_mind.hpp>
#include <fc/scoped_exit.hpp>
#include <fc/io/json.hpp>
#include <algorithm>
#include <boost/assign/list_of.hpp>
@@ -568,7 +569,7 @@ Enables new `get_block_num` intrinsic which returns the current block number.
protocol_feature_manager::protocol_feature_manager(
protocol_feature_set&& pfs,
std::function<deep_mind_handler*()> get_deep_mind_logger
std::function<deep_mind_handler*(bool is_trx_transient)> get_deep_mind_logger
):_protocol_feature_set( std::move(pfs) ), _get_deep_mind_logger(get_deep_mind_logger)
{
_builtin_protocol_features.resize( _protocol_feature_set._recognized_builtin_protocol_features.size() );
@@ -749,7 +750,8 @@ Enables new `get_block_num` intrinsic which returns the current block number.
("digest", feature_digest)
);
if (auto dm_logger = _get_deep_mind_logger()) {
// activate_feature is called by init. no transaction specific logging is possible
if (auto dm_logger = _get_deep_mind_logger(false)) {
dm_logger->on_activate_feature(*itr);
}
@@ -778,4 +780,202 @@ Enables new `get_block_num` intrinsic which returns the current block number.
}
}
std::optional<builtin_protocol_feature> read_builtin_protocol_feature( const fc::path& p ) {
try {
return fc::json::from_file<builtin_protocol_feature>( p );
} catch( const fc::exception& e ) {
wlog( "problem encountered while reading '${path}':\n${details}",
("path", p.generic_string())("details",e.to_detail_string()) );
} catch( ... ) {
dlog( "unknown problem encountered while reading '${path}'",
("path", p.generic_string()) );
}
return {};
}
protocol_feature_set initialize_protocol_features( const fc::path& p, bool populate_missing_builtins ) {
using boost::filesystem::directory_iterator;
protocol_feature_set pfs;
bool directory_exists = true;
if( fc::exists( p ) ) {
EOS_ASSERT( fc::is_directory( p ), plugin_exception,
"Path to protocol-features is not a directory: ${path}",
("path", p.generic_string())
);
} else {
if( populate_missing_builtins )
boost::filesystem::create_directories( p );
else
directory_exists = false;
}
auto log_recognized_protocol_feature = []( const builtin_protocol_feature& f, const digest_type& feature_digest ) {
if( f.subjective_restrictions.enabled ) {
if( f.subjective_restrictions.preactivation_required ) {
if( f.subjective_restrictions.earliest_allowed_activation_time == time_point{} ) {
ilog( "Support for builtin protocol feature '${codename}' (with digest of '${digest}') is enabled with preactivation required",
("codename", builtin_protocol_feature_codename(f.get_codename()))
("digest", feature_digest)
);
} else {
ilog( "Support for builtin protocol feature '${codename}' (with digest of '${digest}') is enabled with preactivation required and with an earliest allowed activation time of ${earliest_time}",
("codename", builtin_protocol_feature_codename(f.get_codename()))
("digest", feature_digest)
("earliest_time", f.subjective_restrictions.earliest_allowed_activation_time)
);
}
} else {
if( f.subjective_restrictions.earliest_allowed_activation_time == time_point{} ) {
ilog( "Support for builtin protocol feature '${codename}' (with digest of '${digest}') is enabled without activation restrictions",
("codename", builtin_protocol_feature_codename(f.get_codename()))
("digest", feature_digest)
);
} else {
ilog( "Support for builtin protocol feature '${codename}' (with digest of '${digest}') is enabled without preactivation required but with an earliest allowed activation time of ${earliest_time}",
("codename", builtin_protocol_feature_codename(f.get_codename()))
("digest", feature_digest)
("earliest_time", f.subjective_restrictions.earliest_allowed_activation_time)
);
}
}
} else {
ilog( "Recognized builtin protocol feature '${codename}' (with digest of '${digest}') but support for it is not enabled",
("codename", builtin_protocol_feature_codename(f.get_codename()))
("digest", feature_digest)
);
}
};
map<builtin_protocol_feature_t, fc::path> found_builtin_protocol_features;
map<digest_type, std::pair<builtin_protocol_feature, bool> > builtin_protocol_features_to_add;
// The bool in the pair is set to true if the builtin protocol feature has already been visited to add
map< builtin_protocol_feature_t, std::optional<digest_type> > visited_builtins;
// Read all builtin protocol features
if( directory_exists ) {
for( directory_iterator enditr, itr{p}; itr != enditr; ++itr ) {
auto file_path = itr->path();
if( !fc::is_regular_file( file_path ) || file_path.extension().generic_string().compare( ".json" ) != 0 )
continue;
auto f = read_builtin_protocol_feature( file_path );
if( !f ) continue;
auto res = found_builtin_protocol_features.emplace( f->get_codename(), file_path );
EOS_ASSERT( res.second, plugin_exception,
"Builtin protocol feature '${codename}' was already included from a previous_file",
("codename", builtin_protocol_feature_codename(f->get_codename()))
("current_file", file_path.generic_string())
("previous_file", res.first->second.generic_string())
);
const auto feature_digest = f->digest();
builtin_protocol_features_to_add.emplace( std::piecewise_construct,
std::forward_as_tuple( feature_digest ),
std::forward_as_tuple( *f, false ) );
}
}
// Add builtin protocol features to the protocol feature manager in the right order (to satisfy dependencies)
using itr_type = map<digest_type, std::pair<builtin_protocol_feature, bool>>::iterator;
std::function<void(const itr_type&)> add_protocol_feature =
[&pfs, &builtin_protocol_features_to_add, &visited_builtins, &log_recognized_protocol_feature, &add_protocol_feature]( const itr_type& itr ) -> void {
if( itr->second.second ) {
return;
} else {
itr->second.second = true;
visited_builtins.emplace( itr->second.first.get_codename(), itr->first );
}
for( const auto& d : itr->second.first.dependencies ) {
auto itr2 = builtin_protocol_features_to_add.find( d );
if( itr2 != builtin_protocol_features_to_add.end() ) {
add_protocol_feature( itr2 );
}
}
pfs.add_feature( itr->second.first );
log_recognized_protocol_feature( itr->second.first, itr->first );
};
for( auto itr = builtin_protocol_features_to_add.begin(); itr != builtin_protocol_features_to_add.end(); ++itr ) {
add_protocol_feature( itr );
}
auto output_protocol_feature = [&p]( const builtin_protocol_feature& f, const digest_type& feature_digest ) {
string filename( "BUILTIN-" );
filename += builtin_protocol_feature_codename( f.get_codename() );
filename += ".json";
auto file_path = p / filename;
EOS_ASSERT( !fc::exists( file_path ), plugin_exception,
"Could not save builtin protocol feature with codename '${codename}' because a file at the following path already exists: ${path}",
("codename", builtin_protocol_feature_codename( f.get_codename() ))
("path", file_path.generic_string())
);
if( fc::json::save_to_file( f, file_path ) ) {
ilog( "Saved default specification for builtin protocol feature '${codename}' (with digest of '${digest}') to: ${path}",
("codename", builtin_protocol_feature_codename(f.get_codename()))
("digest", feature_digest)
("path", file_path.generic_string())
);
} else {
elog( "Error occurred while writing default specification for builtin protocol feature '${codename}' (with digest of '${digest}') to: ${path}",
("codename", builtin_protocol_feature_codename(f.get_codename()))
("digest", feature_digest)
("path", file_path.generic_string())
);
}
};
std::function<digest_type(builtin_protocol_feature_t)> add_missing_builtins =
[&pfs, &visited_builtins, &output_protocol_feature, &log_recognized_protocol_feature, &add_missing_builtins, populate_missing_builtins]
( builtin_protocol_feature_t codename ) -> digest_type {
auto res = visited_builtins.emplace( codename, std::optional<digest_type>() );
if( !res.second ) {
EOS_ASSERT( res.first->second, protocol_feature_exception,
"invariant failure: cycle found in builtin protocol feature dependencies"
);
return *res.first->second;
}
auto f = protocol_feature_set::make_default_builtin_protocol_feature( codename,
[&add_missing_builtins]( builtin_protocol_feature_t d ) {
return add_missing_builtins( d );
} );
if( !populate_missing_builtins )
f.subjective_restrictions.enabled = false;
const auto& pf = pfs.add_feature( f );
res.first->second = pf.feature_digest;
log_recognized_protocol_feature( f, pf.feature_digest );
if( populate_missing_builtins )
output_protocol_feature( f, pf.feature_digest );
return pf.feature_digest;
};
for( const auto& p : builtin_protocol_feature_codenames ) {
auto itr = found_builtin_protocol_features.find( p.first );
if( itr != found_builtin_protocol_features.end() ) continue;
add_missing_builtins( p.first );
}
return pfs;
}
} } // eosio::chain
+49 -20
View File
@@ -65,7 +65,8 @@ void resource_limits_manager::initialize_database() {
state.virtual_net_limit = config.net_limit_parameters.max;
});
if (auto dm_logger = _get_deep_mind_logger()) {
// At startup, no transaction specific logging is possible
if (auto dm_logger = _get_deep_mind_logger(false)) {
dm_logger->on_init_resource_limits(config, state);
}
}
@@ -93,7 +94,7 @@ void resource_limits_manager::read_from_snapshot( const snapshot_reader_ptr& sna
});
}
void resource_limits_manager::initialize_account(const account_name& account) {
void resource_limits_manager::initialize_account(const account_name& account, bool is_trx_transient) {
const auto& limits = _db.create<resource_limits_object>([&]( resource_limits_object& bl ) {
bl.owner = account;
});
@@ -101,7 +102,7 @@ void resource_limits_manager::initialize_account(const account_name& account) {
const auto& usage = _db.create<resource_usage_object>([&]( resource_usage_object& bu ) {
bu.owner = account;
});
if (auto dm_logger = _get_deep_mind_logger()) {
if (auto dm_logger = _get_deep_mind_logger(is_trx_transient)) {
dm_logger->on_newaccount_resource_limits(limits, usage);
}
}
@@ -116,7 +117,9 @@ void resource_limits_manager::set_block_parameters(const elastic_limit_parameter
c.cpu_limit_parameters = cpu_limit_parameters;
c.net_limit_parameters = net_limit_parameters;
if (auto dm_logger = _get_deep_mind_logger()) {
// set_block_parameters is called by controller::finalize_block,
// where transaction specific logging is not possible
if (auto dm_logger = _get_deep_mind_logger(false)) {
dm_logger->on_update_resource_limits_config(c);
}
});
@@ -133,7 +136,7 @@ void resource_limits_manager::update_account_usage(const flat_set<account_name>&
}
}
void resource_limits_manager::add_transaction_usage(const flat_set<account_name>& accounts, uint64_t cpu_usage, uint64_t net_usage, uint32_t time_slot ) {
void resource_limits_manager::add_transaction_usage(const flat_set<account_name>& accounts, uint64_t cpu_usage, uint64_t net_usage, uint32_t time_slot, bool is_trx_transient ) {
const auto& state = _db.get<resource_limits_state_object>();
const auto& config = _db.get<resource_limits_config_object>();
@@ -149,7 +152,7 @@ void resource_limits_manager::add_transaction_usage(const flat_set<account_name>
bu.net_usage.add( net_usage, time_slot, config.account_net_usage_average_window );
bu.cpu_usage.add( cpu_usage, time_slot, config.account_cpu_usage_average_window );
if (auto dm_logger = _get_deep_mind_logger()) {
if (auto dm_logger = _get_deep_mind_logger(is_trx_transient)) {
dm_logger->on_update_account_usage(bu);
}
});
@@ -166,8 +169,9 @@ void resource_limits_manager::add_transaction_usage(const flat_set<account_name>
EOS_ASSERT( cpu_used_in_window <= max_user_use_in_window,
tx_cpu_usage_exceeded,
"authorizing account '${n}' has insufficient cpu resources for this transaction",
("n", name(a))
"authorizing account '${n}' has insufficient objective cpu resources for this transaction,"
" used in window ${cpu_used_in_window}us, allowed in window ${max_user_use_in_window}us",
("n", a)
("cpu_used_in_window",cpu_used_in_window)
("max_user_use_in_window",max_user_use_in_window) );
}
@@ -185,8 +189,9 @@ void resource_limits_manager::add_transaction_usage(const flat_set<account_name>
EOS_ASSERT( net_used_in_window <= max_user_use_in_window,
tx_net_usage_exceeded,
"authorizing account '${n}' has insufficient net resources for this transaction",
("n", name(a))
"authorizing account '${n}' has insufficient net resources for this transaction,"
" used in window ${net_used_in_window}, allowed in window ${max_user_use_in_window}",
("n", a)
("net_used_in_window",net_used_in_window)
("max_user_use_in_window",max_user_use_in_window) );
@@ -203,7 +208,7 @@ void resource_limits_manager::add_transaction_usage(const flat_set<account_name>
EOS_ASSERT( state.pending_net_usage <= config.net_limit_parameters.max, block_resource_exhausted, "Block has insufficient net resources" );
}
void resource_limits_manager::add_pending_ram_usage( const account_name account, int64_t ram_delta ) {
void resource_limits_manager::add_pending_ram_usage( const account_name account, int64_t ram_delta, bool is_trx_transient ) {
if (ram_delta == 0) {
return;
}
@@ -218,7 +223,7 @@ void resource_limits_manager::add_pending_ram_usage( const account_name account,
_db.modify( usage, [&]( auto& u ) {
u.ram_usage += ram_delta;
if (auto dm_logger = _get_deep_mind_logger()) {
if (auto dm_logger = _get_deep_mind_logger(is_trx_transient)) {
dm_logger->on_ram_event(account, u.ram_usage, ram_delta);
}
});
@@ -241,7 +246,7 @@ int64_t resource_limits_manager::get_account_ram_usage( const account_name& name
}
bool resource_limits_manager::set_account_limits( const account_name& account, int64_t ram_bytes, int64_t net_weight, int64_t cpu_weight) {
bool resource_limits_manager::set_account_limits( const account_name& account, int64_t ram_bytes, int64_t net_weight, int64_t cpu_weight, bool is_trx_transient) {
//const auto& usage = _db.get<resource_usage_object,by_owner>( account );
/*
* Since we need to delay these until the next resource limiting boundary, these are created in a "pending"
@@ -287,7 +292,7 @@ bool resource_limits_manager::set_account_limits( const account_name& account, i
pending_limits.net_weight = net_weight;
pending_limits.cpu_weight = cpu_weight;
if (auto dm_logger = _get_deep_mind_logger()) {
if (auto dm_logger = _get_deep_mind_logger(is_trx_transient)) {
dm_logger->on_set_account_limits(pending_limits);
}
});
@@ -354,7 +359,9 @@ void resource_limits_manager::process_account_limit_updates() {
multi_index.remove(*itr);
}
if (auto dm_logger = _get_deep_mind_logger()) {
// process_account_limit_updates is called by controller::finalize_block,
// where transaction specific logging is not possible
if (auto dm_logger = _get_deep_mind_logger(false)) {
dm_logger->on_update_resource_limits_state(state);
}
});
@@ -374,7 +381,9 @@ void resource_limits_manager::process_block_usage(uint32_t block_num) {
state.update_virtual_net_limit(config);
state.pending_net_usage = 0;
if (auto dm_logger = _get_deep_mind_logger()) {
// process_block_usage is called by controller::finalize_block,
// where transaction specific logging is not possible
if (auto dm_logger = _get_deep_mind_logger(false)) {
dm_logger->on_update_resource_limits_state(state);
}
});
@@ -418,7 +427,8 @@ std::pair<int64_t, bool> resource_limits_manager::get_account_cpu_limit( const a
return {arl.available, greylisted};
}
std::pair<account_resource_limit, bool> resource_limits_manager::get_account_cpu_limit_ex( const account_name& name, uint32_t greylist_limit ) const {
std::pair<account_resource_limit, bool>
resource_limits_manager::get_account_cpu_limit_ex( const account_name& name, uint32_t greylist_limit, const std::optional<block_timestamp_type>& current_time) const {
const auto& state = _db.get<resource_limits_state_object>();
const auto& usage = _db.get<resource_usage_object, by_owner>(name);
@@ -428,7 +438,7 @@ std::pair<account_resource_limit, bool> resource_limits_manager::get_account_cpu
get_account_limits( name, x, y, cpu_weight );
if( cpu_weight < 0 || state.total_cpu_weight == 0 ) {
return {{ -1, -1, -1 }, false};
return {{ -1, -1, -1, block_timestamp_type(usage.cpu_usage.last_ordinal), -1 }, false};
}
account_resource_limit arl;
@@ -462,6 +472,15 @@ std::pair<account_resource_limit, bool> resource_limits_manager::get_account_cpu
arl.used = impl::downgrade_cast<int64_t>(cpu_used_in_window);
arl.max = impl::downgrade_cast<int64_t>(max_user_use_in_window);
arl.last_usage_update_time = block_timestamp_type(usage.cpu_usage.last_ordinal);
arl.current_used = arl.used;
if ( current_time ) {
if (current_time->slot > usage.cpu_usage.last_ordinal) {
auto history_usage = usage.cpu_usage;
history_usage.add(0, current_time->slot, window_size);
arl.current_used = impl::downgrade_cast<int64_t>(impl::integer_divide_ceil((uint128_t)history_usage.value_ex * window_size, (uint128_t)config::rate_limiting_precision));
}
}
return {arl, greylisted};
}
@@ -470,7 +489,8 @@ std::pair<int64_t, bool> resource_limits_manager::get_account_net_limit( const a
return {arl.available, greylisted};
}
std::pair<account_resource_limit, bool> resource_limits_manager::get_account_net_limit_ex( const account_name& name, uint32_t greylist_limit ) const {
std::pair<account_resource_limit, bool>
resource_limits_manager::get_account_net_limit_ex( const account_name& name, uint32_t greylist_limit, const std::optional<block_timestamp_type>& current_time) const {
const auto& config = _db.get<resource_limits_config_object>();
const auto& state = _db.get<resource_limits_state_object>();
const auto& usage = _db.get<resource_usage_object, by_owner>(name);
@@ -479,7 +499,7 @@ std::pair<account_resource_limit, bool> resource_limits_manager::get_account_net
get_account_limits( name, x, net_weight, y );
if( net_weight < 0 || state.total_net_weight == 0) {
return {{ -1, -1, -1 }, false};
return {{ -1, -1, -1, block_timestamp_type(usage.net_usage.last_ordinal), -1 }, false};
}
account_resource_limit arl;
@@ -513,6 +533,15 @@ std::pair<account_resource_limit, bool> resource_limits_manager::get_account_net
arl.used = impl::downgrade_cast<int64_t>(net_used_in_window);
arl.max = impl::downgrade_cast<int64_t>(max_user_use_in_window);
arl.last_usage_update_time = block_timestamp_type(usage.net_usage.last_ordinal);
arl.current_used = arl.used;
if ( current_time ) {
if (current_time->slot > usage.net_usage.last_ordinal) {
auto history_usage = usage.net_usage;
history_usage.add(0, current_time->slot, window_size);
arl.current_used = impl::downgrade_cast<int64_t>(impl::integer_divide_ceil((uint128_t)history_usage.value_ex * window_size, (uint128_t)config::rate_limiting_precision));
}
}
return {arl, greylisted};
}
+134 -49
View File
@@ -1,6 +1,16 @@
#define RAPIDJSON_NAMESPACE eosio_rapidjson // This is ABSOLUTELY necessary anywhere that is using eosio_rapidjson
#include <eosio/chain/snapshot.hpp>
#include <eosio/chain/exceptions.hpp>
#include <fc/scoped_exit.hpp>
#include <fc/io/json.hpp>
#include <rapidjson/document.h>
#include <rapidjson/filereadstream.h>
#include <rapidjson/stringbuffer.h>
#include <rapidjson/writer.h>
using namespace eosio_rapidjson;
namespace eosio { namespace chain {
@@ -76,17 +86,6 @@ void variant_snapshot_reader::validate() const {
}
}
bool variant_snapshot_reader::has_section( const string& section_name ) {
const auto& sections = snapshot["sections"].get_array();
for( const auto& section: sections ) {
if (section["name"].as_string() == section_name) {
return true;
}
}
return false;
}
void variant_snapshot_reader::set_section( const string& section_name ) {
const auto& sections = snapshot["sections"].get_array();
for( const auto& section: sections ) {
@@ -190,6 +189,45 @@ void ostream_snapshot_writer::finalize() {
snapshot.write((char*)&end_marker, sizeof(end_marker));
}
ostream_json_snapshot_writer::ostream_json_snapshot_writer(std::ostream& snapshot)
:snapshot(snapshot)
,row_count(0)
{
snapshot << "{\n";
// write magic number
auto totem = magic_number;
snapshot << "\"magic_number\":" << fc::json::to_string(totem, fc::time_point::maximum()) << "\n";
// write version
auto version = current_snapshot_version;
snapshot << ",\"version\":" << fc::json::to_string(version, fc::time_point::maximum()) << "\n";
}
void ostream_json_snapshot_writer::write_start_section( const std::string& section_name )
{
row_count = 0;
snapshot.inner << "," << fc::json::to_string(section_name, fc::time_point::maximum()) << ":{\n\"rows\":[\n";
}
void ostream_json_snapshot_writer::write_row( const detail::abstract_snapshot_row_writer& row_writer ) {
const auto yield = [&](size_t s) {};
if(row_count != 0) snapshot.inner << ",";
snapshot.inner << fc::json::to_string(row_writer.to_variant(), yield) << "\n";
++row_count;
}
void ostream_json_snapshot_writer::write_end_section( ) {
snapshot.inner << "],\n\"num_rows\":" << row_count << "\n}\n";
row_count = 0;
}
void ostream_json_snapshot_writer::finalize() {
snapshot.inner << "}\n";
snapshot.inner.flush();
}
istream_snapshot_reader::istream_snapshot_reader(std::istream& snapshot)
:snapshot(snapshot)
,header_pos(snapshot.tellg())
@@ -246,44 +284,6 @@ bool istream_snapshot_reader::validate_section() const {
return true;
}
bool istream_snapshot_reader::has_section( const string& section_name ) {
auto restore_pos = fc::make_scoped_exit([this,pos=snapshot.tellg()](){
snapshot.seekg(pos);
});
const std::streamoff header_size = sizeof(ostream_snapshot_writer::magic_number) + sizeof(current_snapshot_version);
auto next_section_pos = header_pos + header_size;
while (true) {
snapshot.seekg(next_section_pos);
uint64_t section_size = 0;
snapshot.read((char*)&section_size,sizeof(section_size));
if (section_size == std::numeric_limits<uint64_t>::max()) {
break;
}
next_section_pos = snapshot.tellg() + std::streamoff(section_size);
uint64_t ignore = 0;
snapshot.read((char*)&ignore,sizeof(ignore));
bool match = true;
for(auto c : section_name) {
if(snapshot.get() != c) {
match = false;
break;
}
}
if (match && snapshot.get() == 0) {
return true;
}
}
return false;
}
void istream_snapshot_reader::set_section( const string& section_name ) {
auto restore_pos = fc::make_scoped_exit([this,pos=snapshot.tellg()](){
snapshot.seekg(pos);
@@ -346,6 +346,91 @@ void istream_snapshot_reader::return_to_header() {
clear_section();
}
struct istream_json_snapshot_reader_impl {
uint64_t num_rows;
uint64_t cur_row;
eosio_rapidjson::Document doc;
std::string sec_name;
};
istream_json_snapshot_reader::~istream_json_snapshot_reader() = default;
istream_json_snapshot_reader::istream_json_snapshot_reader(const fc::path& p)
: impl{new istream_json_snapshot_reader_impl{0, 0, {}, {}}}
{
FILE* fp = fopen(p.string().c_str(), "rb");
EOS_ASSERT(fp, snapshot_exception, "Failed to open JSON snapshot: ${file}", ("file", p));
auto close = fc::make_scoped_exit( [&fp]() { fclose( fp ); } );
char readBuffer[65536];
eosio_rapidjson::FileReadStream is(fp, readBuffer, sizeof(readBuffer));
impl->doc.ParseStream(is);
}
void istream_json_snapshot_reader::validate() const {
try {
// validate totem
auto expected_totem = ostream_json_snapshot_writer::magic_number;
EOS_ASSERT(impl->doc.HasMember("magic_number"), snapshot_exception, "magic_number section not found" );
auto actual_totem = impl->doc["magic_number"].GetUint();
EOS_ASSERT( actual_totem == expected_totem, snapshot_exception, "JSON snapshot has unexpected magic number" );
// validate version
auto expected_version = current_snapshot_version;
EOS_ASSERT(impl->doc.HasMember("version"), snapshot_exception, "version section not found" );
auto actual_version = impl->doc["version"].GetUint();
EOS_ASSERT( actual_version == expected_version, snapshot_exception,
"JSON snapshot is an unsupported version. Expected : ${expected}, Got: ${actual}",
("expected", expected_version)( "actual", actual_version ) );
} catch( const std::exception& e ) { \
snapshot_exception fce(FC_LOG_MESSAGE( warn, "JSON snapshot validation threw IO exception (${what})",("what",e.what())));
throw fce;
}
}
bool istream_json_snapshot_reader::validate_section() const {
return true;
}
void istream_json_snapshot_reader::set_section( const string& section_name ) {
EOS_ASSERT( impl->doc.HasMember( section_name.c_str() ), snapshot_exception, "JSON snapshot has no section ${sec}", ("sec", section_name) );
EOS_ASSERT( impl->doc[section_name.c_str()].HasMember( "num_rows" ), snapshot_exception, "JSON snapshot ${sec} num_rows not found", ("sec", section_name) );
EOS_ASSERT( impl->doc[section_name.c_str()].HasMember( "rows" ), snapshot_exception, "JSON snapshot ${sec} rows not found", ("sec", section_name) );
EOS_ASSERT( impl->doc[section_name.c_str()]["rows"].IsArray(), snapshot_exception, "JSON snapshot ${sec} rows is not an array", ("sec_name", section_name) );
impl->sec_name = section_name;
impl->num_rows = impl->doc[section_name.c_str()]["num_rows"].GetInt();
ilog( "reading ${section_name}, num_rows: ${num_rows}", ("section_name", section_name)( "num_rows", impl->num_rows ) );
}
bool istream_json_snapshot_reader::read_row( detail::abstract_snapshot_row_reader& row_reader ) {
EOS_ASSERT( impl->cur_row < impl->num_rows, snapshot_exception, "JSON snapshot ${sect}'s cur_row ${cur_row} >= num_rows ${num_rows}",
("sect_name", impl->sec_name)( "cur_row", impl->cur_row )( "num_rows", impl->num_rows ) );
const eosio_rapidjson::Value& rows = impl->doc[impl->sec_name.c_str()]["rows"];
eosio_rapidjson::StringBuffer buffer;
eosio_rapidjson::Writer<eosio_rapidjson::StringBuffer> writer( buffer );
rows[impl->cur_row].Accept( writer );
const auto& row = fc::json::from_string( buffer.GetString() );
row_reader.provide( row );
return ++impl->cur_row < impl->num_rows;
}
bool istream_json_snapshot_reader::empty ( ) {
return impl->num_rows == 0;
}
void istream_json_snapshot_reader::clear_section() {
impl->num_rows = 0;
impl->cur_row = 0;
impl->sec_name = "";
}
void istream_json_snapshot_reader::return_to_header() {
clear_section();
}
integrity_hash_snapshot_writer::integrity_hash_snapshot_writer(fc::sha256::encoder& enc)
:enc(enc)
{
-36
View File
@@ -1,36 +0,0 @@
#include <eosio/chain/thread_utils.hpp>
#include <fc/log/logger_config.hpp>
namespace eosio { namespace chain {
//
// named_thread_pool
//
named_thread_pool::named_thread_pool( std::string name_prefix, size_t num_threads )
: _thread_pool( num_threads )
, _ioc( num_threads )
{
_ioc_work.emplace( boost::asio::make_work_guard( _ioc ) );
for( size_t i = 0; i < num_threads; ++i ) {
boost::asio::post( _thread_pool, [&ioc = _ioc, name_prefix, i]() {
std::string tn = name_prefix + "-" + std::to_string( i );
fc::set_os_thread_name( tn );
ioc.run();
} );
}
}
named_thread_pool::~named_thread_pool() {
stop();
}
void named_thread_pool::stop() {
_ioc_work.reset();
_ioc.stop();
_thread_pool.join();
_thread_pool.stop();
}
} } // eosio::chain
+12 -9
View File
@@ -62,16 +62,19 @@ fc::microseconds transaction::get_signature_keys( const vector<signature_type>&
{ try {
auto start = fc::time_point::now();
recovered_pub_keys.clear();
const digest_type digest = sig_digest(chain_id, cfd);
for(const signature_type& sig : signatures) {
auto now = fc::time_point::now();
EOS_ASSERT( now < deadline, tx_cpu_usage_exceeded, "transaction signature verification executed for too long ${time}us",
("time", now - start)("now", now)("deadline", deadline)("start", start) );
auto[ itr, successful_insertion ] = recovered_pub_keys.emplace( sig, digest );
EOS_ASSERT( allow_duplicate_keys || successful_insertion, tx_duplicate_sig,
"transaction includes more than one signature signed using the same key associated with public key: ${key}",
("key", *itr ) );
if ( !signatures.empty() ) {
const digest_type digest = sig_digest(chain_id, cfd);
for(const signature_type& sig : signatures) {
auto now = fc::time_point::now();
EOS_ASSERT( now < deadline, tx_cpu_usage_exceeded, "transaction signature verification executed for too long ${time}us",
("time", now - start)("now", now)("deadline", deadline)("start", start) );
auto[ itr, successful_insertion ] = recovered_pub_keys.emplace( sig, digest );
EOS_ASSERT( allow_duplicate_keys || successful_insertion, tx_duplicate_sig,
"transaction includes more than one signature signed using the same key associated with public key: ${key}",
("key", *itr ) );
}
}
return fc::time_point::now() - start;

Some files were not shown because too many files have changed in this diff Show More