Compare commits

...

638 Commits

Author SHA1 Message Date
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
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
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
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
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
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
Matt Witherspoon df9529c8d7 Merge branch 'main' into trace_api_plugin_warnings_fixes 2022-08-26 14:50:42 -04: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
Lin Huang c285e9fe97 change long remaining = loc; to auto remaining = loc; to keep the type consistent 2022-08-25 15:27:24 -04:00
Lin Huang 52dc20503b Merge branch 'main' into trace_api_plugin_warnings_fixes 2022-08-25 14:17:25 -04:00
Kevin Heifner 492aaa479b Merge branch 'main' into prod-plugin-push-trx 2022-08-25 08:51:23 -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
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
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
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
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
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 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
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
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
Lin Huang 900b2a265f change action:: to action: in the log 2022-08-12 16:09:12 -04:00
Lin Huang 19ec766fa7 Merge branch 'main' into detailed_except_info_trx_trace 2022-08-12 15:26:17 -04: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
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
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
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
Lin Huang ba3614b6da Merge branch 'main' into detailed_except_info_trx_trace 2022-08-09 16:36:46 -04: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
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
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
Clayton Calabrese b2e7127ae1 run beast_http and common through clang format. 2022-08-04 16:10:59 -05:00
Lin Huang f9b858629e Merge branch 'main' into detailed_except_info_trx_trace 2022-08-04 08:38:23 -04: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
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
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
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
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
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
345 changed files with 10956 additions and 6407 deletions
-3
View File
@@ -7,13 +7,10 @@ RUN apt-get update && apt-get upgrade -y && \
g++-8 \
git \
jq \
libcurl4-openssl-dev \
libgmp-dev \
libssl-dev \
libusb-1.0-0-dev \
llvm-7-dev \
ninja-build \
pkg-config \
python3 \
software-properties-common \
zlib1g-dev \
-3
View File
@@ -7,11 +7,8 @@ RUN apt-get update && apt-get upgrade -y && \
git \
jq \
libboost-all-dev \
libcurl4-openssl-dev \
libgmp-dev \
libssl-dev \
libusb-1.0-0-dev \
llvm-11-dev \
ninja-build \
pkg-config \
zstd
-3
View File
@@ -7,11 +7,8 @@ RUN apt-get update && apt-get upgrade -y && \
git \
jq \
libboost-all-dev \
libcurl4-openssl-dev \
libgmp-dev \
libssl-dev \
libusb-1.0-0-dev \
llvm-11-dev \
ninja-build \
pkg-config \
zstd
+37 -19
View File
@@ -57,6 +57,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')
@@ -83,23 +84,38 @@ jobs:
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]
@@ -122,9 +138,10 @@ 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
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]
@@ -145,7 +162,7 @@ jobs:
name: ${{matrix.platform}}-build
- name: Run NP Tests
run: |
zstdcat build.tar.gz | tar x
zstdcat build.tar.zst | tar x
cd build
ctest --output-on-failure -L "nonparallelizable_tests"
- name: Bundle logs from failed tests
@@ -157,6 +174,7 @@ jobs:
with:
name: ${{matrix.platform}}-serial-logs
path: ${{matrix.platform}}-serial-logs.tar.gz
lr-tests:
name: LR Tests
needs: [d, Build]
@@ -178,7 +196,7 @@ jobs:
name: ${{matrix.platform}}-build
- name: Run ${{matrix.test-name}} Test
run: |
zstdcat build.tar.gz | tar x
zstdcat build.tar.zst | tar x
cd build
ctest --output-on-failure -R ${{matrix.test-name}}
- name: Bundle logs from failed tests
@@ -193,9 +211,9 @@ jobs:
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 }}
-3
View File
@@ -13,9 +13,6 @@
[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 "tests/abieos"]
path = tests/abieos
url = https://github.com/AntelopeIO/abieos
+17 -31
View File
@@ -14,9 +14,9 @@ set( CMAKE_CXX_EXTENSIONS ON )
set( CXX_STANDARD_REQUIRED ON)
set(VERSION_MAJOR 3)
set(VERSION_MINOR 1)
set(VERSION_MINOR 2)
set(VERSION_PATCH 0)
#set(VERSION_SUFFIX rc4)
set(VERSION_SUFFIX dev)
if(VERSION_SUFFIX)
set(VERSION_FULL "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}-${VERSION_SUFFIX}")
@@ -53,7 +53,11 @@ 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)
@@ -177,6 +181,7 @@ 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)
@@ -213,32 +218,16 @@ 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(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/fc/secp256k1/secp256k1/COPYING licenses/leap/LICENSE.secp256k1 COPYONLY)
configure_file(libraries/fc/include/fc/crypto/webauthn_json/license.txt licenses/leap/LICENSE.rapidjson COPYONLY)
configure_file(libraries/fc/src/network/LICENSE.go licenses/leap/LICENSE.go COPYONLY)
configure_file(libraries/eos-vm/LICENSE licenses/leap/LICENSE.eos-vm COPYONLY)
configure_file(libraries/fc/libraries/ff/LICENSE licenses/leap/LICENSE.libff 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(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/licenses/leap" DESTINATION "${CMAKE_INSTALL_FULL_DATAROOTDIR}/licenses/" COMPONENT base)
add_custom_target(dev-install
COMMAND "${CMAKE_COMMAND}" --build "${CMAKE_BINARY_DIR}"
@@ -247,9 +236,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)
+4 -8
View File
@@ -18,7 +18,7 @@ Recent Ubuntu LTS releases are the only Linux distributions that we fully suppor
* CMake 3.8+
* (for Linux only) LLVM 7 - 11 (newer versions do not work)
A few other common libraries are tools also required such as openssl 1.1+, libcurl, curl, libusb, GMP, Python 3, and zlib.
A few other common libraries are tools also required such as openssl 1.1+, curl, GMP, Python 3, and zlib.
**A Warning On Parallel Compilation Jobs (`-j` flag)**: When building C/C++ software often the build is performed in parallel via a command such as `make -j $(nproc)` which uses the number of CPU cores as the number of compilation jobs to perform simultaneously. However, be aware that some compilation units (.cpp files) in Leap are extremely complex and will consume nearly 4GB of memory to compile. You may need to reduce the level of parallelization depending on the amount of memory on your build host. e.g. instead of `make -j $(nproc)` run `make -j2`. Failures due to memory exhaustion will typically but not always manifest as compiler crashes.
@@ -33,6 +33,8 @@ The binary package will be produced in the Leap build directory that was supplie
#### Manual (non "pinned") Build Instructions
These instructions are valid for this branch. Other release branches may have different requirements so ensure you follow the directions in the branch or release you intend to build.
<details>
<summary>Ubuntu 20.04 & 22.04 Build Instructions</summary>
@@ -44,12 +46,9 @@ apt-get update && apt-get install \
curl \
git \
libboost-all-dev \
libcurl4-openssl-dev \
libgmp-dev \
libssl-dev \
libusb-1.0-0-dev \
llvm-11-dev \
pkg-config
llvm-11-dev
```
and perform the build:
```
@@ -72,12 +71,9 @@ apt-get update && apt-get install \
curl \
g++-8 \
git \
libcurl4-openssl-dev \
libgmp-dev \
libssl-dev \
libusb-1.0-0-dev \
llvm-7-dev \
pkg-config \
python3 \
zlib1g-dev
+7
View File
@@ -0,0 +1,7 @@
file(GLOB BENCHMARK "*.cpp")
add_executable( benchmark ${BENCHMARK} )
target_link_libraries( benchmark fc Boost::program_options )
target_include_directories( benchmark PUBLIC
"${CMAKE_CURRENT_SOURCE_DIR}"
)
+123
View File
@@ -0,0 +1,123 @@
#include <iostream>
#include <fc/crypto/alt_bn128.hpp>
#include <benchmark.hpp>
namespace benchmark {
using bytes = std::vector<char>;
using g1g2_pair = std::vector<std::string>;
void add_benchmarking() {
std::vector<unsigned char> point1_raw = {
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
std::vector<unsigned char> point2_raw = {
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
bytes point1, point2;
point1.insert(point1.begin(), point1_raw.begin(), point1_raw.end());
point2.insert(point2.begin(), point2_raw.begin(), point2_raw.end());
auto f = [&]() {
auto res = fc::alt_bn128_add(point1, point2);
if (std::holds_alternative<fc::alt_bn128_error>(res)) {
std::cout << "alt_bn128_add failed: "
<< (int)std::get<fc::alt_bn128_error>(res) << std::endl;
}
};
benchmarking("alt_bn128_add", f);
}
void mul_benchmarking() {
std::vector<unsigned char> point_raw = {
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
std::vector<unsigned char> scaler_raw = {
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
bytes point, scaler;
point.insert(point.begin(), point_raw.begin(), point_raw.end());
scaler.insert(scaler.begin(), scaler_raw.begin(), scaler_raw.end());
auto f = [&]() {
auto res = fc::alt_bn128_mul(point, scaler);
if (std::holds_alternative<fc::alt_bn128_error>(res)) {
std::cout << "alt_bn128_mul failed: "
<< (int)std::get<fc::alt_bn128_error>(res) << std::endl;
}
};
benchmarking("alt_bn128_mul", f);
}
void pair_benchmarking() {
std::vector<unsigned char> g1_g2_pairs_raw = {
/* 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
bytes g1_g2_1_pair;
g1_g2_1_pair.insert(g1_g2_1_pair.begin(), g1_g2_pairs_raw.begin(), g1_g2_pairs_raw.begin() + 384);
auto f_1_pair = [&]() {
auto res = fc::alt_bn128_pair(g1_g2_1_pair, [](){});
if (std::holds_alternative<fc::alt_bn128_error>(res)) {
std::cout << "alt_bn128_pair 1 pair failed: "
<< (int)std::get<fc::alt_bn128_error>(res) << std::endl;
}
};
benchmarking("alt_bn128_pair (1 pair)", f_1_pair);
// benchmarking 10 pair of points
bytes g1_g2_10_pairs;
g1_g2_10_pairs.insert(g1_g2_10_pairs.begin(), g1_g2_pairs_raw.begin(), g1_g2_pairs_raw.end());
auto f_10_pairs = [&]() {
auto res = fc::alt_bn128_pair(g1_g2_10_pairs, [](){});
if (std::holds_alternative<fc::alt_bn128_error>(res)) {
std::cout << "alt_bn128_pair 10 pairs failed: "
<< (int)std::get<fc::alt_bn128_error>(res) << 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
@@ -1,71 +0,0 @@
---
content_title: Install Prebuilt Binaries
---
[[info | Previous Builds]]
| If you have previously installed EOSIO from source using shell scripts, you must first run the [Uninstall Script](01_build-from-source/01_shell-scripts/05_uninstall-eosio.md) before installing any prebuilt binaries on the same OS.
## Prebuilt Binaries
Prebuilt EOSIO software packages are available for the operating systems below. Find and follow the instructions for your OS:
### Mac OS X:
#### Mac OS X Brew Install
```sh
brew tap eosio/eosio
brew install eosio
```
#### Mac OS X Brew Uninstall
```sh
brew remove eosio
```
### Ubuntu Linux:
#### Ubuntu 18.04 Package Install
```sh
wget https://github.com/eosio/eos/releases/download/v2.0.13/eosio_2.0.13-1-ubuntu-18.04_amd64.deb
sudo apt install ./eosio_2.0.13-1-ubuntu-18.04_amd64.deb
```
#### Ubuntu 16.04 Package Install
```sh
wget https://github.com/eosio/eos/releases/download/v2.0.13/eosio_2.0.13-1-ubuntu-16.04_amd64.deb
sudo apt install ./eosio_2.0.13-1-ubuntu-16.04_amd64.deb
```
#### Ubuntu Package Uninstall
```sh
sudo apt remove eosio
```
### RPM-based (CentOS, Amazon Linux, etc.):
#### RPM Package Install
```sh
wget https://github.com/eosio/eos/releases/download/v2.0.13/eosio-2.0.13-1.el7.x86_64.rpm
sudo yum install ./eosio-2.0.13-1.el7.x86_64.rpm
```
#### RPM Package Uninstall
```sh
sudo yum remove eosio
```
## Location of EOSIO binaries
After installing the prebuilt packages, the actual EOSIO binaries will be located under:
* `/usr/opt/eosio/<version-string>/bin` (Linux-based); or
* `/usr/local/Cellar/eosio/<version-string>/bin` (MacOS)
where `version-string` is the EOSIO version that was installed.
Also, soft links for each EOSIO program (`nodeos`, `cleos`, `keosd`, etc.) will be created under `usr/bin` or `usr/local/bin` to allow them to be executed from any directory.
## Previous Versions
To install previous versions of the EOSIO prebuilt binaries:
1. Browse to https://github.com/EOSIO/eos/tags and select the actual version of the EOSIO software you need to install.
2. Scroll down past the `Release Notes` and download the package or archive that you need for your OS.
3. Follow the instructions on the first paragraph above to install the selected prebuilt binaries on the given OS.
@@ -0,0 +1,63 @@
---
content_title: Build EOSIO from Source on Other Unix-based OS
---
**Please keep in mind that instructions for building from source on other unsupported operating systems provided here should be considered experimental and provided AS-IS on a best-effort basis and may not be fully featured.**
### Using DUNE
For the official multi-platform support try [Docker Utilities for Node Execution](https://github.com/eosnetworkfoundation/DUNE) which runs in an ubuntu image via a docker container.
**A Warning On Parallel Compilation Jobs (`-j` flag)**: When building C/C++ software often the build is performed in parallel via a command such as `make -j $(nproc)` which uses the number of CPU cores as the number of compilation jobs to perform simultaneously. However, be aware that some compilation units (.cpp files) in mandel are extremely complex and will consume nearly 4GB of memory to compile. You may need to reduce the level of parallelization depending on the amount of memory on your build host. e.g. instead of `make -j $(nproc)` run `make -j2`. Failures due to memory exhaustion will typically but not always manifest as compiler crashes.
Generally we recommend performing what we refer to as a "pinned build" which ensures the compiler and boost version remain the same between builds of different mandel versions (mandel requires these versions remain the same otherwise its state needs to be repopulated from a portable snapshot).
<details>
<summary>FreeBSD 13.1 Build Instructions</summary>
Install required dependencies:
```
pkg update && pkg install \
git \
cmake \
curl \
boost-all \
python3 \
openssl \
llvm11 \
pkgconf
```
and perform the build (please note that FreeBSD 13.1 comes with llvm13 by default so you should provide clang11 options to cmake):
```
git submodule update --init --recursive
mkdir build
cd build
cmake -DCMAKE_CXX_COMPILER=clang++11 -DCMAKE_C_COMPILER=clang11 -DCMAKE_BUILD_TYPE=Release ..
make -j $(nproc) package
```
</details>
### Running Tests
When building from source it's recommended to run at least what we refer to as the "parallelizable tests". Not included by default in the "parallelizable tests" are the WASM spec tests which can add additional coverage and can also be run in parallel.
```
cd build
# "parallelizable tests": the minimum test set that should be run
ctest -j $(nproc) -LE _tests
# Also consider running the WASM spec tests for more coverage
ctest -j $(nproc) -L wasm_spec_tests
```
Some other tests are available and recommended but be aware they can be sensitive to other software running on the same host and they may **SIGKILL** other nodeos instances running on the host.
```
cd build
# These tests can't run in parallel but are recommended.
ctest -L "nonparallelizable_tests"
# These tests can't run in parallel. They also take a long time to run.
ctest -L "long_running_tests"
```
@@ -1,31 +0,0 @@
---
content_title: Download EOSIO Source
---
To download the EOSIO source code, clone the `eos` repo and its submodules. It is adviced to create a home `eosio` folder first and download all the EOSIO related software there:
```sh
mkdir -p ~/eosio && cd ~/eosio
git clone --recursive https://github.com/EOSIO/eos
```
## Update Submodules
If a repository is cloned without the `--recursive` flag, the submodules *must* be updated before starting the build process:
```sh
cd ~/eosio/eos
git submodule update --init --recursive
```
## Pull Changes
When pulling changes, especially after switching branches, the submodules *must* also be updated. This can be achieved with the `git submodule` command as above, or using `git pull` directly:
```sh
[git checkout <branch>] (optional)
git pull --recurse-submodules
```
[[info | What's Next?]]
| [Build EOSIO binaries](02_build-eosio-binaries.md)
@@ -1,18 +0,0 @@
---
content_title: Build EOSIO Binaries
---
[[info | Shell Scripts]]
| The build script is one of various automated shell scripts provided in the EOSIO repository for building, installing, and optionally uninstalling the EOSIO software and its dependencies. They are available in the `eos/scripts` folder.
The build script first installs all dependencies and then builds EOSIO. The script supports these [Operating Systems](../../index.md#supported-operating-systems). To run it, first change to the `~/eosio/eos` folder, then launch the script:
```sh
cd ~/eosio/eos
./scripts/eosio_build.sh
```
The build process writes temporary content to the `eos/build` folder. After building, the program binaries can be found at `eos/build/programs`.
[[info | What's Next?]]
| [Installing EOSIO](03_install-eosio-binaries.md) is strongly recommended after building from source as it makes local development significantly more friendly.
@@ -1,24 +0,0 @@
---
content_title: Install EOSIO Binaries
---
## EOSIO install script
For ease of contract development, content can be installed at the `/usr/local` folder using the `eosio_install.sh` script within the `eos/scripts` folder. Adequate permission is required to install on system folders:
```sh
cd ~/eosio/eos
./scripts/eosio_install.sh
```
## EOSIO manual install
In lieu of the `eosio_install.sh` script, you can install the EOSIO binaries directly by invoking `make install` within the `eos/build` folder. Again, adequate permission is required to install on system folders:
```sh
cd ~/eosio/eos/build
make install
```
[[info | What's Next?]]
| Configure and use [Nodeos](../../../01_nodeos/index.md), or optionally [Test the EOSIO binaries](04_test-eosio-binaries.md).
@@ -1,15 +0,0 @@
---
content_title: Test EOSIO Binaries
---
Optionally, a set of tests can be run against your build to perform some basic validation of the EOSIO software installation.
To run the test suite after building, run:
```sh
cd ~/eosio/eos/build
make test
```
[[info | What's Next?]]
| Configure and use [Nodeos](../../../01_nodeos/index.md).
@@ -1,13 +0,0 @@
---
content_title: Uninstall EOSIO
---
If you have previously built EOSIO from source and now wish to install the prebuilt binaries, or to build from source again, it is recommended to run the `eosio_uninstall.sh` script within the `eos/scripts` folder:
```sh
cd ~/eosio/eos
./scripts/eosio_uninstall.sh
```
[[info | Uninstall Dependencies]]
| The uninstall script will also prompt the user to uninstall EOSIO dependencies. This is recommended if installing prebuilt EOSIO binaries or building EOSIO for the first time.
@@ -1,17 +0,0 @@
---
content_title: Shell Scripts
---
[[info | Did you know?]]
| Shell scripts automate the process of building, installing, testing, and uninstalling the EOSIO software and dependencies.
To build EOSIO from the source code using shell scripts, visit the sections below:
1. [Download EOSIO Source](01_download-eosio-source.md)
2. [Build EOSIO Binaries](02_build-eosio-binaries.md)
3. [Install EOSIO Binaries](03_install-eosio-binaries.md)
4. [Test EOSIO Binaries](04_test-eosio-binaries.md)
5. [Uninstall EOSIO](05_uninstall-eosio.md)
[[info | Building EOSIO is for Advanced Developers]]
| If you are new to EOSIO, it is recommended that you install the [EOSIO Prebuilt Binaries](../../00_install-prebuilt-binaries.md) instead of building from source.
@@ -1,45 +0,0 @@
---
content_title: EOSIO Software Dependencies
---
The EOSIO software requires specific software dependencies to build the EOSIO binaries. These dependencies can be built from source or installed from binaries directly. Dependencies can be pinned to a specific version release or unpinned to the current version, usually the latest one. The main EOSIO dependencies hosted outside the EOSIO repos are:
* Clang - the C++17 compliant compiler used by EOSIO
* CMake - the build system used by EOSIO
* Boost - the C++ Boost library used by EOSIO
* OpenSSL - the secure communications (and crypto) library
* LLVM - the LLVM compiler/toolchain infrastructure
Other dependencies are either inside the EOSIO repo, such as the `secp256k1` elliptic curve DSA library, or they are otherwise used for testing or housekeeping purposes, such as:
* automake, autoconf, autotools
* doxygen, graphviz
* python2, python3
* bzip2, zlib
* etc.
## Pinned Dependencies
To guarantee interoperability across different EOSIO software releases, developers may opt to reproduce the exact "pinned" dependency binaries used in-house. Block producers may want to install and run the EOSIO software built with these pinned dependencies for portability and stability reasons. Pinned dependencies are usually built from source.
## Unpinned Dependencies
Regular users or application developers may prefer installing unpinned versions of the EOSIO dependencies. These correspond to the latest or otherwise stable versions of the dependencies. The main advantage of unpinned dependencies is reduced installation times and perhaps better performance. Pinned dependencies are typically installed from binaries.
## Automatic Installation of Dependencies
EOSIO dependencies can be built or installed automatically from the [Build Script](../01_shell-scripts/02_build-eosio-binaries.md) when building EOSIO from source. To build the pinned dependencies, the optional `-P` parameter can be specified when invoking the script. Otherwise, the unpinned dependencies will be installed instead, with the exception of `boost` and `cmake` which are always pinned:
```sh
cd ~/eosio/eos
./scripts/eosio_build.sh [-P]
```
### Unupported Platforms
EOSIO dependencies can also be built and installed manually by reproducing the same commands invoked by the [Build Script](../01_shell-scripts/02_build-eosio-binaries.md). The actual commands can be generated from the script directly by exporting specific environment variables and CLI parameters to the script when invoked:
```sh
cd ~/eosio/eos
export VERBOSE=true && export DRYRUN=true && ./scripts/eosio_build.sh -y [-P]
```
@@ -1,92 +0,0 @@
---
content_title: Amazon Linux 2
---
This section contains shell commands to manually download, build, install, test, and uninstall EOSIO and dependencies on Amazon Linux 2.
[[info | Building EOSIO is for Advanced Developers]]
| If you are new to EOSIO, it is recommended that you install the [EOSIO Prebuilt Binaries](../../../00_install-prebuilt-binaries.md) instead of building from source.
Select a task below, then copy/paste the shell commands to a Unix terminal to execute:
* [Download EOSIO Repository](#download-eosio-repository)
* [Install EOSIO Dependencies](#install-eosio-dependencies)
* [Build EOSIO](#build-eosio)
* [Install EOSIO](#install-eosio)
* [Test EOSIO](#test-eosio)
* [Uninstall EOSIO](#uninstall-eosio)
[[info | Building EOSIO on another OS?]]
| Visit the [Build EOSIO from Source](../../index.md) section.
## Download EOSIO Repository
These commands set the EOSIO directories, install git, and clone the EOSIO repository.
```sh
# set EOSIO directories
export EOSIO_LOCATION=~/eosio/eos
export EOSIO_INSTALL_LOCATION=$EOSIO_LOCATION/../install
mkdir -p $EOSIO_INSTALL_LOCATION
# install git
yum update -y && yum install -y git
# clone EOSIO repository
git clone https://github.com/EOSIO/eos.git $EOSIO_LOCATION
cd $EOSIO_LOCATION && git submodule update --init --recursive
```
## Install EOSIO Dependencies
These commands install the EOSIO software dependencies. Make sure to [Download the EOSIO Repository](#download-eosio-repository) first and set the EOSIO directories.
```sh
# install dependencies
yum install -y which sudo procps-ng util-linux autoconf automake \
libtool make bzip2 bzip2-devel openssl-devel gmp-devel libstdc++ libcurl-devel \
libusbx-devel python3 python3-devel python-devel libedit-devel doxygen \
graphviz clang patch llvm-devel llvm-static vim-common jq
# build cmake
export PATH=$EOSIO_INSTALL_LOCATION/bin:$PATH
cd $EOSIO_INSTALL_LOCATION && curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \
tar -xzf cmake-3.13.2.tar.gz && \
cd cmake-3.13.2 && \
./bootstrap --prefix=$EOSIO_INSTALL_LOCATION && \
make -j$(nproc) && \
make install && \
rm -rf $EOSIO_INSTALL_LOCATION/cmake-3.13.2.tar.gz $EOSIO_INSTALL_LOCATION/cmake-3.13.2
# build boost
cd $EOSIO_INSTALL_LOCATION && curl -LO https://boostorg.jfrog.io/artifactory/main/release/1.71.0/source/boost_1_71_0.tar.bz2 && \
tar -xjf boost_1_71_0.tar.bz2 && \
cd boost_1_71_0 && \
./bootstrap.sh --prefix=$EOSIO_INSTALL_LOCATION && \
./b2 --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \
rm -rf $EOSIO_INSTALL_LOCATION/boost_1_71_0.tar.bz2 $EOSIO_INSTALL_LOCATION/boost_1_71_0
```
## Build EOSIO
These commands build the EOSIO software on the specified OS. Make sure to [Install EOSIO Dependencies](#install-eosio-dependencies) first.
[[caution | `EOSIO_BUILD_LOCATION` environment variable]]
| Do NOT change this variable. It is set for convenience only. It should always be set to the `build` folder within the cloned repository.
```sh
export EOSIO_BUILD_LOCATION=$EOSIO_LOCATION/build
mkdir -p $EOSIO_BUILD_LOCATION
cd $EOSIO_BUILD_LOCATION && $EOSIO_INSTALL_LOCATION/bin/cmake -DCMAKE_BUILD_TYPE='Release' -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION $EOSIO_LOCATION
cd $EOSIO_BUILD_LOCATION && make -j$(nproc)
```
## Install EOSIO
This command installs the EOSIO software on the specified OS. Make sure to [Build EOSIO](#build-eosio) first.
```sh
cd $EOSIO_BUILD_LOCATION && make install
```
## Test EOSIO
These commands validate the EOSIO software installation on the specified OS. This task is optional but recommended. Make sure to [Install EOSIO](#install-eosio) first.
```sh
cd $EOSIO_BUILD_LOCATION && make test
```
## Uninstall EOSIO
These commands uninstall the EOSIO software from the specified OS.
```sh
xargs rm < $EOSIO_BUILD_LOCATION/install_manifest.txt
rm -rf $EOSIO_BUILD_LOCATION
```
@@ -1,100 +0,0 @@
---
content_title: Centos 7.7
---
This section contains shell commands to manually download, build, install, test, and uninstall EOSIO and dependencies on Centos 7.7.
[[info | Building EOSIO is for Advanced Developers]]
| If you are new to EOSIO, it is recommended that you install the [EOSIO Prebuilt Binaries](../../../00_install-prebuilt-binaries.md) instead of building from source.
Select a task below, then copy/paste the shell commands to a Unix terminal to execute:
* [Download EOSIO Repository](#download-eosio-repository)
* [Install EOSIO Dependencies](#install-eosio-dependencies)
* [Build EOSIO](#build-eosio)
* [Install EOSIO](#install-eosio)
* [Test EOSIO](#test-eosio)
* [Uninstall EOSIO](#uninstall-eosio)
[[info | Building EOSIO on another OS?]]
| Visit the [Build EOSIO from Source](../../index.md) section.
## Download EOSIO Repository
These commands set the EOSIO directories, install git, and clone the EOSIO repository.
```sh
# set EOSIO directories
export EOSIO_LOCATION=~/eosio/eos
export EOSIO_INSTALL_LOCATION=$EOSIO_LOCATION/../install
mkdir -p $EOSIO_INSTALL_LOCATION
# install git
yum update -y && yum install -y git
# clone EOSIO repository
git clone https://github.com/EOSIO/eos.git $EOSIO_LOCATION
cd $EOSIO_LOCATION && git submodule update --init --recursive
```
## Install EOSIO Dependencies
These commands install the EOSIO software dependencies. Make sure to [Download the EOSIO Repository](#download-eosio-repository) first and set the EOSIO directories.
```sh
# install dependencies
yum update -y && \
yum install -y epel-release && \
yum --enablerepo=extras install -y centos-release-scl && \
yum --enablerepo=extras install -y devtoolset-8 && \
yum --enablerepo=extras install -y which git autoconf automake libtool make bzip2 doxygen \
graphviz bzip2-devel openssl-devel gmp-devel ocaml \
python python-devel rh-python36 file libusbx-devel \
libcurl-devel patch vim-common jq llvm-toolset-7.0-llvm-devel llvm-toolset-7.0-llvm-static
# build cmake
export PATH=$EOSIO_INSTALL_LOCATION/bin:$PATH
cd $EOSIO_INSTALL_LOCATION && curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \
source /opt/rh/devtoolset-8/enable && \
tar -xzf cmake-3.13.2.tar.gz && \
cd cmake-3.13.2 && \
./bootstrap --prefix=$EOSIO_INSTALL_LOCATION && \
make -j$(nproc) && \
make install && \
rm -rf $EOSIO_INSTALL_LOCATION/cmake-3.13.2.tar.gz $EOSIO_INSTALL_LOCATION/cmake-3.13.2
# apply clang patch
cp -f $EOSIO_LOCATION/scripts/clang-devtoolset8-support.patch /tmp/clang-devtoolset8-support.patch
# build boost
cd $EOSIO_INSTALL_LOCATION && curl -LO https://boostorg.jfrog.io/artifactory/main/release/1.71.0/source/boost_1_71_0.tar.bz2 && \
source /opt/rh/devtoolset-8/enable && \
tar -xjf boost_1_71_0.tar.bz2 && \
cd boost_1_71_0 && \
./bootstrap.sh --prefix=$EOSIO_INSTALL_LOCATION && \
./b2 --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \
rm -rf $EOSIO_INSTALL_LOCATION/boost_1_71_0.tar.bz2 $EOSIO_INSTALL_LOCATION/boost_1_71_0
```
## Build EOSIO
These commands build the EOSIO software on the specified OS. Make sure to [Install EOSIO Dependencies](#install-eosio-dependencies) first.
[[caution | `EOSIO_BUILD_LOCATION` environment variable]]
| Do NOT change this variable. It is set for convenience only. It should always be set to the `build` folder within the cloned repository.
```sh
export EOSIO_BUILD_LOCATION=$EOSIO_LOCATION/build
mkdir -p $EOSIO_BUILD_LOCATION
cd $EOSIO_BUILD_LOCATION && source /opt/rh/devtoolset-8/enable && cmake -DCMAKE_BUILD_TYPE='Release' -DLLVM_DIR='/opt/rh/llvm-toolset-7.0/root/usr/lib64/cmake/llvm' -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION $EOSIO_LOCATION
cd $EOSIO_BUILD_LOCATION && make -j$(nproc)
```
## Install EOSIO
This command installs the EOSIO software on the specified OS. Make sure to [Build EOSIO](#build-eosio) first.
```sh
cd $EOSIO_BUILD_LOCATION && make install
```
## Test EOSIO
These commands validate the EOSIO software installation on the specified OS. This task is optional but recommended. Make sure to [Install EOSIO](#install-eosio) first.
```sh
cd $EOSIO_BUILD_LOCATION && source /opt/rh/rh-python36/enable && make test
```
## Uninstall EOSIO
These commands uninstall the EOSIO software from the specified OS.
```sh
xargs rm < $EOSIO_BUILD_LOCATION/install_manifest.txt
rm -rf $EOSIO_BUILD_LOCATION
```
@@ -1,8 +0,0 @@
---
content_title: Platforms
---
* [Amazon Linux 2](amazon_linux-2.md)
* [CentOS 7.7](centos-7.7.md)
* [MacOS 10.14](macos-10.14.md)
* [Ubuntu 18.04](ubuntu-18.04.md)
@@ -1,74 +0,0 @@
---
content_title: MacOS 10.14
---
This section contains shell commands to manually download, build, install, test, and uninstall EOSIO and dependencies on MacOS 10.14.
[[info | Building EOSIO is for Advanced Developers]]
| If you are new to EOSIO, it is recommended that you install the [EOSIO Prebuilt Binaries](../../../00_install-prebuilt-binaries.md) instead of building from source.
Select a task below, then copy/paste the shell commands to a Unix terminal to execute:
* [Download EOSIO Repository](#download-eosio-repository)
* [Install EOSIO Dependencies](#install-eosio-dependencies)
* [Build EOSIO](#build-eosio)
* [Install EOSIO](#install-eosio)
* [Test EOSIO](#test-eosio)
* [Uninstall EOSIO](#uninstall-eosio)
[[info | Building EOSIO on another OS?]]
| Visit the [Build EOSIO from Source](../../index.md) section.
## Download EOSIO Repository
These commands set the EOSIO directories, install git, and clone the EOSIO repository.
```sh
# set EOSIO directories
export EOSIO_LOCATION=~/eosio/eos
export EOSIO_INSTALL_LOCATION=$EOSIO_LOCATION/../install
mkdir -p $EOSIO_INSTALL_LOCATION
# install git
brew update && brew install git
# clone EOSIO repository
git clone https://github.com/EOSIO/eos.git $EOSIO_LOCATION
cd $EOSIO_LOCATION && git submodule update --init --recursive
```
## Install EOSIO Dependencies
These commands install the EOSIO software dependencies. Make sure to [Download the EOSIO Repository](#download-eosio-repository) first and set the EOSIO directories.
```sh
# install dependencies
brew install cmake python libtool libusb graphviz automake wget gmp pkgconfig doxygen openssl@1.1 jq boost || :
export PATH=$EOSIO_INSTALL_LOCATION/bin:$PATH
```
## Build EOSIO
These commands build the EOSIO software on the specified OS. Make sure to [Install EOSIO Dependencies](#install-eosio-dependencies) first.
[[caution | `EOSIO_BUILD_LOCATION` environment variable]]
| Do NOT change this variable. It is set for convenience only. It should always be set to the `build` folder within the cloned repository.
```sh
export EOSIO_BUILD_LOCATION=$EOSIO_LOCATION/build
mkdir -p $EOSIO_BUILD_LOCATION
cd $EOSIO_BUILD_LOCATION && cmake -DCMAKE_BUILD_TYPE='Release' -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION $EOSIO_LOCATION
cd $EOSIO_BUILD_LOCATION && make -j$(getconf _NPROCESSORS_ONLN)
```
## Install EOSIO
This command installs the EOSIO software on the specified OS. Make sure to [Build EOSIO](#build-eosio) first.
```sh
cd $EOSIO_BUILD_LOCATION && make install
```
## Test EOSIO
These commands validate the EOSIO software installation on the specified OS. This task is optional but recommended. Make sure to [Install EOSIO](#install-eosio) first.
```sh
cd $EOSIO_BUILD_LOCATION && make test
```
## Uninstall EOSIO
These commands uninstall the EOSIO software from the specified OS.
```sh
xargs rm < $EOSIO_BUILD_LOCATION/install_manifest.txt
rm -rf $EOSIO_BUILD_LOCATION
```
@@ -1,92 +0,0 @@
---
content_title: Ubuntu 18.04
---
This section contains shell commands to manually download, build, install, test, and uninstall EOSIO and dependencies on Ubuntu 18.04.
[[info | Building EOSIO is for Advanced Developers]]
| If you are new to EOSIO, it is recommended that you install the [EOSIO Prebuilt Binaries](../../../00_install-prebuilt-binaries.md) instead of building from source.
Select a task below, then copy/paste the shell commands to a Unix terminal to execute:
* [Download EOSIO Repository](#download-eosio-repository)
* [Install EOSIO Dependencies](#install-eosio-dependencies)
* [Build EOSIO](#build-eosio)
* [Install EOSIO](#install-eosio)
* [Test EOSIO](#test-eosio)
* [Uninstall EOSIO](#uninstall-eosio)
[[info | Building EOSIO on another OS?]]
| Visit the [Build EOSIO from Source](../../index.md) section.
## Download EOSIO Repository
These commands set the EOSIO directories, install git, and clone the EOSIO repository.
```sh
# set EOSIO directories
export EOSIO_LOCATION=~/eosio/eos
export EOSIO_INSTALL_LOCATION=$EOSIO_LOCATION/../install
mkdir -p $EOSIO_INSTALL_LOCATION
# install git
apt-get update && apt-get upgrade -y && DEBIAN_FRONTEND=noninteractive apt-get install -y git
# clone EOSIO repository
git clone https://github.com/EOSIO/eos.git $EOSIO_LOCATION
cd $EOSIO_LOCATION && git submodule update --init --recursive
```
## Install EOSIO Dependencies
These commands install the EOSIO software dependencies. Make sure to [Download the EOSIO Repository](#download-eosio-repository) first and set the EOSIO directories.
```sh
# install dependencies
apt-get install -y make bzip2 automake libbz2-dev libssl-dev doxygen graphviz libgmp3-dev \
autotools-dev python2.7 python2.7-dev python3 python3-dev \
autoconf libtool curl zlib1g-dev sudo ruby libusb-1.0-0-dev \
libcurl4-gnutls-dev pkg-config patch llvm-7-dev clang-7 vim-common jq
# build cmake
export PATH=$EOSIO_INSTALL_LOCATION/bin:$PATH
cd $EOSIO_INSTALL_LOCATION && curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \
tar -xzf cmake-3.13.2.tar.gz && \
cd cmake-3.13.2 && \
./bootstrap --prefix=$EOSIO_INSTALL_LOCATION && \
make -j$(nproc) && \
make install && \
rm -rf $EOSIO_INSTALL_LOCATION/cmake-3.13.2.tar.gz $EOSIO_INSTALL_LOCATION/cmake-3.13.2
# build boost
cd $EOSIO_INSTALL_LOCATION && curl -LO https://boostorg.jfrog.io/artifactory/main/release/1.71.0/source/boost_1_71_0.tar.bz2 && \
tar -xjf boost_1_71_0.tar.bz2 && \
cd boost_1_71_0 && \
./bootstrap.sh --prefix=$EOSIO_INSTALL_LOCATION && \
./b2 --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \
rm -rf $EOSIO_INSTALL_LOCATION/boost_1_71_0.tar.bz2 $EOSIO_INSTALL_LOCATION/boost_1_71_0
```
## Build EOSIO
These commands build the EOSIO software on the specified OS. Make sure to [Install EOSIO Dependencies](#install-eosio-dependencies) first.
[[caution | `EOSIO_BUILD_LOCATION` environment variable]]
| Do NOT change this variable. It is set for convenience only. It should always be set to the `build` folder within the cloned repository.
```sh
export EOSIO_BUILD_LOCATION=$EOSIO_LOCATION/build
mkdir -p $EOSIO_BUILD_LOCATION
cd $EOSIO_BUILD_LOCATION && cmake -DCMAKE_BUILD_TYPE='Release' -DCMAKE_CXX_COMPILER='clang++-7' -DCMAKE_C_COMPILER='clang-7' -DLLVM_DIR='/usr/lib/llvm-7/lib/cmake/llvm' -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION $EOSIO_LOCATION
cd $EOSIO_BUILD_LOCATION && make -j$(nproc)
```
## Install EOSIO
This command installs the EOSIO software on the specified OS. Make sure to [Build EOSIO](#build-eosio) first.
```sh
cd $EOSIO_BUILD_LOCATION && make install
```
## Test EOSIO
These commands validate the EOSIO software installation on the specified OS. Make sure to [Install EOSIO](#install-eosio) first. (**Note**: This task is optional but recommended.)
```sh
cd $EOSIO_BUILD_LOCATION && make test
```
## Uninstall EOSIO
These commands uninstall the EOSIO software from the specified OS.
```sh
xargs rm < $EOSIO_BUILD_LOCATION/install_manifest.txt
rm -rf $EOSIO_BUILD_LOCATION
```
@@ -1,28 +0,0 @@
---
content_title: EOSIO Manual Build
---
[[info | Manual Builds are for Advanced Developers]]
| These manual instructions are intended for advanced developers. The [Shell Scripts](../01_shell-scripts/index.md) should be the preferred method to build EOSIO from source. If the script fails or your platform is not supported, continue with the instructions below.
## EOSIO Dependencies
When performing a manual build, it is necessary to install specific software packages that the EOSIO software depends on. To learn more about these dependencies, visit the [EOSIO Software Dependencies](00_eosio-dependencies.md) section.
## Platforms
Shell commands are available to manually download, build, install, test, and uninstall the EOSIO software and dependencies for these [platforms](03_platforms/index.md).
## Out-of-source Builds
While building dependencies and EOSIO binaries, out-of-source builds are also supported. Refer to the `cmake` help for more information.
## Other Compilers
To override `clang`'s default compiler toolchain, add these flags to the `cmake` command within the above instructions:
`-DCMAKE_CXX_COMPILER=/path/to/c++ -DCMAKE_C_COMPILER=/path/to/cc`
## Debug Builds
For a debug build, add `-DCMAKE_BUILD_TYPE=Debug`. Other common build types include `Release` and `RelWithDebInfo`.
+117 -7
View File
@@ -2,13 +2,123 @@
content_title: Build EOSIO from Source
---
[[info | Building EOSIO is for Advanced Developers]]
| If you are new to EOSIO, it is recommended that you install the [EOSIO Prebuilt Binaries](../00_install-prebuilt-binaries.md) instead of building 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 file. Instructions are also included for efficiently running the tests.
EOSIO can be built on several platforms using different build methods. Advanced users may opt to build EOSIO using our shell scripts. Node operators or block producers who wish to deploy a public node, may prefer our manual build instructions.
### Using DUNE
* [Shell Scripts](01_shell-scripts/index.md) - Suitable for the majority of developers, these scripts build on Mac OS and many flavors of Linux.
* [Manual Build](02_manual-build/index.md) - Suitable for those platforms that may be hostile to the shell scripts or for operators who need more control over their builds.
As an alternative to building from source try [Docker Utilities for Node Execution](https://github.com/eosnetworkfoundation/DUNE) for the easiest way to get started, and for multi-platform support.
[[info | EOSIO Installation Recommended]]
| After building EOSIO successfully, it is highly recommended to install the EOSIO binaries from their default build directory. This copies the EOSIO binaries to a central location, such as `/usr/local/bin`, or `~/eosio/x.y/bin`, where `x.y` is the EOSIO release version.
### Building From Source
Recent Ubuntu LTS releases are the only Linux distributions that we fully support. Other Linux distros and other POSIX operating systems (such as macOS) are tended to on a best-effort basis and may not be full featured. Notable requirements to build are:
* C++17 compiler and standard library
* boost 1.67+
* CMake 3.8+
* (for Linux only) LLVM 7 - 11 (newer versions do not work)
A few other common libraries are tools also required such as openssl 1.1+, libcurl, curl, libusb, GMP, Python 3, and zlib.
**A Warning On Parallel Compilation Jobs (`-j` flag)**: When building C/C++ software often the build is performed in parallel via a command such as `make -j $(nproc)` which uses the number of CPU cores as the number of compilation jobs to perform simultaneously. However, be aware that some compilation units (.cpp files) in mandel are extremely complex and will consume nearly 4GB of memory to compile. You may need to reduce the level of parallelization depending on the amount of memory on your build host. e.g. instead of `make -j $(nproc)` run `make -j2`. Failures due to memory exhaustion will typically but not always manifest as compiler crashes.
Generally we recommend performing what we refer to as a "pinned build" which ensures the compiler and boost version remain the same between builds of different mandel versions (mandel requires these versions remain the same otherwise its state needs to be repopulated from a portable snapshot).
#### Building Pinned Build Binary Packages
In the directory `<mandel src>/scripts` you will find the two scripts `install_deps.sh` and `pinned_build.sh`. If you haven't installed build dependencies then run `install_deps.sh`. Then run `pinned_build.sh <dependencies directory> <mandel build directory> <number of jobs>`.
The dependencies directory is where the script will pull the C++ dependencies that need to be built with the pinned compiler for building the pinned binaries for binary packaging.
The binary package will be produced in the mandel build directory that was supplied.
#### Manual (non "pinned") Build Instructions
<details>
<summary>Ubuntu 20.04 & 22.04 Build Instructions</summary>
Install required dependencies:
```
apt-get update && apt-get install \
build-essential \
cmake \
curl \
git \
libboost-all-dev \
libcurl4-openssl-dev \
libgmp-dev \
libssl-dev \
libusb-1.0-0-dev \
llvm-11-dev \
pkg-config
```
and perform the build:
```
git submodule update --init --recursive
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j $(nproc) package
```
</details>
<details>
<summary>Ubuntu 18.04 Build Instructions</summary>
Install required dependencies. You will need to build Boost from source on this distribution.
```
apt-get update && apt-get install \
build-essential \
cmake \
curl \
g++-8 \
git \
libcurl4-openssl-dev \
libgmp-dev \
libssl-dev \
libusb-1.0-0-dev \
llvm-7-dev \
pkg-config \
python3 \
zlib1g-dev
curl -L https://boostorg.jfrog.io/artifactory/main/release/1.79.0/source/boost_1_79_0.tar.bz2 | tar jx && \
cd boost_1_79_0 && \
./bootstrap.sh --prefix=$HOME/boost1.79 && \
./b2 --with-iostreams --with-date_time --with-filesystem --with-system \
--with-program_options --with-chrono --with-test -j$(nproc) install && \
cd ..
```
and perform the build:
```
git submodule update --init --recursive
mkdir build
cd build
cmake -DCMAKE_C_COMPILER=gcc-8 -DCMAKE_CXX_COMPILER=g++-8 \
-DCMAKE_PREFIX_PATH="$HOME/boost1.79;/usr/lib/llvm-7/" -DCMAKE_BUILD_TYPE=Release .. \
make -j $(nproc) package
```
After building you may remove the `$HOME/boost1.79` directory, or you may keep it around until next time building the software.
</details>
### Running Tests
When building from source it's recommended to run at least what we refer to as the "parallelizable tests". Not included by default in the "parallelizable tests" are the WASM spec tests which can add additional coverage and can also be run in parallel.
```
cd build
# "parallelizable tests": the minimum test set that should be run
ctest -j $(nproc) -LE _tests
# Also consider running the WASM spec tests for more coverage
ctest -j $(nproc) -L wasm_spec_tests
```
Some other tests are available and recommended but be aware they can be sensitive to other software running on the same host and they may **SIGKILL** other nodeos instances running on the host.
```
cd build
# These tests can't run in parallel but are recommended.
ctest -L "nonparallelizable_tests"
# These tests can't run in parallel. They also take a long time to run.
ctest -L "long_running_tests"
```
+13 -11
View File
@@ -2,23 +2,25 @@
content_title: EOSIO Software Installation
---
There are various ways to install and use the EOSIO software:
The best way to install and use the EOSIO software is to build it from source:
* [Install EOSIO Prebuilt Binaries](00_install-prebuilt-binaries.md)
* [Build EOSIO from Source](01_build-from-source/index.md)
[[info]]
| If you are new to EOSIO, it is recommended that you install the [EOSIO Prebuilt Binaries](00_install-prebuilt-binaries.md), then proceed to the [Getting Started](https://developers.eos.io/eosio-home/docs/) section of the [EOSIO Developer Portal](https://developers.eos.io/). If you are an advanced developer, a block producer, or no binaries are available for your platform, you may need to [Build EOSIO from source](01_build-from-source/index.md) instead.
## Supported Operating Systems
EOSIO currently supports the following operating systems:
1. Amazon Linux 2
2. CentOS 7
3. Ubuntu 16.04
4. Ubuntu 18.04
5. MacOS 10.14 (Mojave)
1. Ubuntu 18.04
2. Ubuntu 20.04
3. Ubuntu 22.04
[[info | Note]]
| It may be possible to install EOSIO on other Unix-based operating systems. This is not officially supported, though.
| It may be possible to build and install EOSIO on other Unix-based operating systems. We gathered helpful information on the following page but please keep in mind that it is experimental and not officially supported.
* [Build EOSIO on Other Unix-based Systems](01_build-from-source/00_build-unsupported-os.md)
## Docker Utilities for Node Execution (D.U.N.E.)
If you are using different operating system or prefer not to build EOSIO from source you can try our Docker - based set of utilities called DUNE that can get you started with exploring EOSIO and doing contract development pretty much instantly
* [Docker Utilities for Node Execution (D.U.N.E.)](https://github.com/eosnetworkfoundation/DUNE)
@@ -10,9 +10,8 @@ For example, the CLI option `--plugin eosio::chain_api_plugin` can also be set b
## `config.ini` location
The default `config.ini` can be found in the following folders:
- Mac OS: `~/Library/Application Support/eosio/nodeos/config`
- Linux: `~/.local/share/eosio/nodeos/config`
The default `config.ini` can be found in the following folder on Linux:
`~/.local/share/eosio/nodeos/config`
A custom `config.ini` file can be set by passing the `nodeos` option `--config path/to/config.ini`.
@@ -12,7 +12,11 @@ This section describes how to set up a producing node within the EOSIO network.
## Before you begin
* [Install the EOSIO software](../../../00_install/index.md) before starting this section.
* It is assumed that `nodeos`, `cleos`, and `keosd` are accessible through the path. If you built EOSIO using shell scripts, make sure to run the [Install Script](../../../00_install/01_build-from-source/01_shell-scripts/03_install-eosio-binaries.md).
* It is assumed that `nodeos`, `cleos`, and `keosd` are accessible through the path.
[//]: # ( THIS IS A COMMENT LINK BELOW IS BROKEN )
[//]: # ( If you built EOSIO using shell scripts, make sure to run the Install Script ../../../00_install/01_build-from-source/01_shell-scripts/03_install-eosio-binaries.md )
* Know how to pass [Nodeos options](../../02_usage/00_nodeos-options.md) to enable or disable functionality.
## Steps
@@ -46,11 +50,11 @@ producer-name = youraccount
### 3. Set the Producer's signature-provider
You will need to set the private key for your producer. The public key should have an authority for the producer account defined above.
You will need to set the private key for your producer. The public key should have an authority for the producer account defined above.
`signature-provider` is defined with a 3-field tuple:
* `public-key` - A valid EOSIO public key in form of a string.
* `provider-spec` - It's a string formatted like <provider-type>:<data>
* `provider-spec` - It's a string formatted like `<provider-type>:<data>`
* `provider-type` - KEY or KEOSD
#### Using a Key:
@@ -65,7 +69,7 @@ signature-provider = PUBLIC_SIGNING_KEY=KEY:PRIVATE_SIGNING_KEY
```
#### Using Keosd:
You can also use `keosd` instead of hard-defining keys.
You can also use `keosd` instead of hard-defining keys.
```console
# config.ini:
@@ -87,7 +91,7 @@ p2p-peer-address = 123.255.78.9:9876
### 5. Load the Required Plugins
In your [config.ini](../index.md), confirm the following plugins are loading or append them if necessary.
In your [config.ini](../index.md), confirm the following plugins are loading or append them if necessary.
```console
# config.ini:
@@ -9,12 +9,16 @@ This section describes how to set up a non-producing node within the EOSIO netwo
## Before you begin
* [Install the EOSIO software](../../../00_install/index.md) before starting this section.
* It is assumed that `nodeos`, `cleos`, and `keosd` are accessible through the path. If you built EOSIO using shell scripts, make sure to run the [Install Script](../../../00_install/01_build-from-source/01_shell-scripts/03_install-eosio-binaries.md).
* It is assumed that `nodeos`, `cleos`, and `keosd` are accessible through the path.
[//]: # ( THIS IS A COMMENT NEXT LINK CONTAINS A BROKEN LINK )
[//]: # ( If you built EOSIO using shell scripts, make sure to run the Install Script ../../../00_install/01_build-from-source/01_shell-scripts/03_install-eosio-binaries.md )
* Know how to pass [Nodeos options](../../02_usage/00_nodeos-options.md) to enable or disable functionality.
## Steps
To setup a non-producing node is simple.
To setup a non-producing node is simple.
1. [Set Peers](#1-set-peers)
2. [Enable one or more available plugins](#2-enable-one-or-more-available-plugins)
@@ -13,7 +13,11 @@ This section describes how to set up a single-node blockchain configuration runn
## Before you begin
* [Install the EOSIO software](../../../00_install/index.md) before starting this section.
* It is assumed that `nodeos`, `cleos`, and `keosd` are accessible through the path. If you built EOSIO using shell scripts, make sure to run the [Install Script](../../../00_install/01_build-from-source/01_shell-scripts/03_install-eosio-binaries.md).
* It is assumed that `nodeos`, `cleos`, and `keosd` are accessible through the path.
[//]: # (THIS IS A COMMENT, NEXT LINK HAS BROKEN LINK)
[//]: # (If you built EOSIO using shell scripts, make sure to run the Install Script ../../../00_install/01_build-from-source/01_shell-scripts/03_install-eosio-binaries.md .)
* Know how to pass [Nodeos options](../../02_usage/00_nodeos-options.md) to enable or disable functionality.
## Steps
@@ -87,7 +91,7 @@ The more advanced user will likely have need to modify the configuration. `node
* Linux: `~/.local/share/eosio/nodeos/config`
The build seeds this folder with a default `genesis.json` file. A configuration folder can be specified using the `--config-dir` command line argument to `nodeos`. If you use this option, you will need to manually copy a `genesis.json` file to your config folder.
`nodeos` will need a properly configured `config.ini` file in order to do meaningful work. On startup, `nodeos` looks in the config folder for `config.ini`. If one is not found, a default `config.ini` file is created. If you do not already have a `config.ini` file ready to use, run `nodeos` and then close it immediately with <kbd>Ctrl-C</kbd>. A default configuration (`config.ini`) will have been created in the config folder. Edit the `config.ini` file, adding/updating the following settings to the defaults already in place:
```console
@@ -115,7 +119,7 @@ nodeos
* Mac OS: `~/Library/Application\ Support/eosio/nodeos/data`
* Linux: `~/.local/share/eosio/nodeos/data`
A data folder can be specified using the `--data-dir` command line argument to `nodeos`.
[[info | What's next?]]
@@ -11,7 +11,7 @@ This section describes how to set up a multi-node blockchain configuration runni
## Before you begin
* [Install the EOSIO software](../../../00_install/index.md) before starting this section.
* It is assumed that `nodeos`, `cleos`, and `keosd` are accessible through the path. If you built EOSIO using shell scripts, make sure to run the [Install Script](../../../00_install/01_build-from-source/01_shell-scripts/03_install-eosio-binaries.md).
* It is assumed that `nodeos`, `cleos`, and `keosd` are accessible through the path.
* Know how to pass [Nodeos options](../../02_usage/00_nodeos-options.md) to enable or disable functionality.
## Steps
@@ -8,20 +8,18 @@ There are several ways to configure a `nodeos` environment for development and t
This is the go-to option for smart contract developers, aspiring Block Producers or Non-Producing Node operators. It has the most simple configuration with the least number of requirements.
* [Configure Nodeos as a Local Single-node Testnet](00_local-single-node-testnet.md)
* [Configure Nodeos as a Local Single-node Testnet](00_local-single-node-testnet.md)
## Local Multi-Node Testnet
While this option can technically be used for smart contract development, it may be overkill. This is most beneficial for those who are working on aspects of core development, such as benchmarking, optimization and experimentation. It's also a good option for hands-on learning and concept proofing.
* [Configure Nodeos as a Local Two-Node Testnet](01_local-multi-node-testnet.md)
* [Configure Nodeos as a Local 21-Node Testnet](https://github.com/EOSIO/eos/blob/master/tutorials/bios-boot-tutorial/README.md)
* [Configure Nodeos as a Local 21-Node Testnet](/tutorials/bios-boot-tutorial.md)
## Official Testnet
## Official Testing Node
The official testnet is available for testing EOSIO dApps and smart contracts:
* [testnet.eos.io](https://testnet.eos.io/)
Try [Docker Utilities for Node Execution](https://github.com/eosnetworkfoundation/DUNE) for the easiest way to get started, and for multi-platform support.
## Third-Party Testnets
@@ -12,9 +12,6 @@ It provides four RPC API endpoints:
* get_key_accounts
* get_controlled_accounts
[[info | More Info]]
| See HISTORY section of [RPC API](https://developers.eos.io/eosio-nodeos/reference).
The four actions listed above are used by the following `cleos` commands (matching order):
* get actions
@@ -8,7 +8,7 @@ The `net_api_plugin` provides four RPC API endpoints:
* connections
* status
See [Net API Reference Documentation](https://developers.eos.io/manuals/eos/latest/nodeos/plugins/net_api_plugin/api-reference/index).
See [Net API Reference Documentation](https://docs.eosnetwork.com/reference/mandel-plugins/net_api.html).
[[caution | Caution]]
| This plugin exposes endpoints that allow management of p2p connections. Running this plugin on a publicly accessible node is not recommended as it can be exploited.
+38 -38
View File
@@ -23,77 +23,77 @@ Config Options for eosio::net_plugin:
--p2p-listen-endpoint arg (=0.0.0.0:9876)
The actual host:port used to listen for
incoming p2p connections.
--p2p-server-address arg An externally accessible host:port for
identifying this node. Defaults to
--p2p-server-address arg An externally accessible host:port for
identifying this node. Defaults to
p2p-listen-endpoint.
--p2p-peer-address arg The public endpoint of a peer node to
connect to. Use multiple
p2p-peer-address options as needed to
--p2p-peer-address arg The public endpoint of a peer node to
connect to. Use multiple
p2p-peer-address options as needed to
compose a network.
Syntax: host:port[:<trx>|<blk>]
The optional 'trx' and 'blk'
indicates to node that only
transactions 'trx' or blocks 'blk'
The optional 'trx' and 'blk'
indicates to node that only
transactions 'trx' or blocks 'blk'
should be sent. Examples:
p2p.eos.io:9876
p2p.trx.eos.io:9876:trx
p2p.blk.eos.io:9876:blk
p2p.example.org:9876
p2p.trx.example.org:9876:trx
p2p.blk.example.org:9876:blk
--p2p-max-nodes-per-host arg (=1) Maximum number of client nodes from any
single IP address
--p2p-accept-transactions arg (=1) Allow transactions received over p2p
network to be evaluated and relayed if
--p2p-accept-transactions arg (=1) Allow transactions received over p2p
network to be evaluated and relayed if
valid.
--agent-name arg (="EOS Test Agent") The name supplied to identify this node
amongst the peers.
--allowed-connection arg (=any) Can be 'any' or 'producers' or
'specified' or 'none'. If 'specified',
peer-key must be specified at least
once. If only 'producers', peer-key is
not required. 'producers' and
--allowed-connection arg (=any) Can be 'any' or 'producers' or
'specified' or 'none'. If 'specified',
peer-key must be specified at least
once. If only 'producers', peer-key is
not required. 'producers' and
'specified' may be combined.
--peer-key arg Optional public key of peer allowed to
--peer-key arg Optional public key of peer allowed to
connect. May be used multiple times.
--peer-private-key arg Tuple of [PublicKey, WIF private key]
--peer-private-key arg Tuple of [PublicKey, WIF private key]
(may specify multiple times)
--max-clients arg (=25) Maximum number of clients from which
connections are accepted, use 0 for no
--max-clients arg (=25) Maximum number of clients from which
connections are accepted, use 0 for no
limit
--connection-cleanup-period arg (=30) number of seconds to wait before
--connection-cleanup-period arg (=30) number of seconds to wait before
cleaning up dead connections
--max-cleanup-time-msec arg (=10) max connection cleanup time per cleanup
call in milliseconds
--p2p-dedup-cache-expire-time-sec arg (=10)
Maximum time to track transaction for
Maximum time to track transaction for
duplicate optimization
--net-threads arg (=2) Number of worker threads in net_plugin
--net-threads arg (=2) Number of worker threads in net_plugin
thread pool
--sync-fetch-span arg (=100) number of blocks to retrieve in a chunk
from any individual peer during
from any individual peer during
synchronization
--use-socket-read-watermark arg (=0) Enable experimental socket read
--use-socket-read-watermark arg (=0) Enable experimental socket read
watermark optimization
--peer-log-format arg (=["${_name}" ${_ip}:${_port}])
The string used to format peers when
The string used to format peers when
logging messages about them. Variables
are escaped with ${<variable name>}.
Available Variables:
_name self-reported name
_id self-reported ID (64 hex
_id self-reported ID (64 hex
characters)
_sid first 8 characters of
_sid first 8 characters of
_peer.id
_ip remote IP address of peer
_port remote port number of peer
_lip local IP address connected to
peer
_lport local port number connected
_lport local port number connected
to peer
```
@@ -24,100 +24,100 @@ These can be specified from both the `nodeos` command-line or the `config.ini` f
```console
Config Options for eosio::producer_plugin:
-e [ --enable-stale-production ] Enable block production, even if the
-e [ --enable-stale-production ] Enable block production, even if the
chain is stale.
-x [ --pause-on-startup ] Start this node in a state where
-x [ --pause-on-startup ] Start this node in a state where
production is paused
--max-transaction-time arg (=30) Limits the maximum time (in
milliseconds) that is allowed a pushed
transaction's code to execute before
--max-transaction-time arg (=30) Limits the maximum time (in
milliseconds) that is allowed a pushed
transaction's code to execute before
being considered invalid
--max-irreversible-block-age arg (=-1)
Limits the maximum age (in seconds) of
Limits the maximum age (in seconds) of
the DPOS Irreversible Block for a chain
this node will produce blocks on (use
this node will produce blocks on (use
negative value to indicate unlimited)
-p [ --producer-name ] arg ID of producer controlled by this node
(e.g. inita; may specify multiple
-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
--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
Key=Value pairs in the form
<public-key>=<provider-spec>
Where:
<public-key> is a string form of
<public-key> is a string form of
a vaild EOSIO public
key
<provider-spec> is a string in the
<provider-spec> is a string in the
form <provider-type>
:<data>
<provider-type> is KEY, or KEOSD
KEY:<data> is a string form of
a valid EOSIO
private key which
KEY:<data> is a string form of
a valid EOSIO
private key which
maps to the provided
public key
KEOSD:<data> is the URL where
keosd is available
and the approptiate
wallet(s) are
KEOSD:<data> is the URL where
keosd is available
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
--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
--greylist-limit arg (=1000) Limit (between 1 and 1000) on the
multiple that CPU/NET virtual resources
can extend during low usage (only
enforced subjectively; use 1000 to not
can extend during low usage (only
enforced subjectively; use 1000 to not
enforce any limit)
--produce-time-offset-us arg (=0) Offset of non last block producing time
in microseconds. Valid range 0 ..
in microseconds. Valid range 0 ..
-block_time_interval.
--last-block-time-offset-us arg (=-200000)
Offset of last block producing time in
microseconds. Valid range 0 ..
Offset of last block producing time in
microseconds. Valid range 0 ..
-block_time_interval.
--cpu-effort-percent arg (=80) Percentage of cpu block production time
used to produce block. Whole number
used to produce block. Whole number
percentages, e.g. 80 for 80%
--last-block-cpu-effort-percent arg (=80)
Percentage of cpu block production time
used to produce last block. Whole
used to produce last block. Whole
number percentages, e.g. 80 for 80%
--max-block-cpu-usage-threshold-us arg (=5000)
Threshold of CPU block production to
consider block full; when within
threshold of max-block-cpu-usage block
Threshold of CPU block production to
consider block full; when within
threshold of max-block-cpu-usage block
can be produced immediately
--max-block-net-usage-threshold-bytes arg (=1024)
Threshold of NET block production to
consider block full; when within
threshold of max-block-net-usage block
Threshold of NET block production to
consider block full; when within
threshold of max-block-net-usage block
can be produced immediately
--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
Maximum wall-clock time, in
milliseconds, spent retiring scheduled
transactions 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
insufficient CPU quota to complete and
Time in microseconds allowed for a
transaction that starts with
insufficient CPU quota to complete and
cover its CPU usage.
--subjective-account-max-failures arg (=3)
Sets the maximum amount of failures
that are allowed for a given account
Sets the maximum amount of failures
that are allowed for a given account
per block.
Disregarded for accounts that have been
whitelisted by disabling subjective
@@ -128,33 +128,33 @@ Config Options for eosio::producer_plugin:
Sets the time to return full subjective
cpu for accounts
--incoming-defer-ratio arg (=1) ratio between incoming transactions and
deferred transactions when both are
deferred transactions when both are
queued for execution
--incoming-transaction-queue-size-mb arg (=1024)
Maximum size (in MiB) of the incoming
Maximum size (in MiB) of the incoming
transaction queue. Exceeding this value
will subjectively drop transaction with
resource exhaustion.
--disable-api-persisted-trx Disable the re-apply of API
--disable-api-persisted-trx Disable the re-apply of API
transactions.
--disable-subjective-billing arg (=1) Disable subjective CPU billing for
--disable-subjective-billing arg (=1) Disable subjective CPU billing for
API/P2P transactions
--disable-subjective-account-billing arg
Account which is excluded from
Account which is excluded from
subjective CPU billing
Account is considered whitelisted and
will not be subject to enforcement of
subjective-account-max-failures.
--disable-subjective-p2p-billing arg (=1)
Disable subjective CPU billing for P2P
Disable subjective CPU billing for P2P
transactions
--disable-subjective-api-billing arg (=1)
Disable subjective CPU billing for API
Disable subjective CPU billing for API
transactions
--producer-threads arg (=2) Number of worker threads in producer
--producer-threads arg (=2) Number of worker threads in producer
thread pool
--snapshots-dir arg (="snapshots") the location of the snapshots directory
(absolute path or relative to
(absolute path or relative to
application data dir)
```
@@ -172,7 +172,7 @@ The option below sets the ratio between the incoming transaction and the deferre
--incoming-defer-ratio arg (=1)
```
By default value of `1`, the `producer` plugin processes one incoming transaction per deferred transaction. When `arg` sets to `10`, the `producer` plugin processes 10 incoming transactions per deferred transaction.
By default value of `1`, the `producer` plugin processes one incoming transaction per deferred transaction. When `arg` sets to `10`, the `producer` plugin processes 10 incoming transactions per deferred transaction.
If the `arg` is set to a sufficiently large number, the plugin always processes the incoming transaction first until the queue of the incoming transactions is empty. Respectively, if the `arg` is 0, the `producer` plugin processes the deferred transactions queue first.
@@ -20,7 +20,7 @@ This procedure records the current chain state and future history, without previ
2. Make sure `data/state` does not exist
3. Start `nodeos` with the `--snapshot` option, and the options listed in the [`state_history_plugin`](#index.md).
3. Start `nodeos` with the `--snapshot` option, and the options listed in the [`state_history_plugin`](index.md).
4. Look for `Placing initial state in block n` in the log, where n is the start block number.
@@ -21,7 +21,7 @@ This procedure restores an existing snapshot with full history, so the node can
2. Make sure `data/state` does not exist
3. Start `nodeos` with the `--snapshot` option, and the options listed in the [`state_history_plugin`](#index.md).
3. Start `nodeos` with the `--snapshot` option, and the options listed in the [`state_history_plugin`](index.md).
4. Do not stop `nodeos` until it has received at least 1 block from the network, or it won't be able to restart.
@@ -48,11 +48,6 @@ Config Options for eosio::state_history_plugin:
## Examples
### history-tools
* [Source code](https://github.com/EOSIO/history-tools/)
* [Documentation](https://eosio.github.io/history-tools/)
## Dependencies
* [`chain_plugin`](../chain_plugin/index.md)
@@ -4,7 +4,7 @@
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/EOSIO/eos/blob/develop/plugins/txn_test_gen_plugin/README.md) on the EOSIO/eos repository.
For more information, check the [txn_test_gen_plugin/README.md](https://github.com/eosnetworkfoundation/mandel/tree/main/plugins/txn_test_gen_plugin) on the EOSIO/eos repository.
## Usage
@@ -6,7 +6,7 @@ Once you have obtained a copy of a valid snapshot file from which you wish to cr
location | name | action
----------------- | -------------------------- | ------------
data/snapshots | <head block id in hex>.bin | place the snapshot file you want to replay here
data/snapshots | `<head block id in hex>.bin` | place the snapshot file you want to replay here
data/ | * | remove
You can use `snapshots-dir = "snapshots" ` in the configuration file or using the `--snapshots-dir` command line option, to specify the where to find the the snapshot to replay, use `--snapshot` to specify the name of the snapshot to replay.
+3 -3
View File
@@ -17,7 +17,7 @@ Snapshot files can be created from a running `nodeos` instance. The snapshot con
* [How To Generate a Blocks Log](how-to-generate-a-blocks.log.md)
* [How To Generate a Snapshot](how-to-generate-a-snapshot.md)
* [How To Replay from a Blocks Log](how-to-replay-from-a-blocks.log.md)
* [How to Replay from a Snapshot](how-to-replay-from-a-snapshot.md)
* [How to Replay from a Snapshot](../04_replays/how-to-replay-from-a-snapshot.md)
## Replay Snapshot-specific Options
@@ -41,9 +41,9 @@ This tells `nodeos` to clear the local chain state and local the `blocks.log` fi
- **--truncate-at-block**
Default argument (=0), only used if the given value is non-zero.
Using this option when replaying the blockchain will force the replay to stop at the specified block number. This option will only work if replaying with the `--hard-replay-blockchain` option. The local `nodeos` process will contain the chain state for that block. This option may be useful for checking blockchain state at specific points in time. It is intended for testing/validation and is not intended to be used when creating a local `nodeos` instance which is synchronized with the network.
- **--snapshot**
Use this option to specify which snapshot file to use to recreate the chain state from a snapshot file. This option will not replay the `blocks.log` file. The `nodeos` instance will not know the full transaction history of the blockchain.
Use this option to specify which snapshot file to use to recreate the chain state from a snapshot file. This option will not replay the `blocks.log` file. The `nodeos` instance will not know the full transaction history of the blockchain.
- **--snapshots-dir**
You can use this to specify the location of the snapshot file directory (absolute path or relative to application data dir.)
@@ -17,7 +17,7 @@ Every `nodeos` instance creates some internal files to housekeep the blockchain
## EOSIO Interfaces
EOSIO provides a set of [services](../../) and [interfaces](https://developers.eos.io/manuals/eosio.cdt/latest/files) that enable contract developers to persist state across action, and consequently transaction, boundaries. Contracts may use these services and interfaces for various purposes. For example, `eosio.token` contract keeps balances for all users in the chain database. Each instance of `nodeos` keeps the database in memory, so contracts can read and write data with ease.
EOSIO provides a set of [services](../../) and [interfaces](https://docs.eosnetwork.com/reference/mandel-cdt/files.html) that enable contract developers to persist state across action, and consequently transaction, boundaries. Contracts may use these services and interfaces for various purposes. For example, `eosio.token` contract keeps balances for all users in the chain database. Each instance of `nodeos` keeps the database in memory, so contracts can read and write data with ease.
### Nodeos RPC API
@@ -40,7 +40,7 @@ Clients such as `cleos` and the RPC API, will see database state as of the curre
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.
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.
@@ -61,7 +61,7 @@ Clients such as `cleos` and the RPC API will see database state as of the curren
### 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.
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.
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.
+8 -8
View File
@@ -4,7 +4,7 @@ content_title: Nodeos Troubleshooting
### "Database dirty flag set (likely due to unclean shutdown): replay required"
`nodeos` needs to be shut down cleanly. To ensure this is done, send a `SIGTERM`, `SIGQUIT` or `SIGINT` and wait for the process to shutdown. Failing to do this will result in this error. If you get this error, your only recourse is to replay by starting `nodeos` with `--replay-blockchain`
`nodeos` needs to be shut down cleanly. To ensure this is done, send a `SIGTERM`, `SIGQUIT` or `SIGINT` and wait for the process to shutdown. Failing to do this will result in this error. If you get this error, your only recourse is to replay by starting `nodeos` with `--replay-blockchain`
### "Memory does not match data" Error at Restart
@@ -12,15 +12,15 @@ If you get an error such as `St9exception: content of memory does not match data
```
Command Line Options for eosio::chain_plugin:
--force-all-checks do not skip any checks that can be
skipped while replaying irreversible
--force-all-checks do not skip any checks that can be
skipped while replaying irreversible
blocks
--replay-blockchain clear chain state database and replay
--replay-blockchain clear chain state database and replay
all blocks
--hard-replay-blockchain clear chain state database, recover as
many blocks as possible from the block
--hard-replay-blockchain clear chain state database, recover as
many blocks as possible from the block
log, and then replay those blocks
--delete-all-blocks clear chain state database and block
--delete-all-blocks clear chain state database and block
log
```
@@ -44,4 +44,4 @@ cleos --url http://localhost:8888 get info | grep server_version
### Error 3070000: WASM Exception Error
If you try to deploy the `eosio.bios` contract or `eosio.system` contract in an attempt to boot an EOSIO-based blockchain and you get the following error or similar: `Publishing contract... Error 3070000: WASM Exception Error Details: env.set_proposed_producers_ex unresolveable`, it is because you have to activate the `PREACTIVATE_FEATURE` protocol first. More details about it and how to enable it can be found in the [Bios Boot Sequence Tutorial](https://developers.eos.io/welcome/latest/tutorials/bios-boot-sequence/#112-set-the-eosiosystem-contract). For more information, you may also visit the [Nodeos Upgrade Guides](https://developers.eos.io/manuals/eos/latest/nodeos/upgrade-guides/).
If you try to deploy the `eosio.bios` contract or `eosio.system` contract in an attempt to boot an EOSIO-based blockchain and you get the following error or similar: `Publishing contract... Error 3070000: WASM Exception Error Details: env.set_proposed_producers_ex unresolveable`, it is because you have to activate the `PREACTIVATE_FEATURE` protocol first.
-3
View File
@@ -1,3 +0,0 @@
---
link: https://github.com/EOSIO/eos/issues/7597
---
+1 -2
View File
@@ -8,7 +8,7 @@ content_title: Nodeos
## Installation
`nodeos` is distributed as part of the [EOSIO software suite](https://github.com/EOSIO/eos/blob/master/README.md). To install `nodeos`, visit the [EOSIO Software Installation](../00_install/index.md) section.
`nodeos` is distributed as part of the [EOSIO software suite](https://github.com/eosnetworkfoundation/mandel). To install `nodeos`, visit the [EOSIO Software Installation](../00_install/index.md) section.
## Explore
@@ -21,7 +21,6 @@ Navigate the sections below to configure and use `nodeos`.
* [Logging](06_logging/index.md) - Logging config/usage, loggers, appenders, logging levels.
* [Concepts](07_concepts/index.md) - `nodeos` concepts, explainers, implementation aspects.
* [Troubleshooting](08_troubleshooting/index.md) - Common `nodeos` troubleshooting questions.
* [Deprecation Notices](https://github.com/EOSIO/eos/issues/7597) - Lists `nodeos` deprecated functionality.
[[info | Access Node]]
| A local or remote EOSIO access node running `nodeos` is required for a client application or smart contract to interact with the blockchain.
@@ -13,9 +13,9 @@ Make sure you meet the following requirements:
[[info | Note]]
| `cleos` is bundled with the EOSIO software. [Installing EOSIO](../../00_install/index.md) will also install `cleos`.
* Understand what an [account](https://developers.eos.io/welcome/latest/glossary/index/#account) is and its role in the blockchain.
* Understand [Accounts and Permissions](https://developers.eos.io/welcome/latest/protocol-guides/accounts_and_permissions) in the protocol documents.
* Understand what a [public](https://developers.eos.io/welcome/latest/glossary/index/#public-key) and [private](https://developers.eos.io/welcome/latest/glossary/index/#private-key) key pair is.
* Understand what an [account](/glossary.md#account) is and its role in the blockchain.
* Understand [Accounts and Permissions](/protocol-guides/04_accounts_and_permissions.md) in the protocol documents.
* Understand what a [public](/glossary.md#public-key) and [private](/glossary.md#private-key) key pair is.
## Steps
@@ -2,7 +2,7 @@
This how-to guide provides instructions on how to create a new EOSIO blockchain account using the `cleos` CLI tool. You can use accounts to deploy smart contracts and perform other related blockchain operations. Create one or multiple accounts as part of your development environment setup.
The example in this how-to guide creates a new account named **bob**, authorized by the default system account **eosio**, using the `cleos` CLI tool.
The example in this how-to guide creates a new account named **bob**, authorized by the default system account **eosio**, using the `cleos` CLI tool.
## Before you Begin
@@ -10,9 +10,9 @@ Make sure you meet the following requirements:
* Install the currently supported version of `cleos`.
[[info | Note]]
| The cleos tool is bundled with the EOSIO software. [Installing EOSIO](../../00_install/index.md) will also install the cleos tool.
* Learn about [EOSIO Accounts and Permissions](https://developers.eos.io/welcome/v2.1/protocol/accounts_and_permissions)
* Learn about Asymmetric Cryptography - [public key](https://developers.eos.io/welcome/v2.1/glossary/index#public-key) and [private key](https://developers.eos.io/welcome/v2.1/glossary/index#private-key) pairs.
| The cleos tool is bundled with the EOSIO software. [Installing EOSIO](../../00_install/index.md) will also install the cleos tool.
* Learn about [EOSIO Accounts and Permissions](/protocol-guides/04_accounts_and_permissions.md)
* Learn about Asymmetric Cryptography - [public key](/glossary.md#public-key) and [private key](/glossary.md#private-key) pairs.
* Create public/private keypairs for the `owner` and `active` permissions of an account.
## Command Reference
@@ -31,7 +31,7 @@ cleos create account eosio bob EOS87TQktA5RVse2EguhztfQVEh6XXxBmgkU8b4Y5YnGvtYAo
```
**Where**:
* `eosio` = the system account that authorizes the creation of a new account
* `bob` = the name of the new account conforming to [account naming conventions](https://developers.eos.io/welcome/v2.1/protocol-guides/accounts_and_permissions#2-accounts)
* `bob` = the name of the new account conforming to [account naming conventions](/protocol-guides/04_accounts_and_permissions.md#2-accounts)
* `EOS87TQ...AoLGNN` = the owner public key or permission level for the new account (**required**)
[[info | Note]]
| To create a new account in the EOSIO blockchain, an existing account, also referred to as a creator account, is required to authorize the creation of a new account. For a newly created EOSIO blockchain, the default system account used to create a new account is **eosio**.
@@ -12,10 +12,10 @@ Make sure you meet the following requirements:
[[info | Note]]
| `cleos` is bundled with the EOSIO software. [Installing EOSIO](../../00_install/index.md) will also install `cleos`.
* Ensure the reference system contracts from [`eosio.contracts`](https://github.com/EOSIO/eosio.contracts) repository is deployed and used to manage system resources.
* Understand what an [account](https://developers.eos.io/welcome/latest/glossary/index/#account) is and its role in the blockchain.
* Understand [CPU bandwidth](https://developers.eos.io/welcome/latest/glossary/index/#cpu) in an EOSIO blockchain.
* Understand [NET bandwidth](https://developers.eos.io/welcome/latest/glossary/index/#net) in an EOSIO blockchain.
* Ensure the reference system contracts from [`eosio.contracts`](https://github.com/eosnetworkfoundation/mandel-contracts) repository is deployed and used to manage system resources.
* Understand what an [account](/glossary.md#account) is and its role in the blockchain.
* Understand [CPU bandwidth](/glossary.md#cpu) in an EOSIO blockchain.
* Understand [NET bandwidth](/glossary.md#net) in an EOSIO blockchain.
## Steps
@@ -12,10 +12,10 @@ Make sure you meet the following requirements:
[[info | Note]]
| `cleos` is bundled with the EOSIO software. [Installing EOSIO](../../00_install/index.md) will also install `cleos`.
* Ensure the reference system contracts from [`eosio.contracts`](https://github.com/EOSIO/eosio.contracts) repository is deployed and used to manage system resources.
* Understand what an [account](https://developers.eos.io/welcome/latest/glossary/index/#account) is and its role in the blockchain.
* Understand [NET bandwidth](https://developers.eos.io/welcome/latest/glossary/index/#net) in an EOSIO blockchain.
* Understand [CPU bandwidth](https://developers.eos.io/welcome/latest/glossary/index/#cpu) in an EOSIO blockchain.
* Ensure the reference system contracts from [`eosio.contracts`](https://github.com/eosnetworkfoundation/mandel-contracts) repository is deployed and used to manage system resources.
* Understand what an [account](/glossary.md#account) is and its role in the blockchain.
* Understand [NET bandwidth](/glossary.md#net) in an EOSIO blockchain.
* Understand [CPU bandwidth](/glossary.md#cpu) in an EOSIO blockchain.
## Steps
@@ -1,15 +1,15 @@
## Overview
This how-to guide provides instructions on how to query infomation of an EOSIO account. The example in this how-to guide retrieves information of the `eosio` account.
This how-to guide provides instructions on how to query infomation of an EOSIO account. The example in this how-to guide retrieves information of the `eosio` account.
## Before you begin
* Install the currently supported version of `cleos`
[[info | Note]]
| The cleos tool is bundled with the EOSIO software. [Installing EOSIO](../../00_install/index.md) will also install the cleos tool.
| The cleos tool is bundled with the EOSIO software. [Installing EOSIO](../../00_install/index.md) will also install the cleos tool.
* Acquire functional understanding of [EOSIO Accounts and Permissions](https://developers.eos.io/welcome/v2.1/protocol/accounts_and_permissions)
* Acquire functional understanding of [EOSIO Accounts and Permissions](/protocol-guides/04_accounts_and_permissions.md)
## Command Reference
@@ -12,8 +12,8 @@ Make sure to meet the following requirements:
[[info | Note]]
| `cleos` is bundled with the EOSIO software. [Installing EOSIO](../../00_install/index.md) will also install `cleos`.
* Understand what a [block](https://developers.eos.io/welcome/latest/glossary/index/#block) is and its role in the blockchain.
* Understand the [block lifecycle](https://developers.eos.io/welcome/latest/protocol-guides/consensus_protocol/#5-block-lifecycle) in the EOSIO consensus protocol.
* Understand what a [block](/glossary.md#block) is and its role in the blockchain.
* Understand the [block lifecycle](/protocol-guides/01_consensus_protocol.md#5-block-lifecycle) in the EOSIO consensus protocol.
## Steps
@@ -34,8 +34,10 @@ Some examples are provided below:
**Example Output**
```sh
cleos -u https://api.testnet.eos.io get block 48351112
cleos -u https://choiceofyourprovider get block 48351112
```
Reference to [testnet providers](/resources/index.md)
```json
{
"timestamp": "2021-01-28T17:58:59.500",
@@ -59,7 +61,7 @@ cleos -u https://api.testnet.eos.io get block 48351112
**Example Output**
```sh
cleos -u https://api.testnet.eos.io get block 02e1c7888a92206573ae38d00e09366c7ba7bc54cd8b7996506f7d2a619c43ba
cleos -u https://choiceofyourprovider get block 02e1c7888a92206573ae38d00e09366c7ba7bc54cd8b7996506f7d2a619c43ba
```
```json
{
@@ -2,7 +2,7 @@
This how-to guide provides instructions on how to retrieve infomation of an EOSIO transaction using a transaction ID.
The example in this how-to retrieves transaction information associated with the creation of the account **bob**.
The example in this how-to retrieves transaction information associated with the creation of the account **bob**.
## Before you begin
@@ -10,7 +10,7 @@ Make sure you meet the following requirements:
* Install the currently supported version of `cleos`.
[[info | Note]]
| `cleos` is bundled with the EOSIO software. [Installing EOSIO](../../00_install/index.md) will also install `cleos`.
* Understand how transactions work in an EOSIO blockchain. For more information on transactions, see the [Transactions Protocol](https://developers.eos.io/welcome/latest/protocol-guides/transactions_protocol) section.
* Understand how transactions work in an EOSIO blockchain. For more information on transactions, see the [Transactions Protocol](/protocol-guides/02_transactions_protocol.md) section.
## Command Reference
@@ -25,7 +25,7 @@ The following step shows how to retrieve transaction information associated with
```sh
cleos get transaction 870a6b6e3882061ff0f64016e1eedfdd9439e2499bf978c3fb29fcedadada9b1
```
* Where `870a6b6e38...dada9b1`= The transaction ID associated with the creation of account **bob**.
* Where `870a6b6e38...dada9b1`= The transaction ID associated with the creation of account **bob**.
**Example Output**
@@ -179,7 +179,7 @@ The `cleos` command returns detailed information of the transaction:
## Summary
By following these instructions, you are able to retrieve transaction information using a transaction ID.
By following these instructions, you are able to retrieve transaction information using a transaction ID.
## Trobleshooting
@@ -195,4 +195,4 @@ Error Details:
History API plugin is not enabled
```
To troubleshoot this error, enable the [history plugin](../../01_nodeos/03_plugins/history_plugin/index.md) and [history API plugin](../../01_nodeos/03_plugins/history_api_plugin/index.md), then run the command again.
To troubleshoot this error, enable the [history plugin](../../01_nodeos/03_plugins/history_plugin/index.md) and [history API plugin](../../01_nodeos/03_plugins/history_api_plugin/index.md), then run the command again.
@@ -1,18 +1,18 @@
## Overview
This how-to guide provides instructions on how to import a private key into the `keosd` default wallet. You can use the private key to authorize transactions in an EOSIO blockchain.
This how-to guide provides instructions on how to import a private key into the `keosd` default wallet. You can use the private key to authorize transactions in an EOSIO blockchain.
## Before you Begin
Make sure you meet the following requirements:
* Create a default wallet using the `cleos wallet create` command. See the [How to Create a Wallet](../02_how-to-guides/how-to-create-a-wallet.md) section for instructions.
* Create a default wallet using the `cleos wallet create` command. See the [How to Create a Wallet](../02_how-to-guides/how-to-create-a-wallet.md) section for instructions.
* Open and unlock the created wallet.
* Familiarize with the [`cleos wallet import`](../03_command-reference/wallet/import.md) command.
* Install the currently supported version of `cleos`.
[[info | Note]]
| `cleos` is bundled with the EOSIO software. [Installing EOSIO](../../00_install/index.md) will also install `cleos`.
* Understand what a [public key](https://developers.eos.io/welcome/latest/glossary/index/#public-key) and [private key](https://developers.eos.io/welcome/latest/glossary/index/#private-key) is.
* Understand what a [public key](/glossary.md#public-key) and [private key](/glossary.md#private-key) is.
## Command Reference
@@ -31,7 +31,7 @@ cleos wallet import
private key:
```
2. Enter the private key and hit Enter.
2. Enter the private key and hit Enter.
```sh
***
```
@@ -44,4 +44,4 @@ imported private key for: EOS8FBXJUfbANf3xeDWPoJxnip3Ych9HjzLBr1VaXRQFdkVAxwLE7
## Summary
By following these instructions, you are able to import a private key to the default wallet.
By following these instructions, you are able to import a private key to the default wallet.
@@ -1,6 +1,6 @@
## Overview
This how-to guide provides instructions on how to list all public keys and public/private key pairs within the `keosd` default wallet. You can use the public and private keys to authorize transactions in an EOSIO blockchain.
This how-to guide provides instructions on how to list all public keys and public/private key pairs within the `keosd` default wallet. You can use the public and private keys to authorize transactions in an EOSIO blockchain.
The example in this how-to guide displays all public keys and public/private key pairs stored within the existing default wallet.
@@ -8,13 +8,13 @@ The example in this how-to guide displays all public keys and public/private key
Make sure you meet the following requirements:
* Create a default wallet using the `cleos wallet create` command. See the [How to Create a Wallet](../02_how-to-guides/how-to-create-a-wallet.md) section for instructions.
* Create a default wallet using the `cleos wallet create` command. See the [How to Create a Wallet](../02_how-to-guides/how-to-create-a-wallet.md) section for instructions.
* [Create a keypair](../03_command-reference/wallet/create_key.md) within the default wallet.
* Familiarize with the [`cleos wallet`](../03_command-reference/wallet/index.md) commands.
* Install the currently supported version of `cleos`.
[[info | Note]]
| `cleos` is bundled with the EOSIO software. [Installing EOSIO](../../00_install/index.md) will also install `cleos`.
* Understand what a [public key](https://developers.eos.io/welcome/latest/glossary/index/#public-key) and [private key](https://developers.eos.io/welcome/latest/glossary/index/#private-key) is.
* Understand what a [public key](/glossary.md#public-key) and [private key](/glossary.md#private-key) is.
## Command Reference
@@ -71,7 +71,7 @@ cleos wallet private_keys
password:
```
6. Enter the generated password when you created the default wallet:
6. Enter the generated password when you created the default wallet:
```sh
***
```
@@ -86,7 +86,7 @@ password: [[
```
[[caution | Warning]]
| Never reveal your private keys in a production environment.
| Never reveal your private keys in a production environment.
[[info | Note]]
| If the above commands does not list any keys, make sure you have created keypairs and imported private keys to your wallet.
@@ -2,7 +2,7 @@
Pack and unpack transactions
## subcommands
- [pack_transaction](pack_transaction) - From plain signed json to packed form
- [unpack_transaction](unpack_transaction) - From packed to plain signed json form
- [pack_action_data](pack_action_data) - From json action data to packed form
- [unpack_action_data](unpack_action_data) - From packed to json action data form
- [pack_transaction](pack_transaction.md) - From plain signed json to packed form
- [unpack_transaction](unpack_transaction.md) - From packed to plain signed json form
- [pack_action_data](pack_action_data.md) - From json action data to packed form
- [unpack_action_data](unpack_action_data.md) - From packed to json action data form
@@ -2,8 +2,8 @@
Create various items, on and off the blockchain
## Subcommands
- [key](key) - Create a new keypair and print the public and private keys
- [account](account) - Create a new account on the blockchain
- [key](key.md) - Create a new keypair and print the public and private keys
- [account](account.md) - Create a new account on the blockchain
```console
Create various items, on and off the blockchain
+3 -3
View File
@@ -17,10 +17,10 @@ cleos get account eosio
```
```console
privileged: true
permissions:
permissions:
owner 1: 1 EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
active 1: 1 EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
memory:
memory:
quota: -1 bytes used: 1.22 Mb
net bandwidth: (averaged over 3 days)
@@ -106,4 +106,4 @@ cleos get account eosio --json
```
## See Also
- [Accounts and Permissions](https://developers.eos.io/welcome/latest/protocol/accounts_and_permissions) protocol document.
- [Accounts and Permissions](/protocol-guides/04_accounts_and_permissions.md) protocol document.
@@ -3,7 +3,7 @@
Gets current blockchain state and, if available, transaction information given the transaction id.
For query to work, the transaction finality status feature must be enabled by configuring
the chain plugin with the config option "--transaction-finality-status-max-storage-size-gb <size>"
the chain plugin with the config option "--transaction-finality-status-max-storage-size-gb \<size\>"
in nodeos.
## Position Parameters
@@ -19,7 +19,7 @@ in nodeos.
cleos get transaction-status 6438df82216dfaf46978f703fb818b49110dbfc5d9b521b5d08c342277438b29
```
This command simply returns the current chain status and transaction status information (if available).
This command simply returns the current chain status and transaction status information (if available).
```json
{
+4 -3
View File
@@ -12,7 +12,8 @@ Documentation for all `cleos` main commands
- [sign](sign.md) - Sign a transaction
- [push](push) - Push arbitrary transactions to the blockchain
- [multisig](multisig) - Multisig contract commands
<!--
- [wrap](wrap) - Wrap contract commands
-->
[//]: # ( THIS IS A COMMENT FOLLOWING LINE HAD JS COMMENTS JS COMMENTS BREAK MDX )
[//]: # ( wrap wrap - Wrap contract commands )
- [system](system) - Send eosio.system contract action to the blockchain.
@@ -4,7 +4,11 @@ cleos net connect [OPTIONS] host
```
**Where:**
* [OPTIONS] = See **Options** in the [**Command Usage**](command-usage) section below.
* [OPTIONS] = See **Options** section TBD
[//]: # ( THIS IS A COMMENT LINK BELOW IS BROKEN )
[//]: # (in the **Command Usage** command-usage section below.)
* host = The hostname:port to connect to
**Note:** The arguments and options enclosed in square brackets are optional.
@@ -4,8 +4,10 @@ cleos net disconnect [OPTIONS] host
```
**Where:**
* [OPTIONS] = See **Options** in the [**Command Usage**](command-usage) section below.
* host = The hostname:port to disconnect from
* [OPTIONS] = See **Options**section TBD
[//]: # ( THIS IS A COMMENT LINK BELOW IS BROKEN )
[//]: # (in the **Command Usage** command-usage section below.)
**Note:** The arguments and options enclosed in square brackets are optional.
@@ -8,11 +8,11 @@ Usage: cleos net SUBCOMMAND
```
## Subcommands
- [cleos net connect](connect) start a new connection to a peer
- [cleos net disconnect](disconnect) close an existing connection
- [cleos net status](status) status of existing connection
- [cleos net peers](peers) status of all existing peers
- [cleos net connect](connect.md) start a new connection to a peer
- [cleos net disconnect](disconnect.md) close an existing connection
- [cleos net status](status.md) status of existing connection
- [cleos net peers](peers.md) status of all existing peers
+4 -2
View File
@@ -4,7 +4,9 @@ cleos net peers [OPTIONS]
```
**Where:**
* [OPTIONS] = See **Options** in the [**Command Usage**](command-usage) section below.
* [OPTIONS] = See **Options** section TBD
[//]: # (in the **Command Usage** command-usage section below.)
**Note:** The arguments and options enclosed in square brackets are optional.
@@ -109,4 +111,4 @@ cleos -u http://127.0.0.1:8001 net peers
]
```
**Note:** The `last_handshake` field contains the chain state of each connected peer as of the last handshake message with the node. For more information read the [Handshake Message](https://developers.eos.io/welcome/latest/protocol/network_peer_protocol#421-handshake-message) in the *Network Peer Protocol* document.
**Note:** The `last_handshake` field contains the chain state of each connected peer as of the last handshake message with the node. For more information read the [Handshake Message](/protocol-guides/03_network_peer_protocol.md#421-handshake-message) in the *Network Peer Protocol* document.
+6 -2
View File
@@ -4,7 +4,11 @@ cleos net status [OPTIONS] host
```
**Where:**
* [OPTIONS] = See **Options** in the [**Command Usage**](command-usage) section below.
* [OPTIONS] = See **Options** section TBD
[//]: # ( THIS IS A COMMENT LINK BELOW IS BROKEN )
[//]: # (in the **Command Usage** command-usage section below.)
* host = The hostname:port to query status of connection
**Note:** The arguments and options enclosed in square brackets are optional.
@@ -63,4 +67,4 @@ cleos -u http://127.0.0.1:8002 net status localhost:9001
}
```
**Note:** The `last_handshake` field contains the chain state of the specified peer as of the last handshake message with the node. For more information read the [Handshake Message](https://developers.eos.io/welcome/latest/protocol/network_peer_protocol#421-handshake-message) in the *Network Peer Protocol* document.
**Note:** The `last_handshake` field contains the chain state of the specified peer as of the last handshake message with the node. For more information read the [Handshake Message](/protocol-guides/03_network_peer_protocol.md#421-handshake-message) in the *Network Peer Protocol* document.
@@ -12,9 +12,9 @@ Options:
```
## Subcommands
- [code](set-code) - create or update the code on an account
- [abi](set-abi) - create or update the abi on an account
- [contract](set-contract) - create or update the contract on an account
- [account](set-account) - set or update blockchain account state
- [action](set-action) - set or update blockchain action state
- [code](set-code.md) - create or update the code on an account
- [abi](set-abi.md) - create or update the abi on an account
- [contract](set-contract.md) - create or update the contract on an account
- [account](set-account.md) - set or update blockchain account state
- [action](set-action.md) - set or update blockchain action state
+1 -1
View File
@@ -88,4 +88,4 @@ The authority JSON object ...
```
## See Also
- [Accounts and Permissions](https://developers.eos.io/welcome/latest/protocol/accounts_and_permissions) protocol document.
- [Accounts and Permissions](/protocol-guides/04_accounts_and_permissions.md) protocol document.
+3 -3
View File
@@ -40,7 +40,7 @@ cleos set action permission
`-f,--force-unique` - force the transaction to be unique. this will consume extra bandwidth and remove any protections against accidently issuing the same transaction multiple times
`-s,--skip-sign` Specify if unlocked wallet keys
`-s,--skip-sign` Specify if unlocked wallet keys
should be used to sign transaction
`-j,--json` print result as json
@@ -65,9 +65,9 @@ should be used to sign transaction
#Link a `voteproducer` action to the 'voting' permissions
cleos set action permission sandwichfarm eosio.system voteproducer voting -p sandwichfarm@voting
#Now can execute the transaction with the previously set permissions.
#Now can execute the transaction with the previously set permissions.
cleos system voteproducer approve sandwichfarm someproducer -p sandwichfarm@voting
```
## See Also
- [Accounts and Permissions](https://developers.eos.io/welcome/latest/protocol/accounts_and_permissions) protocol document.
- [Accounts and Permissions](/protocol-guides/04_accounts_and_permissions.md) protocol document.
@@ -4,22 +4,22 @@ Actions related to REX (the resource exchange).
## Subcommands
- [deposit](system-rex-deposit) - Deposit into owner's REX fund by transfering from owner's liquid token balance
- [withdraw](system-rex-withdraw) - Withdraw from owner's REX fund by transfering to owner's liquid token balance
- [buyrex](system-rex-buyrex) - Buy REX using tokens in owner's REX fund
- [lendrex](system-rex-lendrex) - Deposit tokens to REX fund and use the tokens to buy REX
- [unstaketorex](system-rex-unstaketorex) - Buy REX using staked tokens
- [sellrex](system-rex-sellrex) - Sell REX tokens
- [cancelrexorder](system-rex-cancelrexorder) - Cancel queued REX sell order if one exists
- [mvtosavings](system-rex-mvtosavings) - Move REX tokens to savings bucket
- [mvfromsavings](system-rex-mvfromsavings) - Move REX tokens out of savings bucket
- [rentcpu](system-rex-rentcpu) - Rent CPU bandwidth for 30 days
- [rentnet](system-rex-rentnet) - Rent Network bandwidth for 30 days
- [fundcpuloan](system-rex-fundcpuloan) - Deposit into a CPU loan fund
- [fundnetloan](system-rex-fundnetloan) - Deposit into a Network loan fund
- [defundcpuloan](system-rex-defundcpuloan) - Withdraw from a CPU loan fund
- [defundnetloan](system-rex-defundnetloan) - Withdraw from a Network loan fund
- [consolidate](system-rex-consolidate) - Consolidate REX maturity buckets into one that matures in 4 days
- [updaterex](system-rex-updaterex) - Update REX owner vote stake and vote weight
- [rexexec](system-rex-rexexec) - Perform REX maintenance by processing expired loans and unfilled sell orders
- [closerex](system-rex-closerex) - Delete unused REX-related user table entries
- [deposit](system-rex-deposit.md) - Deposit into owner's REX fund by transfering from owner's liquid token balance
- [withdraw](system-rex-withdraw.md) - Withdraw from owner's REX fund by transfering to owner's liquid token balance
- [buyrex](system-rex-buyrex.md) - Buy REX using tokens in owner's REX fund
- [lendrex](system-rex-lendrex.md) - Deposit tokens to REX fund and use the tokens to buy REX
- [unstaketorex](system-rex-unstaketorex.md) - Buy REX using staked tokens
- [sellrex](system-rex-sellrex.md) - Sell REX tokens
- [cancelrexorder](system-rex-cancelrexorder.md) - Cancel queued REX sell order if one exists
- [mvtosavings](system-rex-mvtosavings.md) - Move REX tokens to savings bucket
- [mvfromsavings](system-rex-mvfromsavings.md) - Move REX tokens out of savings bucket
- [rentcpu](system-rex-rentcpu.md) - Rent CPU bandwidth for 30 days
- [rentnet](system-rex-rentnet.md) - Rent Network bandwidth for 30 days
- [fundcpuloan](system-rex-fundcpuloan.md) - Deposit into a CPU loan fund
- [fundnetloan](system-rex-fundnetloan.md) - Deposit into a Network loan fund
- [defundcpuloan](system-rex-defundcpuloan.md) - Withdraw from a CPU loan fund
- [defundnetloan](system-rex-defundnetloan.md) - Withdraw from a Network loan fund
- [consolidate](system-rex-consolidate.md) - Consolidate REX maturity buckets into one that matures in 4 days
- [updaterex](system-rex-updaterex.md) - Update REX owner vote stake and vote weight
- [rexexec](system-rex-rexexec.md) - Perform REX maintenance by processing expired loans and unfilled sell orders
- [closerex](system-rex-closerex.md) - Delete unused REX-related user table entries
@@ -1,5 +1,5 @@
## Subcommands
- [voteproducer proxy](system-voteproducer-proxy) - Vote your stake through a proxy
- [voteproducer prods](system-voteproducer-prods) - Vote for one or more producers
- [voteproducer approve](system-voteproducer-approve) -Add one producer to list of voted producers
- [voteproducer unapprove](system-voteproducer-unapprove) - Remove one producer from list of voted producers
- [voteproducer proxy](system-voteproducer-proxy.md) - Vote your stake through a proxy
- [voteproducer prods](system-voteproducer-prods.md) - Vote for one or more producers
- [voteproducer approve](system-voteproducer-approve.md) -Add one producer to list of voted producers
- [voteproducer unapprove](system-voteproducer-unapprove.md) - Remove one producer from list of voted producers
@@ -9,7 +9,7 @@ cleos version
```
## Subcommands
[client](client) - Retrieve version information of the client
[client](client.md) - Retrieve version information of the client
```sh
cleos version client
+1 -1
View File
@@ -8,7 +8,7 @@ content_title: Cleos
## Installation
`cleos` is distributed as part of the [EOSIO software suite](https://github.com/EOSIO/eos/blob/master/README.md). To install `cleos` just visit the [EOSIO Software Installation](../00_install/index.md) section.
`cleos` is distributed as part of the [EOSIO software suite](https://github.com/eosnetworkfoundation/mandel). To install `cleos` just visit the [EOSIO Software Installation](../00_install/index.md) section.
## Using Cleos
-5
View File
@@ -91,11 +91,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
@@ -21,7 +21,10 @@ None
## Dependencies
* [`http_plugin`](../http_plugin/index.md)
* `http_plugin`
[//]: # ( THIS IS A COMMENT LINK BELOW IS BROKEN )
[//]: # ( `http_plugin` ../http_plugin.md )
### Load Dependency Examples
@@ -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)
+1 -1
View File
@@ -8,7 +8,7 @@ content_title: Keosd
## Installation
`keosd` is distributed as part of the [EOSIO software suite](https://github.com/EOSIO/eos/blob/master/README.md). To install `keosd` just visit the [EOSIO Software Installation](../00_install/index.md) section.
`keosd` is distributed as part of the [EOSIO software suite](https://github.com/eosnetworkfoundation/mandel). To install `keosd` just visit the [EOSIO Software Installation](../00_install/index.md) section.
## Operation
@@ -1,3 +0,0 @@
---
link: /20_upgrade-guide/index.md
---
@@ -1,132 +0,0 @@
---
content_title: EOSIO 1.8 Consensus Protocol Upgrade Process
---
This guide is intended to instruct node operators on the steps needed to successfully transition an EOSIO network through a consensus protocol upgrade (also known as a "hard fork") with minimal disruption to users.
## Test networks
Before deploying the upgrade to any non-test networks, protocol upgrades should be deployed and verified on test networks. The version of nodeos supporting the initial set of protocol upgrades is [v1.8.1](https://github.com/EOSIO/eos/releases/tag/v1.8.1). Existing EOSIO-based test networks can use this version of nodeos to carry out and test the upgrade process.
This test upgrade process can give block producers of their respective EOSIO blockchain networks practice with carrying out the steps necessary to successfully coordinate the activation of the first consensus protocol upgrade feature (or just protocol feature for short), which will fork out any nodes that have not yet updated to the new version of nodeos by the time of activation. The process will also inform block producers of the requirements for nodes to upgrade nodeos to v1.8 from v1.7 and earlier, and it can help them decide an appropriate deadline to be given as notice to the community for when the first protocol feature will be activated.
Testing the upgrade process on test networks will also allow block explorers and other applications interacting with the blockchain to test the transition and the behavior of their applications under the new rules after activation of the individual protocol features. Some of the protocol features (`PREACTIVATE_FEATURE` and `NO_DUPLICATE_DEFERRED_ID` as examples) make slight changes to the block and transaction data structures, and therefore force applications that are reliant on the old structure to migrate. One of the protocol features (`RESTRICT_ACTION_TO_SELF`) restricts an existing authorization bypass (which has been deprecated since the v1.5.1 release of EOSIO) and could potentially break smart contracts that continue to rely on that authorization bypass.
## Upgrade process for all EOSIO networks (including test networks)
Because these steps require replay from genesis, after the release of [v1.8.1](https://github.com/EOSIO/eos/releases/tag/v1.8.1) of nodeos which supports the initial set of consensus protocol upgrades, all node operators should take the following steps as soon as possible. These steps should be followed on an additional node that they can afford to be taken offline for an extended period of time:
1. Ensure that their existing node is running the most recent stable release (1.7) of nodeos and then shut down nodeos.
2. Make a backup and delete the `blocks/reversible` directory, `state-history` directory, and `state` directory within the data directory.
3. Replace their old version of nodeos with the new release.
4. Start the new 1.8 release of nodeos and let it complete replay from genesis and catch up with syncing with the network. The node should receive blocks and LIB should advance. Nodes running v1.8 and v1.7 will continue to coexist in the same network prior to the activation of the first protocol upgrade feature.
A replay from genesis is required when upgrading nodeos from v1.7 to v1.8. Afterward, the v1.8 node can, as usual, start and stop quickly without requiring replays. The state directory generated by a v1.7 node will not be compatible with v1.8 of nodeos. Version 1 portable snapshots (generated by v1.7) will not be compatible with v1.8 which require the version 2 portable snapshots.
Due to the long amount of time it will take to replay from genesis (even longer if running with plugins that track history), block producers of the network are suggested to provide sufficient time to the community to upgrade their nodes prior to activating the first protocol upgrade feature.
Nodes that wish to make the transition but are not interested in tracking the history of the chain from genesis have an option to speed things up by using a version 2 portable snapshots that can be generated by synced v1.8 nodes. Since the portable snapshots are generated in a deterministic and portable manner, users can simply compare the hash of the snapshot files they downloaded from an arbitrary source to the hashes published by a variety of trusted sources, but only if they correspond to snapshots taken at the same block ID.
### Special notes to block producers
Block producers will obviously need to run the replay of nodeos on a separate machine that is not producing blocks. This machine will have to be production ready so that they can switch block production over to it when it has finished replaying and syncing. Alternatively, they can take a portable snapshot on the replay machine and move it to yet another machine which is production ready, then activate the switch over from their currently producing v1.7 BP node to the v1.8 node.
Nearly all of the protocol upgrade features introduced in v1.8 first require a special protocol feature (codename `PREACTIVATE_FEATURE`) to be activated and for an updated version of the system contract that utilizes the functionality introduced by that feature to be deployed. Block producers should be aware that as soon as the `PREACTIVATE_FEATURE` protocol feature is activated by the BPs, all nodes still on v1.7 will be unable to continue syncing normally and their last irreversible block will stop advancing. For this reason, it is important to coordinate when the activation happens and announce the expected activation date with sufficient time provided to the community to upgrade their nodes in time.
After activation of the `PREACTIVATE_FEATURE` and deployment of the updated system contract, block producers will be able to more easily coordinate activation of further protocol features. For the remaining protocol features in the v1.8 release, they can activate the features at any time and no preparation time needs to be given to the community since anyone synced up with the blockchain at that time will necessarily be on a version of nodeos that is at least v1.8 and therefore will support the entire initial set of protocol features. Furthermore, due to the `PREACTIVATE_FEATURE` protocol feature, they can activate the other remaining protocol features with an `eosio.msig` proposed transaction using the `activate` action in the new system contract and no replay is required.
The activation of the first protocol feature, `PREACTIVATE_FEATURE`, however cannot be done with an `eosio.msig` proposed transaction. It will require more coordination and manual action by the block producers. First, block producers should come to an agreement on the earliest time that they are willing to activate the first protocol feature.
The BPs should then set this chosen time in the configuration JSON file for the `PREACTIVATE_FEATURE` protocol upgrade of their v1.8 node. Specifically, they should modify the value for the `earliest_allowed_activation_time` field in the `protocol_features/BUILTIN-PREACTIVATE_FEATURE.json` file located in the config directory.
It is important that this configuration change happens prior to allowing that node to produce blocks on the network. As long as more than two-thirds of the active block producers have set the same future time in the configuration file for the `PREACTIVATE_FEATURE` on their BP nodes, the network will be safe from any attempts at premature activation by some other active BP.
After the agreed upon time has passed, any of the active block producers can activate the `PREACTIVATE_FEATURE` protocol feature with a simple request sent to the [`producer_api_plugin`](../01_nodeos/03_plugins/producer_api_plugin/index.md) of their BP node.
To determine the specific format of the request, the digest of the `PREACTIVATE_FEATURE` protocol feature must first be determined. This can be found by looking at nodeos startup logs, or by sending a request to the `get_supported_protocol_features` endpoint provided by the [`producer_api_plugin`](../01_nodeos/03_plugins/producer_api_plugin/index.md).
Send a request to the endpoint locally:
```
curl -X POST http://127.0.0.1:8888/v1/producer/get_supported_protocol_features -d '{}' | jq
```
In the returned array, find an object that references the `PREACTIVATE_FEATURE` codename, for example:
```
...
{
"feature_digest": "0ec7e080177b2c02b278d5088611686b49d739925a92d9bfcacd7fc6b74053bd",
"subjective_restrictions": {
"enabled": true,
"preactivation_required": false,
"earliest_allowed_activation_time": "1970-01-01T00:00:00.000"
},
"description_digest": "64fe7df32e9b86be2b296b3f81dfd527f84e82b98e363bc97e40bc7a83733310",
"dependencies": [],
"protocol_feature_type": "builtin",
"specification": [
{
"name": "builtin_feature_codename",
"value": "PREACTIVATE_FEATURE"
}
]
},
...
```
In this case, the digest of the `PREACTIVATE_FEATURE` protocol feature is `0ec7e080177b2c02b278d5088611686b49d739925a92d9bfcacd7fc6b74053bd` (note that the values may be different depending on the local changes made to the configuration of the protocol features that are specific to the blockchain network).
Then, the local block producing nodeos instance can be requested to activate the `PREACTIVATE_FEATURE` protocol at its earliest opportunity (i.e. the next time that node produces a block) using the following command:
```
curl -X POST http://127.0.0.1:8888/v1/producer/schedule_protocol_feature_activations -d '{"protocol_features_to_activate": ["0ec7e080177b2c02b278d5088611686b49d739925a92d9bfcacd7fc6b74053bd"]}' | jq
```
The above command should only be used after the time has passed the agreed upon `earliest_allowed_activation_time` for the `PREACTIVATE_FEATURE` protocol feature.
Any synced v1.8.x nodes can be used to check which protocol features have been activated using the following command:
```
curl -X POST http://127.0.0.1:8888/v1/chain/get_activated_protocol_features -d '{}' | jq
```
For example, if the `PREACTIVATE_FEATURE` protocol feature is activated, that command may return a result such as (specific values, especially the `activation_block_num`, may vary):
```
{
"activated_protocol_features": [
{
"feature_digest": "0ec7e080177b2c02b278d5088611686b49d739925a92d9bfcacd7fc6b74053bd",
"activation_ordinal": 0,
"activation_block_num": 348,
"description_digest": "64fe7df32e9b86be2b296b3f81dfd527f84e82b98e363bc97e40bc7a83733310",
"dependencies": [],
"protocol_feature_type": "builtin",
"specification": [
{
"name": "builtin_feature_codename",
"value": "PREACTIVATE_FEATURE"
}
]
}
]
}
```
Once the `PREACTIVATE_FEATURE` protocol feature has been activated, the [new system contract](https://github.com/EOSIO/eosio.contracts/releases/tag/v1.7.0) with the `activate` action can be deployed.
## Notes for block explorers, exchanges, and applications
Block explorers, exchanges, and applications building on the blockchain can all follow the four-step processes described above to upgrade their nodes in time and ensure their services continue when the first protocol upgrade is activated. However, they should also be aware that certain protocol features change the behavior of existing operations on the blockchain, and in some cases also slightly change the structure of blocks and transactions.
**First**, v1.8 changes the structure of transaction traces, even prior to the activation of any protocol features. Clients consuming transaction and action traces made available through [`history_plugin`](../01_nodeos/03_plugins/history_plugin/index.md), `mongo_db_plugin`, or [`state_history_plugin`](../01_nodeos/03_plugins/state_history_plugin/index.md) should be aware of the changes made to the trace structure (see details at [#7044](https://github.com/EOSIO/eos/pull/7044) and [#7108](https://github.com/EOSIO/eos/pull/7108)). Clients consuming the trace output of the `push_transaction` RPC from the chain API should not need to do anything since the output of that RPC should be backwards compatible. However, they are encouraged to replace usage of `push_transaction` with the new RPC [`send_transaction`](https://developers.eos.io/eosio-nodeos/reference#send_transaction) which uses the new flat structure to store the action traces.
The [`state_history_plugin`](../01_nodeos/03_plugins/state_history_plugin/index.md) has also changed its API and the structure of the files it stores on disk in a backwards incompatible way in v1.8. These changes reflect, among other things, the transaction trace structural changes and the data structure changes made within the chain state database to support the new protocol features. Consumers of the [`state_history_plugin`](../01_nodeos/03_plugins/state_history_plugin/index.md) will need to be updated to work with the new changes in v1.8.
**Second**, all protocol features are activated by signaling their 256-bit digest through a block. The block producer is able to place the digest of a protocol feature in a special section of the block header (called the block header extensions) that, under the original rules of v1.7, is expected to be empty. This change may especially be relevant to block explorers which need to ensure that their tools will not break because of the extra data included in the block header and ideally will update their block explorers to reflect the new information. The first time block explorers or other consumers of the blockchain data will encounter a non-empty block header extension is during the activation of the `PREACTIVATE_FEATURE` protocol feature.
**Third**, upon activation of the `NO_DUPLICATE_DEFERRED_ID` protocol feature, contract-generated deferred transactions will include a non-empty `transaction_extensions` field. While block explorers may be interested in exposing the contents of this field in a user-friendly way, clients are free to ignore it. However, for code dealing with the binary serialized form of these transactions directly, they must be capable of successfully deserializing the transaction with the extension data present. Note that this also applies to smart contract code that may be reading the deferred transaction that caused it to execute, whether it is because it is executing an action within the deferred transaction or executing the `eosio::onerror` notification handler of the contract that sent the (failed) deferred transaction.
**Fourth**, activation of the `RESTRICT_ACTION_TO_SELF` protocol feature will remove the authorization bypass that is available when a contract sends an inline action to itself (this authorization bypass was deprecated in the v1.5.1 release of EOSIO). Smart contract developers should ensure their contracts do not rely on this authorization bypass prior to the time the block producers activate the `RESTRICT_ACTION_TO_SELF` protocol feature, otherwise, their contracts may stop functioning correctly.
-52
View File
@@ -1,52 +0,0 @@
---
content_title: EOSIO 2.0 Upgrade Guide
---
This section contains important instructions for node operators and other EOSIO stakeholders to transition an EOSIO network successfully through an EOSIO version or protocol upgrade.
## Consensus Protocol Upgrades
EOSIO v2.0.x introduces two new consensus protocol upgrade features (or just protocol features for short):
1. `WEBAUTHN_KEY`: Adds support for WebAuthn keys and signatures ([#7421](https://github.com/EOSIO/eos/pull/7421))
2. `WTMSIG_BLOCK_SIGNATURES`: Adds support for weighted threshold multi-signature (WTMsig) authorities for block production ([#7404](https://github.com/EOSIO/eos/pull/7404), [#8002](https://github.com/EOSIO/eos/pull/8002), [#8021](https://github.com/EOSIO/eos/pull/8021))
Both of these features require activation through the privileged `preactivate_feature` intrinsic. This is typically facilitated by executing the `eosio::activate` system contract action (requires system contract [v1.7.0](https://github.com/EOSIO/eosio.contracts/releases/tag/v1.7.0) or later) via the `eosio.msig` contract after getting supermajority block producer approval. However, while these protocol features can be activated through coordination of the block producers alone, **it is still critical to give sufficient time for all nodes to upgrade to v2.0.x before activating any of the above two protocol features**. Activation of any of these two protocol features will immediately fork out any nodes that do not support the protocol features (e.g. any nodes running a version of nodeos earlier than v2.0.x).
Both of the above protocol features only add new behavior to the EOSIO blockchain. They are not expected to change existing behavior in a significant way that would cause existing contracts to break. Existing applications and block explorers are also unlikely to break upon activation of these protocol features. However, these new features enable new data structures to be utilized on-chain which applications and especially block explorers need to be prepared to handle. For example, activation of the `WEBAUTHN_KEY` protocol feature means that an `eosio::newaccount` or `eosio::updateauth` action could now include WebAuthn public keys as part of the provided `authority`. So, an application dealing with these actions (e.g. a general authenticator for EOSIO transactions) will need to be prepared to support the serialization of WebAuthn public keys appearing in a place where a `public_key` ABI type is expected. Another example is how the activation of the `WTMSIG_BLOCK_SIGNATURES` protocol feature causes the `new_producers` field of a block header to always remain empty, even when a proposed producer schedule gets promoted to pending; upon activation of the `WTMSIG_BLOCK_SIGNATURES` protocol feature, the pending schedule data is instead stored (when present) within the `header_extensions` of the block header. So, block explorers expecting to show these pending producer schedules to users will need to update their code accordingly. As usual, test networks provide a great environment to try existing contracts, applications, services, etc. with the changes of the above protocol features to determine what breaks and what needs to be updated.
For more details on the `WEBAUTH_KEY` protocol feature, see the section titled [WebAuthn Support](#webauthn-support-7421). For more details on the `WTMSIG_BLOCK_SIGNATURES` protocol feature, see the section titled [Weighted Threshold Multi-signature (WTMsig) Block Signing Authorities](#weighted-threshold-multi-signature-block-signing-authorities-7403).
### WebAuthn Support ([#7421](https://github.com/EOSIO/eos/pull/7421))
WebAuthn support within EOSIO is now available for developers to begin testing WebAuthn based transaction signing in their EOSIO applications. Private EOSIO chains can [start](https://github.com/EOSIO/eosio-webauthn-example-app) using WebAuthn based signatures with this release. We also anticipate releasing additional demos which will attempt to outline how Dapp authors can leverage WebAuthn for contract actions meriting higher levels of security as a second factor authorization mechanism.
### Weighted Threshold Multi-Signature Block Signing Authorities ([#7403](https://github.com/EOSIO/eos/issues/7403))
Block producers must be able to provide high availability for their core service of running the blockchain (aka producing blocks). A common approach to achieve this is redundant infrastructure that efficiently maintains block production, in the event of a hardware malfunction or networking issues. Weighted Threshold Multi-Signature Block Production is the first of many features that seek to provide block producers with a complete high availability solution.
Current consensus rules require exactly one cryptographic block signing key per block producer. This key, whether stored on disk and loaded via software or protected with a hardware wallet, represents a single-point-of-failure for the operations of a block producer. If that key is lost or access to the hardware module that contains it is temporarily unavailable, the block producer has no choice but to drop blocks, impacting the whole networks throughput.
To improve the security and scalability of block production, weighted threshold multi-signature (WTMsig) block signing authorities provides a permission layer that allows for multiple block signing keys in a flexible scheme that will enable redundant block signing infrastructure to exist without sharing any sensitive data.
An updated version of the system contract is required to enable block producers to use WTMsig block signing authorities. Version [v1.9.0-rc1](https://github.com/EOSIO/eosio.contracts/releases/tag/v1.9.0-rc1) of eosio.contracts adds a new `regproducer2` action to the eosio.system contract which enables a block producer candidate to register a WTMsig block signing authority. (That version of the system contract can only be deployed on an EOSIO chain that has activated the `WTMSIG_BLOCK_SIGNATURES` protocol feature.) More details are available at: [#7404](https://github.com/EOSIO/eos/pull/7404), [#8002](https://github.com/EOSIO/eos/pull/8002), [#8021](https://github.com/EOSIO/eos/pull/8021).
## Upgrading from previous versions of EOSIO
EOSIO v2.0.x has made changes to the state database that prevent it from working with existing state databases in v1.8.x and earlier. So upgrading from earlier versions of EOSIO requires importing the state from a portable snapshot.
Furthermore, the changes to the state database necessitate a version bump in the portable snapshots generated by EOSIO v2.0.x from v2 to v3. However, unlike the upgrade of portable snapshot versions in EOSIO v1.8.x from v1 to v2, EOSIO v2.0.x is able to import v2 portable snapshots. This means that it is not necessary to replay the blockchain from genesis to upgrade from EOSIO v1.8.x to v2.0.x. (One exception is if the operator of the node is using the deprecated history_plugin and wishes to preserve that history.)
Finally, EOSIO v2.0.x has also upgraded the version of the irreversible blocks log to v3. However, older versions of the blocks log are still supported, so there is no need to do anything special to handle existing blocks log files.
### Upgrading from v1.8.x
If the node uses the deprecated history_plugin (and the operator of the node wishes to preserve this history), the only option to upgrade is to replay the blockchain from genesis.
Users of the state_history_plugin (SHiP) do not need to replay from genesis because the state history logs are portable and contain versioned data structures within. However, upgrading a node that uses state history without a full replay means that the state history log will contain a mix of versions for any upgrade types. For example, the changes in v2.0.x modify the `global_property_object` in the database state and so the state history log could contain a `global_property_object_v0` type (for the part of the history before the local node upgrade) and a `global_property_object_v1` type (for the part of the history after the local node upgrade). This should not cause problems for any history fillers that have been updated to support both versions of the type. However, operators should be aware that this can lead to the log file contents being slightly different across different nodes even if they all start and stop at the same blocks and have not enabled `trace-history-debug-mode`. (Replaying a v2.0.x node with state_history_plugin enabled from genesis would guarantee that the state history logs do not contain the `global_property_object_v0` type.)
The following instructions should be followed to upgrade nodeos from v1.8.x to v2.0.x without a full replay (after making appropriate backup copies):
1. Obtain a compatible portable snapshot of the state. A v2 or v3 portable snapshot can be downloaded from a trusted source. Alternatively, one can use an existing v1.8.x node to generate a v2 portable snapshot by launching nodeos with `--read-mode=irreversible --plugin=eosio::producer_api_plugin` command-line options and then using the `/v1/producer/create_snapshot` RPC endpoint to generate a portable snapshot (e.g. run the command `curl -X POST http:/127.0.0.1:8888/v1/producer/create_snapshot -d '{}' | jq`).
2. Shut down nodeos and delete the `blocks/reversible` and `state` sub-directories within the data directory.
3. Launch nodeos v2.0.x from the generated snapshot using the `--snapshot` command line option and give it time to import the snapshot while starting up (this could take several minutes). (Subsequent launches of nodeos should not use the `--snapshot` option.)
### Upgrading from v2.0.0-rc1, v2.0.0-rc2, or v2.0.0-rc3
Node operators should consider upgrading v2.0.0-rc1, v2.0.0-rc2, and v2.0.0-rc3 nodes to v2.0.0 as soon as possible. They can follow normal upgrade procedures for the upgrade. There should be no need to do a replay or import from a snapshot.
-4
View File
@@ -1,4 +0,0 @@
---
link: /30_release-notes/index.md
link_text: v2.0.12
---
-21
View File
@@ -1,21 +0,0 @@
---
content_title: EOSIO v2.0.11 Release Notes
link_text: v2.0.11
---
This release contains security and miscellaneous fixes.
## Security bug fixes
### Consolidated Security Fixes for v2.0.11 ([#10147](https://github.com/EOSIO/eos/pull/10147))
- Fix issue with account query db that could result in incorrect data or hung processes
Note: These security fixes are relevant to all nodes on EOSIO blockchain networks.
## Other changes
- ([#10063](https://github.com/EOSIO/eos/pull/10063)) [release 2.0.x] Fix docker steps on tagged builds.
- ([#10135](https://github.com/EOSIO/eos/pull/10135)) Wlb/adding nodeos param tests 2.0.x
- ([#10133](https://github.com/EOSIO/eos/pull/10133)) fix compiling with boost 1.76; add <set> include in chainbase - 2.0
## Documentation
- ([#10094](https://github.com/EOSIO/eos/pull/10094)) [docs] Add EOSIO 2.0.10 release notes to dev portal - 2.0
-41
View File
@@ -1,41 +0,0 @@
---
content_title: EOSIO v2.0.10 Release Notes
link_text: v2.0.10
---
This release contains security, stability, and miscellaneous fixes.
## Security bug fixes
### Consolidated Security Fixes for v2.0.10 ([#10091](https://github.com/EOSIO/eos/pull/10091))
- Fix issue with account query db that could result in incorrect data or hung processes
- Implement a Subjective CPU billing system that helps P2P and API nodes better respond to extreme network congestion
Note: These security fixes are relevant to all nodes on EOSIO blockchain networks.
### Notes on Subjective CPU Billing
This system consists of two primary features: a subjective (node local) view of spent CPU resources that are not yet accounted for by the blockchain that allows individual nodes to predict what resource consumption will be and, a subjective penalty system to offset work done in service of erroneous or malicious transactions.
The subjective view of CPU resources will synchronize with the resources present in the blockchain as it discovers the true CPU billing for transactions it has already accounted for.
The system will also accumulate CPU resources spent on failing transactions that will not be relayed in a decaying "subjective penalty" which can protect the individual nodes from abusive actors while remaining tolerant to occasional mistakes.
Subjective billing defaults to active and can be disabled with the `disable-subjective-billing` configuration in `config.ini` or on the command line.
## Stability bug fixes
- ([#9985](https://github.com/EOSIO/eos/pull/9985)) EPE-389 net_plugin stall during head catchup - merge release/2.0.x
## Other changes
- ([#9894](https://github.com/EOSIO/eos/pull/9894)) EOS VM OC: Support LLVM 11 - 2.0
- ([#9911](https://github.com/EOSIO/eos/pull/9911)) add step to the pipeline to build and push to dockerhub on release br…
- ([#9944](https://github.com/EOSIO/eos/pull/9944)) Create eosio-debug-build Pipeline
- ([#9969](https://github.com/EOSIO/eos/pull/9969)) Updating name for the new Docker hub repo EOSIO instead EOS
- ([#9971](https://github.com/EOSIO/eos/pull/9971)) Fix pinned builds error due to obsolete LLVM repo
- ([#10015](https://github.com/EOSIO/eos/pull/10015)) [release 2.0.x] Fix LRT triggers
- ([#10026](https://github.com/EOSIO/eos/pull/10026)) EPE-165: Improve logic for unlinkable blocks while sync'ing
- ([#10047](https://github.com/EOSIO/eos/pull/10047)) Reduce Docker Hub Manifest Queries
- ([#10088](https://github.com/EOSIO/eos/pull/10088)) [release 2.0.x] Specify boost version for unpinned MacOS 10.14 builds
## Documentation
- ([#10011](https://github.com/EOSIO/eos/pull/10011)) [docs] Update various cleos how-tos and fix index - 2.0
-17
View File
@@ -1,17 +0,0 @@
---
content_title: EOSIO v2.0.9 Release Notes
link_text: v2.0.9
---
This release contains security and miscellaneous fixes.
## Security bug fixes
### Consolidated Security Fixes for 2.0.9 ([#9841](https://github.com/EOSIO/eos/pull/9841))
- Fixes to packed_transaction cache
- Transaction account fail limit refactor
Note: These security fixes are relevant to all nodes on EOSIO blockchain networks.
## Other Changes
- ([#9803](https://github.com/EOSIO/eos/pull/9803)) Fix stdout console logging: Merge back #9582 to 2.0.x
-59
View File
@@ -1,59 +0,0 @@
---
content_title: EOSIO v2.0.8 Release Notes
link_text: v2.0.8
---
This release contains security, stability, and miscellaneous fixes.
## Security bug fixes
### Consolidated Security Fixes for 2.0.8 ([#9745](https://github.com/EOSIO/eos/pull/9745))
- Adjust eos-vm-oc string intrinsic to perform as intended.
- Adjust CPU validation logic for unapplied transactions.
Note: These security fixes are relevant to all nodes on EOSIO blockchain networks.
## Stability bug fixes
- ([#9370](https://github.com/EOSIO/eos/pull/9370)) set medium priority for process signed block - 2.0.x
- ([#9382](https://github.com/EOSIO/eos/pull/9382)) Handle case newaccount in Account Query DB
- ([#9412](https://github.com/EOSIO/eos/pull/9412)) port the fix of flight bytes bug into release/2.0.x
- ([#9423](https://github.com/EOSIO/eos/pull/9423)) Update to fc with variant blob fix - 2.0
- ([#9441](https://github.com/EOSIO/eos/pull/9441)) Fix app() shutdown - 2.0
- ([#9516](https://github.com/EOSIO/eos/pull/9516)) Keep http_plugin_impl alive while connection objects are alive - 2.0
- ([#9624](https://github.com/EOSIO/eos/pull/9624)) Fixing typos on injected params for `producer_plugin::log_failed_tran…
## Other Changes
- ([#9304](https://github.com/EOSIO/eos/pull/9304)) relaxing the on_notify constraint to *
- ([#9311](https://github.com/EOSIO/eos/pull/9311)) Track Source Files Excluded from Code Coverage Reports
- ([#9314](https://github.com/EOSIO/eos/pull/9314)) Prevent an older version of g++ to build eosio
- ([#9334](https://github.com/EOSIO/eos/pull/9334)) Add missing comma in loggers array
- ([#9399](https://github.com/EOSIO/eos/pull/9399)) [2.0.x] Fix docker tags when building forked PRs
- ([#9638](https://github.com/EOSIO/eos/pull/9638)) Migrate CI from Docker Hub to Amazon ECR
- ([#9657](https://github.com/EOSIO/eos/pull/9657)) CI: Fix Serial Test Bug + Simplification + UX
- ([#9665](https://github.com/EOSIO/eos/pull/9665)) Add "Testing Changes" Section to Pull Request Template
## Documentation
- ([#9323](https://github.com/EOSIO/eos/pull/9323)) [docs] Remove unneeded options for nodeos replays - 2.0
- ([#9322](https://github.com/EOSIO/eos/pull/9322)) [docs] Remove redundant nodeos replay example - 2.0
- ([#9373](https://github.com/EOSIO/eos/pull/9373)) [docs] Fix broken link in Wallet API plugin - 2.0
- ([#9464](https://github.com/EOSIO/eos/pull/9464)) [docs] Create nodeos concepts folder and rearrange folders - 2.0
- ([#9479](https://github.com/EOSIO/eos/pull/9479)) [docs] Add explainers on CFD, eosio utilities, eosio-blocklog - 2.0
- ([#9487](https://github.com/EOSIO/eos/pull/9487)) [docs] Minor edits on CFD explainer and eosio-blocklog reference - 2.0
- ([#9488](https://github.com/EOSIO/eos/pull/9488)) [docs] Fix how-tos for delegating cpu/net with cleos - 2.0
- ([#9491](https://github.com/EOSIO/eos/pull/9491)) [docs] Add EOSIO upgrade guide 2.0 to dev portal
- ([#9492](https://github.com/EOSIO/eos/pull/9492)) Add explicit left nav link for eosio 2.0 upgrade guide - 2.0
- ([#9496](https://github.com/EOSIO/eos/pull/9496)) [docs] Add eosio 2.0 release notes to dev portal - 2.0
- ([#9498](https://github.com/EOSIO/eos/pull/9498)) [docs] Add trace_api_util reference to eosio utilities docs - 2.0
- ([#9503](https://github.com/EOSIO/eos/pull/9503)) [docs] Add slices, trace log, clog format explainers to Trace API plugin - 2.0
- ([#9584](https://github.com/EOSIO/eos/pull/9584)) [docs] Update cleos get table reference - 2.0
- ([#9592](https://github.com/EOSIO/eos/pull/9592)) [docs] Various additions/fixes to cleos reference - 2.0
- ([#9602](https://github.com/EOSIO/eos/pull/9602)) [docs] Fix broken anchor link on MacOS build from source - 2.0
- ([#9627](https://github.com/EOSIO/eos/pull/9627)) [docs] Update get_table_* reference in Chain API - 2.0
- ([#9753](https://github.com/EOSIO/eos/pull/9753)) [docs] Update URL in net_api_plugin description - 2.0
- ([#9754](https://github.com/EOSIO/eos/pull/9754)) [docs] Update some chain_api_plugin descriptions - 2.0
- ([#9756](https://github.com/EOSIO/eos/pull/9756)) [docs] Remove sudo command from install/uninstall script instructions - 2.0
## Thanks!
Special thanks to the community contributors that submitted patches for this release:
- @nsjames
-30
View File
@@ -1,30 +0,0 @@
---
content_title: EOSIO v2.0.7 Release Notes
link_text: v2.0.7
---
This release contains stability and miscellaneous fixes.
## Stability bug fixes
- ([#9223](https://github.com/EOSIO/eos/pull/9223)) Fix log of pending block producer - 2.0
## Changes
### The following logger has been added: `transaction_failure_tracing`. ([#9252](https://github.com/EOSIO/eos/pull/9252))
A detailed log that emits failed verdicts from relay nodes on the P2P network. In addition, it adds a logging statement for a failed signature condition.
### New config file option: `max-nonprivileged-inline-action-size`. ([#9262](https://github.com/EOSIO/eos/pull/9262))
This option is the cap for the size of an inline action above which a transaction will subjectively fail; the default value is 4KB.
## Other Changes
- ([#9170](https://github.com/EOSIO/eos/pull/9170)) Fix onblock trace tracking - 2.0
- ([#9201](https://github.com/EOSIO/eos/pull/9201)) [2.0.x] Anka version bump
- ([#9265](https://github.com/EOSIO/eos/pull/9265)) Remove Concurrency Groups for Scheduled Builds
## Documentation
- ([#9124](https://github.com/EOSIO/eos/pull/9124)) Update the authority example
- ([#9275](https://github.com/EOSIO/eos/pull/9275)) [docs] New threshold for non privileged inline actions - 2.0
- ([#9288](https://github.com/EOSIO/eos/pull/9288)) [docs] Fix character formatting in nodeos CLI option - 2.0
- ([#9290](https://github.com/EOSIO/eos/pull/9290)) [docs] Correct Producer API title in RPC reference - 2.0
-74
View File
@@ -1,74 +0,0 @@
---
content_title: EOSIO v2.0.6 Release Notes
link_text: v2.0.6
---
This release contains security, stability, and miscellaneous fixes.
## Security bug fixes
- ([#9172](https://github.com/EOSIO/eos/pull/9172)) Escape Unicode C1 control code points.
Note: These security fixes are relevant to API nodes on EOSIO blockchain networks.
## Stability bug fixes
- ([#9065](https://github.com/EOSIO/eos/pull/9065)) Fix for cleos and keosd race condition - 2.0
- ([#9089](https://github.com/EOSIO/eos/pull/9089)) make ship WA key serialization match expected serialization - 2.0
- ([#9095](https://github.com/EOSIO/eos/pull/9095)) fix gcc10 build due to libyubihsm problem - 2.0
- ([#9127](https://github.com/EOSIO/eos/pull/9127)) Fix onblock handling in trace_api_plugin - 2.0
- ([#9129](https://github.com/EOSIO/eos/pull/9129)) GCC 8.3 on CentOS 7 compiler workaround - 2.0
- ([#9128](https://github.com/EOSIO/eos/pull/9128)) Restore abi_serializer backward compatibility - 2.0
## Changes
### Add more information in trace-api-plugin responses for better usage. ([#9005](https://github.com/EOSIO/eos/pull/9005))
Adds `transaction_mroot`, `action_mroot` and `schedule_version` in block trace. Also adds `status`, `cpu_usage_us`, `net_usage_words`, `signatures`, and `transaction_header` in transaction trace.
### New RPC endpoint **`get_accounts_by_authorizers`** ([#8899](https://github.com/EOSIO/eos/pull/8899))
New optional RPC endpoint **`POST /v1/chain/get_accounts_by_authorizers`** added to `chain_api_plugin` that provides a super-set of the deprecated `history_api_plugin`'s `get_key_accounts` and `get_controlled_accounts` RPC methods.
Flag to enable endpoint (default false): **`--enable-account-queries`**
## Other Changes
- ([#8975](https://github.com/EOSIO/eos/pull/8975)) failing nodeos_run_test when core symbol is not SYS - 2.0
- ([#9002](https://github.com/EOSIO/eos/pull/9002)) Support Triggering a Build that Runs ALL Tests in One Build
- ([#9007](https://github.com/EOSIO/eos/pull/9007)) Improved reporting in nodeos_forked_chain_lr_test - 2.0.x
- ([#9013](https://github.com/EOSIO/eos/pull/9013)) Bugfix for uninitialized variable in cleos - 2.0
- ([#9009](https://github.com/EOSIO/eos/pull/9009)) Upgrade CLI11 to 1.9.0 - 2.0
- ([#9028](https://github.com/EOSIO/eos/pull/9028)) Fix keosd auto-launching after CLI11 upgrade - 2.0
- ([#9035](https://github.com/EOSIO/eos/pull/9035)) For Release 2.0 - Updated the priority of the APIs in producer_api_plugin and net_api_plugin to MEDIUM_HIGH
- ([#9049](https://github.com/EOSIO/eos/pull/9049)) add rapidjson license to install - 2.0
- ([#9052](https://github.com/EOSIO/eos/pull/9052)) Print stderr if keosd_auto_launch_test.py fails - 2.0
- ([#9060](https://github.com/EOSIO/eos/pull/9060)) Fix uninitialized struct members used as CLI flags - 2.0
- ([#9062](https://github.com/EOSIO/eos/pull/9062)) Fix timedelta and strftime usage - 2.0
- ([#9078](https://github.com/EOSIO/eos/pull/9078)) Update date in LICENSE - 2.0
- ([#9063](https://github.com/EOSIO/eos/pull/9063)) add help text to wasm-runtime - 2.0.x
- ([#9084](https://github.com/EOSIO/eos/pull/9084)) Add support for specifing a logging.json to keosd - 2.0
- ([#9082](https://github.com/EOSIO/eos/pull/9082)) Add change type to pull request template - 2.0
- ([#8899](https://github.com/EOSIO/eos/pull/8899)) Account Query DB : Proposal to maintain get_(key|controlled)_accounts [2.0]
- ([#9103](https://github.com/EOSIO/eos/pull/9103)) Add default contract name clarifier in how to deploy smart contract - 2.0
- ([#9109](https://github.com/EOSIO/eos/pull/9109)) [2.0.x] Bump Anka plugin version and timeouts.
- ([#9115](https://github.com/EOSIO/eos/pull/9115)) Simplify create_snapshot POST request - 2.0
- ([#9110](https://github.com/EOSIO/eos/pull/9110)) Update algorithm for determining number of parallel jobs - 2.0
## Documentation
- ([#8980](https://github.com/EOSIO/eos/pull/8980)) Add nodeos RPC API index, improve nodeos implementation doc, fix link - 2.0
- ([#8995](https://github.com/EOSIO/eos/pull/8995)) Update example logging.json - 2.0
- ([#9102](https://github.com/EOSIO/eos/pull/9102)) Fix inaccurate nodeos reference in wallet_api_plugin - 2.0
- ([#9116](https://github.com/EOSIO/eos/pull/9116)) Replace inaccurate wording in how to replay from snapshot - 2.0
- ([#9113](https://github.com/EOSIO/eos/pull/9113)) Add trace_api logger to docs - 2.0
- ([#9142](https://github.com/EOSIO/eos/pull/9142)) Add missing reference to RPC API index [docs] - 2.0
- ([#9141](https://github.com/EOSIO/eos/pull/9141)) Fix Trace API reference request/response inaccuracies [docs] - 2.0
- ([#9144](https://github.com/EOSIO/eos/pull/9144)) Fix title case issue in keosd how-to [docs] - 2.0
- ([#9145](https://github.com/EOSIO/eos/pull/9145)) Add conditional step in state history plugin how-to [docs] - 2.0
## Thanks!
Special thanks to the community contributors that submitted patches for this release:
- @cc32d9
- @oldcold
-65
View File
@@ -1,65 +0,0 @@
---
content_title: EOSIO v2.0.5 Release Notes
link_text: v2.0.5
---
This release contains security, stability, and miscellaneous fixes.
## Security bug fixes
### Consolidated Security Fixes for 2.0.5 ([#8983](https://github.com/EOSIO/eos/pull/8983))
- EOS-VM security fixes
Note: These security fixes are relevant to all nodes on EOSIO blockchain networks.
## Stability bug fixes
- ([#8826](https://github.com/EOSIO/eos/pull/8826)) trace_api_plugin yield timeout - 2.0
- ([#8836](https://github.com/EOSIO/eos/pull/8836)) fix potential leak in OC's wrapped_fd move assignment op - 2.0
## Changes
### Trace API Compressed Data Log Support ([#8826](https://github.com/EOSIO/eos/pull/8826), [#8837](https://github.com/EOSIO/eos/pull/8837), [#8881](https://github.com/EOSIO/eos/pull/8881))
Compressed file support was added to `trace_api_plugin`. See ([#8837](https://github.com/EOSIO/eos/pull/8837)) for more details.
The RPC call `v1/trace_api/get_block` now has "async" http support. Therefore, executing `get_block` no longer runs on the main application thread but on the configurable `http-threads` thread pool.
Additionally, `trace_api_plugin` now respects `http-max-response-time-ms` for limiting response time of RPC call `v1/trace_api/get_block`. It is very likely that the default value of `http-max-response-time-ms` will not be appropriate for large blocks and will need to be increased.
## Other Changes
- ([#8822](https://github.com/EOSIO/eos/pull/8822)) Merge minimize logging changes to 2.0.x
- ([#8823](https://github.com/EOSIO/eos/pull/8823)) yield_function for abi_serializer - 2.0
- ([#8855](https://github.com/EOSIO/eos/pull/8855)) Improve too many bytes in flight error info - 2.0
- ([#8861](https://github.com/EOSIO/eos/pull/8861)) HTTP Plugin async APIs [2.0]
- ([#8873](https://github.com/EOSIO/eos/pull/8873)) Fix spurious HTTP related test failure [2.0] (round 3)
- ([#8883](https://github.com/EOSIO/eos/pull/8883)) wabt: don't search for python because we don't run tests - 2.0
- ([#8884](https://github.com/EOSIO/eos/pull/8884)) Correctly Sanitize git Branch and Tag Names
- ([#8894](https://github.com/EOSIO/eos/pull/8894)) Increase get info priority to medium high
- ([#8889](https://github.com/EOSIO/eos/pull/8889)) Sync from snapshot - 2.0
- ([#8906](https://github.com/EOSIO/eos/pull/8906)) Remove assert check for error code 400 - release 2.0.x
- ([#8944](https://github.com/EOSIO/eos/pull/8944)) noop change to macos-10.14-unpinned.sh to regen CI image, 2.0
- ([#8941](https://github.com/EOSIO/eos/pull/8941)) replace boost::bind with std::bind, fixing boost 1.73beta builds - 2.0
- ([#8954](https://github.com/EOSIO/eos/pull/8954)) llvm 10 support for EOS VM OC - 2.0
- ([#8949](https://github.com/EOSIO/eos/pull/8949)) Replace bc with shell arithmetic - 2.0
- ([#8962](https://github.com/EOSIO/eos/pull/8962)) tests/get_table_tests.cpp: incorrect use of CORE_SYM_STR - 2.0
- ([#8963](https://github.com/EOSIO/eos/pull/8963)) Make /bin/df ignore $BLOCKSIZE - 2.0
- ([#8952](https://github.com/EOSIO/eos/pull/8952)) Fix SHIP block delay - 2.0
- ([#8972](https://github.com/EOSIO/eos/pull/8972)) Add possibility to run .cicd scripts from different environments (2.0.x Backport)
- ([#8968](https://github.com/EOSIO/eos/pull/8968)) Support Running ALL Tests in One Build
## Documentation changes
- ([#8825](https://github.com/EOSIO/eos/pull/8825)) remove leading $ chars from shell codeblocks in README.md - 2.0
- ([#8835](https://github.com/EOSIO/eos/pull/8835)) Trace API documentation update - 2.0
- ([#8843](https://github.com/EOSIO/eos/pull/8843)) Fix double titles for release 2.0.x
- ([#8845](https://github.com/EOSIO/eos/pull/8845)) [docs] trace api reference api correction - 2.0
- ([#8918](https://github.com/EOSIO/eos/pull/8918)) Updates to manual build instructions - 2.0
## Thanks!
Special thanks to the community contributors that submitted patches for this release:
- @cc32d9
- @maoueh
-88
View File
@@ -1,88 +0,0 @@
---
content_title: EOSIO v2.0.4 Release Notes
link_text: v2.0.4
---
This release contains stability and miscellaneous fixes.
## Deprecation Notices
The `read-only` option for the `read-mode` parameter in `nodeos` has been deprecated. It is possible to achieve the same behavior with `read-mode = head`, `p2p-accept-transactions = false`, and `api-accept-transactions = false`. See the sub-section "Accept transactions options" below for more details.
Please refer to the [Consolidated EOSIO Deprecations List](https://github.com/EOSIO/eos/issues/7597) for the currently active set of deprecation notices.
## Stability bug fixes
- ([#8684](https://github.com/EOSIO/eos/pull/8684)) Net plugin sync priority - 2.0
- ([#8729](https://github.com/EOSIO/eos/pull/8729)) Get info priority - 2.0
## Changes
### Trace API Plugin ([#8800](https://github.com/EOSIO/eos/pull/8800))
This release contains the first official release of the Trace API Plugin. This plugin is an optional addition to `nodeos` that stores a tailored view of the transactions and actions that execute on the chain retrievable at a block level. The Trace API focuses on operational maintainability storing data on the filesystem instead of in RAM like the deprecated `history-plugin` and organizing that data such that operators can easily prune old data without disrupting operations.
For more information, see the PR notes and the official documentation.
### Exit transaction early when there is insufficient account CPU ([#8638](https://github.com/EOSIO/eos/pull/8638))
`nodeos` no longer considers a transaction for inclusion in a block in the process of being produced if the billed account(s) do not have sufficient CPU available to cover the previously estimated CPU usage of the transaction (only if a previous estimate for CPU usage is available).
### Produce block immediately if resource limits are exhausted ([#8651](https://github.com/EOSIO/eos/pull/8651), [#8673](https://github.com/EOSIO/eos/pull/8673))
`nodeos` now immediately produces a block if either the CPU or NET usage thresholds are exceeded. This change includes a fix for dropping late blocks starting 50ms earlier than the block production window.
New options:
* `max-block-cpu-usage-threshold-us`:
Threshold (in microseconds) of CPU block production to consider block full; when accumulated CPU usage within a block is less than `max-block-cpu-usage-threshold-us` away from `max-block-cpu-usage`, the block can be produced immediately. Default value is 5000.
* `max-block-net-usage-threshold-bytes`:
Threshold (in bytes) of NET block production to consider block full; when accumulated NET usage within a block is less than `max-block-net-usage-threshold-us` away from `max-block-net-usage`, the block can be produced immediately. Default value is 1024.
### Accept transactions options ([#8702](https://github.com/EOSIO/eos/pull/8702))
New options:
* `p2p-accept-transactions`: Allow transactions received over p2p
network to be evaluated and relayed if valid. Default is true.
* `api-accept-transactions`: Allow API transactions to be evaluated
and relayed if valid. Default is true.
Provides ability to have a `read-mode = head` with `p2p-accept-transactions = false` and `api-accept-transactions = true`. This combination creates an efficient API node that is not burdened with processing P2P transactions.
The same behavior of the now deprecated `read-mode = read-only` can be achieved with `read-mode = head` by setting `p2p-accept-transactions = false` and `api-accept-transactions = false`.
**WARNING:** Use of `read-mode = irreversible` now requires setting `p2p-accept-transactions = false` and `api-accept-transactions = false` to avoid assertion at startup.
### Relay block early ([#8701](https://github.com/EOSIO/eos/pull/8701))
Improve block relaying performance when a block is from a trusted producer or if `nodeos` is running in light validation mode. This is achieved by relaying the block as soon as block header validation is complete (but before full block application/validation).
## Other Changes
- ([#8654](https://github.com/EOSIO/eos/pull/8654)) Fix format message. - 2.0
- ([#8668](https://github.com/EOSIO/eos/pull/8668)) Add troubleshooting item for PREACTIVATE_FEATURE protocol
- ([#8689](https://github.com/EOSIO/eos/pull/8689)) incoming-defer-ratio description - 2.0
- ([#8695](https://github.com/EOSIO/eos/pull/8695)) [2.0.x] Community PR tweaks.
- ([#8700](https://github.com/EOSIO/eos/pull/8700)) [2.0.x] Base images pipeline.
- ([#8714](https://github.com/EOSIO/eos/pull/8714)) [2.0.x] Actions rerun fixes.
- ([#8710](https://github.com/EOSIO/eos/pull/8710)) Add block producing explainer doc - 2.0
- ([#8721](https://github.com/EOSIO/eos/pull/8721)) Fix multiple version protocol test intermittent failure - 2.0
- ([#8727](https://github.com/EOSIO/eos/pull/8727)) Update the getting started link [merge 2]
- ([#8752](https://github.com/EOSIO/eos/pull/8752)) chain_api_plugin swagger file - 2.0
- ([#8756](https://github.com/EOSIO/eos/pull/8756)) Fixes #8600 clean up nodeos options section
- ([#8757](https://github.com/EOSIO/eos/pull/8757)) link cleos net status reference doc with the peer network protocol doc
- ([#8590](https://github.com/EOSIO/eos/pull/8590)) db_size_api_plugin swagger file - 2.0
- ([#8591](https://github.com/EOSIO/eos/pull/8591)) net_api_plugin swagger file - 2.0
- ([#8592](https://github.com/EOSIO/eos/pull/8592)) producer_api_plugin swagger file - 2.0
- ([#8593](https://github.com/EOSIO/eos/pull/8593)) test_control_api_plugin swagger file - 2.0
- ([#8754](https://github.com/EOSIO/eos/pull/8754)) swagger configuration for docs - 2.0
- ([#8762](https://github.com/EOSIO/eos/pull/8762)) Fix broken link in producer plugin docs - 2.0
- ([#8763](https://github.com/EOSIO/eos/pull/8763)) Fix wasm-runtime option parameters - 2.0
- ([#8765](https://github.com/EOSIO/eos/pull/8765)) Add Incoming-defer-ratio description - 2.0
- ([#8767](https://github.com/EOSIO/eos/pull/8767)) Fix other blocks.log callout - 2.0
- ([#8768](https://github.com/EOSIO/eos/pull/8768)) Improve create account description - 2.0
- ([#8782](https://github.com/EOSIO/eos/pull/8782)) link to librt when using posix timers - 2.0
- ([#8781](https://github.com/EOSIO/eos/pull/8781)) free unknown EOS VM OC codegen versions from the code cache - 2.0
- ([#8794](https://github.com/EOSIO/eos/pull/8794)) disable EOS VM on non-x86 platforms - 2.0
- ([#8803](https://github.com/EOSIO/eos/pull/8803)) Expire blacklisted scheduled transactions by LIB time - 2.0
- ([#8811](https://github.com/EOSIO/eos/pull/8811)) Add initial Trace API plugin docs to nodeos - 2.0
- ([#8814](https://github.com/EOSIO/eos/pull/8814)) Add RPC Trace API plugin reference to nodeos - 2.0
-29
View File
@@ -1,29 +0,0 @@
---
content_title: EOSIO v2.0.3 Release Notes
link_text: v2.0.3
---
This release contains security, stability, and miscellaneous fixes.
## Security bug fixes
### Consolidated Security Fixes for 2.0.3 ([#8643](https://github.com/EOSIO/eos/pull/8643))
- Add deadline to base58 encoding.
Note: These security fixes are relevant to all nodes on EOSIO blockchain networks.
## Stability bug fixes
- ([#8617](https://github.com/EOSIO/eos/pull/8617)) Init net_plugin member variables - 2.0
## Other Changes
- ([#8606](https://github.com/EOSIO/eos/pull/8606)) Skip sync from genesis and resume from state test on tagged builds
- ([#8612](https://github.com/EOSIO/eos/pull/8612)) [2.0.x] Actions for community PRs.
- ([#8633](https://github.com/EOSIO/eos/pull/8633)) remove brew's python@2 install - 2.0
- ([#8636](https://github.com/EOSIO/eos/pull/8636)) bump script's macos version check to 10.14 - 2.0
## Deprecation notice reminder
Please refer to the [Consolidated EOSIO Deprecations List](https://github.com/EOSIO/eos/issues/7597) for the currently active set of deprecation notices.
-46
View File
@@ -1,46 +0,0 @@
---
content_title: EOSIO v2.0.2 Release Notes
link_text: v2.0.2
---
This release contains security, stability, and miscellaneous fixes.
## Security bug fixes
### Consolidated Security Fixes for 2.0.2 ([#8595](https://github.com/EOSIO/eos/pull/8595))
- Restrict allowed block signature types.
Note: These security fixes are relevant to all nodes on EOSIO blockchain networks.
## Stability bug fixes
- ([#8526](https://github.com/EOSIO/eos/pull/8526)) Handle socket close before async callback - 2.0
- ([#8546](https://github.com/EOSIO/eos/pull/8546)) Net plugin dispatch - 2.0
- ([#8552](https://github.com/EOSIO/eos/pull/8552)) Net plugin unlinkable blocks - 2.0
- ([#8560](https://github.com/EOSIO/eos/pull/8560)) Backport of 8056 to 2.0
- ([#8561](https://github.com/EOSIO/eos/pull/8561)) Net plugin post - 2.0
- ([#8564](https://github.com/EOSIO/eos/pull/8564)) Delayed production time - 2.0
## Changes
### Limit block production window ([#8571](https://github.com/EOSIO/eos/pull/8571), [#8578](https://github.com/EOSIO/eos/pull/8578))
The new options `cpu-effort-percent` and `last-block-cpu-effort-percent` now provide a mechanism to restrict the amount of time a producer is processing transactions for inclusion into a block. It also controls the time a producer will finalize/produce and transmit a block. Block construction now always begins at whole or half seconds for the next block.
### Stricter signature parsing
Versions of EOSIO prior to v2.0.x accept keys and signatures containing extra data at the end. In EOSIO v2.0.x, the Base58 string parser performs additional sanity checks on keys and signatures to make sure they do not contain more data than necessary. These stricter checks cause nodes to reject signatures generated by some transaction signing libraries; eosjs v20 is known to generate proper signatures. For more information see issue [#8534](https://github.com/EOSIO/eos/issues/8534).
## Other Changes
- ([#8555](https://github.com/EOSIO/eos/pull/8555)) Drop late check - 2.0
- ([#8557](https://github.com/EOSIO/eos/pull/8557)) Read-only with drop-late-block - 2.0
- ([#8568](https://github.com/EOSIO/eos/pull/8568)) Timestamp watermark slot - 2.0.x
- ([#8577](https://github.com/EOSIO/eos/pull/8577)) [release 2.0.x] Documentation patch 1 update
- ([#8583](https://github.com/EOSIO/eos/pull/8583)) P2p read only - 2.0
- ([#8589](https://github.com/EOSIO/eos/pull/8589)) Producer plugin log - 2.0
## Deprecation notice reminder
Please refer to the [Consolidated EOSIO Deprecations List](https://github.com/EOSIO/eos/issues/7597) for the currently active set of deprecation notices.
-37
View File
@@ -1,37 +0,0 @@
---
content_title: EOSIO v2.0.1 Release Notes
link_text: v2.0.1
---
This release contains security, stability, and miscellaneous fixes.
## Security bug fixes
### Consolidated Security Fixes for 2.0.1 ([#8514](https://github.com/EOSIO/eos/pull/8514))
- Earlier block validation for greater security.
- Improved handling of deferred transactions during block production.
- Reduce net plugin logging and handshake size limits.
Note: These security fixes are relevant to all nodes on EOSIO blockchain networks.
## Stability bug fixes
- ([#8471](https://github.com/EOSIO/eos/pull/8471)) Remove new block id notify feature - 2.0
- ([#8472](https://github.com/EOSIO/eos/pull/8472)) Report block header diff when digests do not match - 2.0
- ([#8496](https://github.com/EOSIO/eos/pull/8496)) Drop late blocks - 2.0
- ([#8510](https://github.com/EOSIO/eos/pull/8510)) http_plugin shutdown - 2.0
## Other Changes
- ([#8430](https://github.com/EOSIO/eos/pull/8430)) Update fc to fix crash in logging
- ([#8435](https://github.com/EOSIO/eos/pull/8435)) [release/2.0.x] Update README.md and hotfix documentation links
- ([#8452](https://github.com/EOSIO/eos/pull/8452)) [2.0.x] [CI/CD] Boost will not install without SDKROOT
- ([#8457](https://github.com/EOSIO/eos/pull/8457)) [2.0.x] reverting fc
- ([#8458](https://github.com/EOSIO/eos/pull/8458)) [2.0.x] Pipeline file for testing the build script
- ([#8467](https://github.com/EOSIO/eos/pull/8467)) [2.0.x] Switching to using the EOSIO fork of anka-buildkite-plugin for security reasons
- ([#8515](https://github.com/EOSIO/eos/pull/8515)) [2.0.x] Don't trigger LRT a second time
## Deprecation notice reminder
Please refer to the [Consolidated EOSIO Deprecations List](https://github.com/EOSIO/eos/issues/7597) for the currently active set of deprecation notices.

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