Skip to content
This repository was archived by the owner on Aug 2, 2022. It is now read-only.

Merge develop into kv-database #8992

Merged
merged 173 commits into from
Apr 23, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
173 commits
Select commit Hold shift + click to select a range
399fbd8
fixes to chain library for reflection
ndcgundlach Jan 6, 2020
038dd7b
validation script fixes
ndcgundlach Jan 6, 2020
d1cbb3b
updated regex
ndcgundlach Jan 7, 2020
6836cf4
took out ignore
ndcgundlach Jan 7, 2020
78f71fb
updated regex to account for class enums
ndcgundlach Jan 7, 2020
76d89c4
fixed derived type reflection
ndcgundlach Jan 7, 2020
5c204e6
updated regex to handle using namespace
ndcgundlach Jan 7, 2020
ee54828
took out debug statements
ndcgundlach Jan 8, 2020
900d35c
Merge branch 'develop' into issue_7762_ref_fixes
ndcgundlach Jan 8, 2020
0609857
removed leftover debugging code
ndcgundlach Jan 8, 2020
4d6e9a6
updated reflection field pattern to trim leading and trailing spaces
ndcgundlach Jan 8, 2020
aaf71db
undid formatting changes given new reflection script capabilities
ndcgundlach Jan 8, 2020
583ab03
added correct ignores
ndcgundlach Jan 8, 2020
d6c719e
updated regex for reflection to not ignore last statement
ndcgundlach Jan 8, 2020
9126f21
minor reflection fixes based on output from validation script
ndcgundlach Jan 8, 2020
abea85f
minor reflection changes based on output of validation script
ndcgundlach Jan 8, 2020
902e198
updated ignores
ndcgundlach Jan 16, 2020
1d4fddd
added support for typedefs
ndcgundlach Jan 16, 2020
58ddead
reflection fixes
ndcgundlach Jan 27, 2020
f7c85fc
c++ parsing fixes
ndcgundlach Jan 27, 2020
c69d37d
Update eos-vm.
swatanabe-b1 Apr 2, 2020
335e3d2
updates to class/struct regex
ndcgundlach Apr 6, 2020
393fa01
added fix for template fields
ndcgundlach Apr 6, 2020
cffdf09
New host function system, precondition system, wasm_interface refacto…
Feb 10, 2020
3eff5d1
wip22
Mar 25, 2020
c4f9e1c
remove old pieces
Mar 25, 2020
e72b773
more changes, still compilation failures
Mar 30, 2020
7a50243
updated host functions
Mar 31, 2020
c74ed9e
finishing up
Apr 1, 2020
ff0250b
promote some host functions from legacy to new
Apr 1, 2020
e21b72d
hopefully now builds on buildkite
Apr 1, 2020
3e50afc
Passing some tests now
swatanabe-b1 Apr 3, 2020
e0aa1ee
Fix context-free checks
swatanabe-b1 Apr 3, 2020
fe650bf
Make error message for calling get_context_free_data match the old be…
swatanabe-b1 Apr 6, 2020
4db4bbb
Fix backwards test of contracts_console.
swatanabe-b1 Apr 6, 2020
aa678fc
More workarounds for clang.
swatanabe-b1 Apr 6, 2020
d58bf7c
Make sure that is_nan_check is applied to all forms of floating point…
swatanabe-b1 Apr 6, 2020
0dc65d4
Check for privileged functions
swatanabe-b1 Apr 6, 2020
cf66ae1
Quick hack to check imports.
swatanabe-b1 Apr 6, 2020
ed8d28a
Merge remote-tracking branch 'origin/develop' into feature/new_host_f…
swatanabe-b1 Apr 7, 2020
c9001ea
Update eos-vm
swatanabe-b1 Apr 7, 2020
1576b4b
Fix bounds checking for array arguments.
swatanabe-b1 Apr 7, 2020
79f07fc
Check for null references
swatanabe-b1 Apr 7, 2020
4244549
Add test case that triggers memory leak in reference_proxy.
swatanabe-b1 Apr 7, 2020
4a8594b
Add test that imports an intrinsic using the wrong signature.
swatanabe-b1 Apr 7, 2020
9ad41a1
added handling of multiple instances of same scope
ndcgundlach Apr 7, 2020
e0cd9b4
Merge remote-tracking branch 'origin/develop' into feature/new_host_f…
swatanabe-b1 Apr 8, 2020
11a917c
Use block_state of signal accepted_block instead of chain head as hea…
heifner Apr 9, 2020
585a251
Hack to make sure that unaligned pointers are written back in the cor…
swatanabe-b1 Apr 9, 2020
e7eb83e
Update eos-vm and adjust from/to_wasm to match.
swatanabe-b1 Apr 9, 2020
b8bca0d
Validate pointers early to reduce memory leaks. This is not a comple…
swatanabe-b1 Apr 9, 2020
5adfc46
Merge remote-tracking branch 'origin/update-eos-vm' into feature/new_…
swatanabe-b1 Apr 9, 2020
316fe46
Use eos-vm to check intrinsic linking at setcode.
swatanabe-b1 Apr 9, 2020
4709974
replace boost::bind with std::bind
spoonincode Apr 9, 2020
17e47da
removed @ignore ids
ndcgundlach Apr 9, 2020
b4851c8
Test and fix another memory leak case.
swatanabe-b1 Apr 9, 2020
77c920e
Move validate_reflection.py from tools folder into tests folder
kj4ezj Aug 15, 2019
9d14709
Created validate-reflection-test in parallel test group
kj4ezj Aug 15, 2019
dedb64f
Remove validate_reflection.py from /tools/CMakeLists.txt
kj4ezj Aug 15, 2019
e5dfe4f
Fix path issues with run context and test code
kj4ezj Aug 15, 2019
c6ffc9d
Switch to void* to match eos-vm
swatanabe-b1 Apr 9, 2020
fca1ae6
fixed test cmake file
ndcgundlach Apr 9, 2020
43cae3e
fixed test cmake file
ndcgundlach Apr 9, 2020
e12febd
fixed path
ndcgundlach Apr 9, 2020
35874a0
Merge branch 'develop' into issue_7762_ref_fixes
ndcgundlach Apr 9, 2020
cd07927
Switch reference arguments to use (non-legacy) reference_proxy
swatanabe-b1 Apr 9, 2020
de1e98e
test path fix
ndcgundlach Apr 9, 2020
aff0450
another try to fix path issue
ndcgundlach Apr 10, 2020
204922f
Merge remote-tracking branch 'origin/develop' into feature/new_host_f…
swatanabe-b1 Apr 10, 2020
cbae2e6
Chainlib support for replacing keys
tbfleming Apr 10, 2020
9a74f08
fixed reflection issue
ndcgundlach Apr 10, 2020
acf7600
fixed handling of 'using'
ndcgundlach Apr 10, 2020
c07c3bb
fix boost URL in mojave cicd script
spoonincode Apr 10, 2020
9f30542
Merge pull request #8930 from EOSIO/fix_cicd_mojave
spoonincode Apr 10, 2020
89dd9e0
Add fix and test
allenhan2 Apr 10, 2020
4375b42
Add back the format line
allenhan2 Apr 10, 2020
7dfd66a
Rename action_id type for gcc
heifner Apr 10, 2020
1ec7cd2
Merge pull request #8932 from EOSIO/gcc-fix-dev
heifner Apr 10, 2020
daa9974
Merge remote-tracking branch 'origin/develop' into replace_keys
tbfleming Apr 10, 2020
d2bee06
PR feedback
tbfleming Apr 10, 2020
55622e8
Merge pull request #8929 from EOSIO/replace_keys
tbfleming Apr 11, 2020
a98b91d
Merge branch 'develop' into fix_sign_unpack_data
allenhan2 Apr 11, 2020
d11b52f
Merge pull request #8931 from EOSIO/fix_sign_unpack_data
allenhan2 Apr 11, 2020
ca4caa3
fixed initializer regex
ndcgundlach Apr 13, 2020
aaee205
removed @ignore ids
ndcgundlach Apr 13, 2020
9a56364
Merge remote-tracking branch 'origin/develop' into update-eos-vm
swatanabe-b1 Apr 13, 2020
1fd2e74
Update eos-vm to eosio branch.
swatanabe-b1 Apr 13, 2020
9595158
Merge pull request #8905 from EOSIO/update-eos-vm
swatanabe-b1 Apr 13, 2020
ce12067
is_privileged and set_privileged are privileged intrinsics. Also upd…
swatanabe-b1 Apr 13, 2020
0ed7350
Fix broken Docker build of C7 pinned image.
scottarnette Apr 14, 2020
c07a02d
Merge pull request #8937 from EOSIO/cicd-c7-pinned-fix
scottarnette Apr 14, 2020
def927a
Fix and validate interpretation of get_active_producers size argument
swatanabe-b1 Apr 14, 2020
8814c20
Merge pull request #8409 from EOSIO/issue_7762_ref_fixes
brianjohnson5972 Apr 15, 2020
9e97cbc
Merge pull request #8928 from EOSIO/replace_boostbind_stdbind
spoonincode Apr 15, 2020
7037eda
Don't change whitespace in error message.
swatanabe-b1 Apr 15, 2020
33eed6e
Don't skip Mojave tests when RUN_ALL_TESTS is set to 'true'
kj4ezj Apr 15, 2020
d32a307
Replace bc with shell arithmetic
revl Apr 15, 2020
2888737
Merge pull request #8958 from EOSIO/replace-bc-with-shell-arithmetic-dev
revl Apr 16, 2020
e95aa6a
Fix memory API validation and add tests
swatanabe-b1 Apr 16, 2020
4918c8f
Merge remote-tracking branch 'origin/develop' into feature/new_host_f…
swatanabe-b1 Apr 16, 2020
7a32a15
Make /bin/df ignore $BLOCKSIZE
revl Apr 16, 2020
6e9cc2a
Remove checktime and call_depth_assert. They are only needed by wabt.
swatanabe-b1 Apr 16, 2020
e930e08
Remove wabt.
swatanabe-b1 Apr 16, 2020
2582321
Hard-code alignment values that affect consensus.
swatanabe-b1 Apr 16, 2020
8ab8387
Merge pull request #8959 from EOSIO/fix-df-invocation-dev
revl Apr 16, 2020
69bd5d9
Allow the multiversion test to be forced-on by setting SKIP_MULTIVERS…
kj4ezj Apr 15, 2020
41ec9e8
Allow Mojave to be forced-on by setting SKIP_MACOS_10_14='false' rega…
kj4ezj Apr 15, 2020
ec63060
Run long-running tests synchronously when RUN_ALL_TESTS is set to 'true'
kj4ezj Apr 16, 2020
ee0c834
Allow LRTs to be forced-on by setting SKIP_LONG_RUNNING_TESTS='false'
kj4ezj Apr 16, 2020
92a32d1
Simplify confusing logic statements surrounding when to run Mojave
kj4ezj Apr 16, 2020
0833cfb
Add unit tests for replace keys
allenhan2 Apr 17, 2020
bfd302a
Add no throw check
allenhan2 Apr 17, 2020
60a8a93
Bump Catalina version.
scottarnette Apr 16, 2020
5b0bc97
tests/get_table_tests.cpp: incorrect use of CORE_SYM_STR
cc32d9 Apr 16, 2020
d6a776c
Merge pull request #8966 from EOSIO/cicd-mac-bump-dev
scottarnette Apr 17, 2020
a5cd859
review comments fix
allenhan2 Apr 17, 2020
ffc3d06
Remove bits of wavm that are no longer needed.
swatanabe-b1 Apr 17, 2020
202d191
Simplify logic for synchronous LRT steps
kj4ezj Apr 17, 2020
0ed0503
Merge pull request #8964 from EOSIO/replace-keys-unittest
allenhan2 Apr 17, 2020
4652e39
Merge pull request #8967 from EOSIO/eosio-upstream-pr-dev
heifner Apr 17, 2020
f688f5a
Update to handle const& precondition parameters correctly.
swatanabe-b1 Apr 17, 2020
b2b4e5d
Fix incorrect type in validation
swatanabe-b1 Apr 17, 2020
504581a
Merge pull request #8927 from EOSIO/fix-ship-delay-dev
heifner Apr 18, 2020
160985f
Remove more references to wabt
swatanabe-b1 Apr 20, 2020
6ea3db0
Minor cleanup
swatanabe-b1 Apr 20, 2020
88cd197
Use string_view in whitelisted_intrinsics.
swatanabe-b1 Apr 20, 2020
ed92d74
Remove dead macros.
swatanabe-b1 Apr 20, 2020
4f2bf4c
Check that we can only import from env.
swatanabe-b1 Apr 20, 2020
e39bfae
Remove uses vm::reference. It has no alignment guarantees and is unu…
swatanabe-b1 Apr 20, 2020
a3e8c41
Merge pull request #8961 from EOSIO/zach-all-tests
kj4ezj Apr 20, 2020
f881e8b
Switch all intrinsics with reference arguments back to legacy.
swatanabe-b1 Apr 20, 2020
e07f889
Replace early_validate_pointers with null_pointer_check. Bounds are …
swatanabe-b1 Apr 20, 2020
d7ee8fd
Legacy intrinsics should not have an alias check.
swatanabe-b1 Apr 20, 2020
925fea5
Update eos-vm
swatanabe-b1 Apr 20, 2020
c46d093
Functions that take no pointers can be non-legacy.
swatanabe-b1 Apr 20, 2020
61eef04
Revert to old injected module name.
swatanabe-b1 Apr 20, 2020
c60bb22
Fix is_aliasing and check aliasing for all pointers, not just arrays.
swatanabe-b1 Apr 20, 2020
305ec46
add nodeos RPC API index file
Apr 21, 2020
65ab74c
fix broken link in nodeos implementation doc and improve contents
Apr 21, 2020
cc83cb3
minor edits on nodeos implementation doc
Apr 21, 2020
588caa8
add content fixes to the chain database
Apr 21, 2020
c0f4e7c
add content fixes regarding read-only mode
Apr 21, 2020
c5a6825
add deprecation notice regarding read-only mode
Apr 21, 2020
14b3577
move head block explainer to reversible_blocks
Apr 21, 2020
ed5a94b
minor edits to the kv database callout
Apr 21, 2020
134c2e8
minor edits to read-only deprecation callout
Apr 21, 2020
d8daa7b
remove kv database callout for now
Apr 21, 2020
fe57607
remove inaccurate block irreversibility sentence
Apr 21, 2020
be53680
Update to match changes in reference_proxy.
swatanabe-b1 Apr 21, 2020
d453634
Rename legacy_array_ptr to legacy_span
swatanabe-b1 Apr 21, 2020
3b19d3b
Remove unnecessary overload of from_wasm
swatanabe-b1 Apr 22, 2020
55dfd7b
Use legacy_span<const char> wherever possible.
swatanabe-b1 Apr 22, 2020
5a0d052
Fix read_action_data.
swatanabe-b1 Apr 22, 2020
ad7249f
Use get_original_pointer() instead of direct access to original_ptr.
swatanabe-b1 Apr 22, 2020
5b1c328
Make the memory api return void* instead of char*
swatanabe-b1 Apr 22, 2020
7e09dd1
Make some members const
swatanabe-b1 Apr 22, 2020
164a889
Merge pull request #8979 from EOSIO/fix-8973-8978
lparisc Apr 22, 2020
170eaeb
Remove overloads of from_wasm that were duplicated from the base clas…
swatanabe-b1 Apr 22, 2020
b5d46b9
Only allow span<[const] char>
swatanabe-b1 Apr 22, 2020
d751747
Remove unused constant
swatanabe-b1 Apr 22, 2020
847d231
Merge non-legacy preconditions into core_precondition
swatanabe-b1 Apr 22, 2020
3b6c3d7
Remove out-dated comment
swatanabe-b1 Apr 22, 2020
ba81863
Simplify conditions
swatanabe-b1 Apr 22, 2020
599b2c2
Use string_view
swatanabe-b1 Apr 22, 2020
df94c5c
Make apply_context::require_authorization const.
swatanabe-b1 Apr 22, 2020
87818c7
Fix #undefs.
swatanabe-b1 Apr 22, 2020
e82fb96
One more #undef
swatanabe-b1 Apr 22, 2020
1d5d06d
Update eos-vm
swatanabe-b1 Apr 22, 2020
ed3effd
Merge pull request #8868 from EOSIO/feature/new_host_function_system
swatanabe-b1 Apr 22, 2020
d6bd15c
set_action_return_value does not need to be legacy
arhag Apr 22, 2020
df4af44
Merge pull request #8991 from EOSIO/set_action_return_value-not-legacy
arhag Apr 23, 2020
94582f6
Merge branch 'develop' into kv-database
arhag Apr 23, 2020
6fa433f
avoid aliasing in kv_tests/notify
arhag Apr 23, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 12 additions & 4 deletions .cicd/generate-pipeline.sh
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,10 @@ for FILE in $(ls $CICD_DIR/platforms/$PLATFORM_TYPE); do
# macos-10.14
# ubuntu-16.04
# skip Mojave if it's anything but the post-merge build
[[ $FILE_NAME =~ 'macos-10.14' ]] && ( [[ $BUILDKITE_SOURCE != 'webhook' ]] || [[ $BUILDKITE_PULL_REQUEST != false ]] || [[ ! $BUILDKITE_MESSAGE =~ 'Merge pull request' ]] ) && export SKIP_MACOS_10_14=true && continue
if [[ "$FILE_NAME" =~ 'macos-10.14' && "$SKIP_MACOS_10_14" != 'false' && "$RUN_ALL_TESTS" != 'true' && ( "$BUILDKITE_SOURCE" != 'webhook' || "$BUILDKITE_PULL_REQUEST" != 'false' || ! "$BUILDKITE_MESSAGE" =~ 'Merge pull request' ) ]]; then
export SKIP_MACOS_10_14='true'
continue
fi
export PLATFORM_NAME="$(echo $FILE_NAME | cut -d- -f1 | sed 's/os/OS/g')"
# macOS
# ubuntu
Expand Down Expand Up @@ -67,7 +70,7 @@ for FILE in $(ls $CICD_DIR/platforms/$PLATFORM_TYPE); do
if [[ $FILE_NAME =~ 'macos-10.14' ]]; then
export ANKA_TEMPLATE_NAME='10.14.6_6C_14G_40G'
elif [[ $FILE_NAME =~ 'macos-10.15' ]]; then
export ANKA_TEMPLATE_NAME='10.15.3_6C_14G_40G'
export ANKA_TEMPLATE_NAME='10.15.4_6C_14G_40G'
else # Linux
export ANKA_TAG_BASE=''
export ANKA_TEMPLATE_NAME=''
Expand All @@ -93,9 +96,14 @@ if [[ ! -z ${BUILDKITE_TRIGGERED_FROM_BUILD_ID} ]]; then
fi
export BUILD_SOURCE=${BUILD_SOURCE:---build \$BUILDKITE_BUILD_ID}
# set trigger_job if master/release/develop branch and webhook
if [[ ! $BUILDKITE_PIPELINE_SLUG =~ 'lrt' ]] && [[ $BUILDKITE_BRANCH =~ ^release/[0-9]+\.[0-9]+\.x$ || $BUILDKITE_BRANCH =~ ^master$ || $BUILDKITE_BRANCH =~ ^develop$ ]]; then
if [[ ! $BUILDKITE_PIPELINE_SLUG =~ 'lrt' ]] && [[ $BUILDKITE_BRANCH =~ ^release/[0-9]+\.[0-9]+\.x$ || $BUILDKITE_BRANCH =~ ^master$ || $BUILDKITE_BRANCH =~ ^develop$ || "$SKIP_LONG_RUNNING_TESTS" == 'false' ]]; then
[[ $BUILDKITE_SOURCE != 'schedule' ]] && export TRIGGER_JOB=true
fi
# run LRTs synchronously when running full test suite
if [[ "$RUN_ALL_TESTS" == 'true' && "$SKIP_LONG_RUNNING_TESTS" != 'true' ]]; then
export SKIP_LONG_RUNNING_TESTS='false'
export TRIGGER_JOB='false'
fi
oIFS="$IFS"
IFS=$''
nIFS=$IFS # fix array splitting (\n won't work)
Expand Down Expand Up @@ -457,7 +465,7 @@ EOF
fi
done
# Execute multiversion test
if ( [[ ! $PINNED == false ]] ); then
if [[ ! "$PINNED" == 'false' || "$SKIP_MULTIVERSION_TEST" == 'false' ]]; then
cat <<EOF
- label: ":pipeline: Multiversion Test"
command:
Expand Down
1 change: 0 additions & 1 deletion .cicd/platforms/pinned/centos-7.7-pinned.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ RUN curl -LO https://github.com/Kitware/CMake/releases/download/v3.16.2/cmake-3.
make -j$(nproc) && \
make install && \
rm -rf cmake-3.16.2.tar.gz cmake-3.16.2
COPY ./scripts/clang-devtoolset8-support.patch /tmp/clang-devtoolset8-support.patch
# build clang10
RUN git clone --single-branch --branch llvmorg-10.0.0 https://github.com/llvm/llvm-project clang10 && \
mkdir /clang10/build && cd /clang10/build && \
Expand Down
2 changes: 1 addition & 1 deletion .cicd/platforms/pinned/macos-10.14-pinned.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ rm -rf clang10
# install boost from source
## Boost Fix: eosio/install/bin/../include/c++/v1/stdlib.h:94:15: fatal error: 'stdlib.h' file not found
export SDKROOT="$(xcrun --sdk macosx --show-sdk-path)"
curl -LO https://dl.bintray.com/boostorg/release/1.71.0/source/boost_1_72_0.tar.bz2
curl -LO https://dl.bintray.com/boostorg/release/1.72.0/source/boost_1_72_0.tar.bz2
tar -xjf boost_1_72_0.tar.bz2
cd boost_1_72_0
./bootstrap.sh --prefix=/usr/local
Expand Down
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,6 @@
[submodule "libraries/fc"]
path = libraries/fc
url = https://github.com/EOSIO/fc
[submodule "libraries/wabt"]
path = libraries/wabt
url = https://github.com/EOSIO/wabt
[submodule "libraries/yubihsm"]
path = libraries/yubihsm
url = https://github.com/Yubico/yubihsm-shell
Expand Down
23 changes: 10 additions & 13 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -62,17 +62,17 @@ endif()
# WASM runtimes to enable. Each runtime in this list will have:
# * definition EOSIO_<RUNTIME>_RUNTIME_ENABLED defined in public libchain interface
# * ctest entries with --runtime
list(APPEND EOSIO_WASM_RUNTIMES wabt) #always enable wabt; it works everywhere and parts of eosio still assume it's always available
# TODO reenable later
if(CMAKE_SIZEOF_VOID_P EQUAL 8 AND NOT WIN32)
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux" AND "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64")
list(APPEND EOSIO_WASM_RUNTIMES eos-vm-oc)
# EOS VM OC requires LLVM, but move the check up here to a central location so that the EosioTester.cmakes
# can be created with the exact version found
find_package(LLVM REQUIRED CONFIG)
if(LLVM_VERSION_MAJOR VERSION_LESS 7 OR LLVM_VERSION_MAJOR VERSION_GREATER 10)
message(FATAL_ERROR "EOSIO requires an LLVM version 7.0 to 10.0")
endif()
endif()
#if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux" AND "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64")
# #list(APPEND EOSIO_WASM_RUNTIMES eos-vm-oc)
# # EOS VM OC requires LLVM, but move the check up here to a central location so that the EosioTester.cmakes
# # can be created with the exact version found
# find_package(LLVM REQUIRED CONFIG)
# if(LLVM_VERSION_MAJOR VERSION_LESS 7 OR LLVM_VERSION_MAJOR VERSION_GREATER 10)
# message(FATAL_ERROR "EOSIO requires an LLVM version 7.0 to 10.0")
# endif()
#endif()
endif()

if(CMAKE_SIZEOF_VOID_P EQUAL 8 AND NOT WIN32)
Expand Down Expand Up @@ -203,8 +203,6 @@ install(FILES ${CMAKE_BINARY_DIR}/modules/EosioTester.cmake DESTINATION ${CMAKE_

configure_file(${CMAKE_SOURCE_DIR}/LICENSE
${CMAKE_BINARY_DIR}/licenses/eosio/LICENSE COPYONLY)
configure_file(${CMAKE_SOURCE_DIR}/libraries/wabt/LICENSE
${CMAKE_BINARY_DIR}/licenses/eosio/LICENSE.wabt COPYONLY)
configure_file(${CMAKE_SOURCE_DIR}/libraries/softfloat/COPYING.txt
${CMAKE_BINARY_DIR}/licenses/eosio/LICENSE.softfloat COPYONLY)
configure_file(${CMAKE_SOURCE_DIR}/libraries/wasm-jit/LICENSE
Expand All @@ -219,7 +217,6 @@ configure_file(${CMAKE_SOURCE_DIR}/libraries/eos-vm/LICENSE
${CMAKE_BINARY_DIR}/licenses/eosio/LICENSE.eos-vm COPYONLY)

install(FILES LICENSE DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/licenses/eosio/ COMPONENT base)
install(FILES libraries/wabt/LICENSE DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/licenses/eosio/ RENAME LICENSE.wabt COMPONENT base)
install(FILES libraries/softfloat/COPYING.txt DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/licenses/eosio/ RENAME LICENSE.softfloat COMPONENT base)
install(FILES libraries/wasm-jit/LICENSE DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/licenses/eosio/ RENAME LICENSE.wavm COMPONENT base)
install(FILES libraries/fc/secp256k1/upstream/COPYING DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/licenses/eosio/ RENAME LICENSE.secp256k1 COMPONENT base)
Expand Down
2 changes: 0 additions & 2 deletions CMakeModules/EosioTester.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@ endif()

find_library(libwasm WASM @CMAKE_INSTALL_PREFIX@/lib64 @CMAKE_INSTALL_PREFIX@/lib NO_DEFAULT_PATH)
find_library(libwast WAST @CMAKE_INSTALL_PREFIX@/lib64 @CMAKE_INSTALL_PREFIX@/lib NO_DEFAULT_PATH)
find_library(libwabt wabt @CMAKE_INSTALL_PREFIX@/lib64 @CMAKE_INSTALL_PREFIX@/lib NO_DEFAULT_PATH)
find_library(libir IR @CMAKE_INSTALL_PREFIX@/lib64 @CMAKE_INSTALL_PREFIX@/lib NO_DEFAULT_PATH)
find_library(liblogging Logging @CMAKE_INSTALL_PREFIX@/lib64 @CMAKE_INSTALL_PREFIX@/lib NO_DEFAULT_PATH)
find_library(libruntime Runtime @CMAKE_INSTALL_PREFIX@/lib64 @CMAKE_INSTALL_PREFIX@/lib NO_DEFAULT_PATH)
Expand Down Expand Up @@ -90,7 +89,6 @@ macro(add_eosio_test_executable test_name)
${libfc}
${libwast}
${libwasm}
${libwabt}
${libruntime}
${libir}
${libsoftfloat}
Expand Down
2 changes: 0 additions & 2 deletions CMakeModules/EosioTesterBuild.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@ endif()
find_library(libwasm WASM @CMAKE_BINARY_DIR@/libraries/wasm-jit/Source/WASM NO_DEFAULT_PATH)
find_library(libwast WAST @CMAKE_BINARY_DIR@/libraries/wasm-jit/Source/WAST NO_DEFAULT_PATH)
find_library(libir IR @CMAKE_BINARY_DIR@/libraries/wasm-jit/Source/IR NO_DEFAULT_PATH)
find_library(libwabt wabt @CMAKE_BINARY_DIR@/libraries/wabt NO_DEFAULT_PATH)
find_library(liblogging Logging @CMAKE_BINARY_DIR@/libraries/wasm-jit/Source/Logging NO_DEFAULT_PATH)
find_library(libruntime Runtime @CMAKE_BINARY_DIR@/libraries/wasm-jit/Source/Runtime NO_DEFAULT_PATH)
find_library(libsoftfloat softfloat @CMAKE_BINARY_DIR@/libraries/softfloat NO_DEFAULT_PATH)
Expand Down Expand Up @@ -89,7 +88,6 @@ macro(add_eosio_test_executable test_name)
${libfc}
${libwast}
${libwasm}
${libwabt}
${libruntime}
${libir}
${libsoftfloat}
Expand Down
29 changes: 19 additions & 10 deletions docs/01_nodeos/02_usage/05_nodeos-implementation.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,28 @@ The EOSIO platform stores blockchain information in various data structures at v

Every `nodeos` instance creates some internal files to housekeep the blockchain state. These files reside in the `~/eosio/nodeos/data` installation directory and their purpose is described below:

* The `block.log` is an append only log of blocks written to disk and contains all the irreversible blocks.
* `Reversible_blocks` is a memory mapped file and contains blocks that have been written to the blockchain but have not yet become irreversible.
* The `chain state` or `database` is a memory mapped file, storing the blockchain state of each block (account details, deferred transactions, transactions, data stored using multi index tables in smart contracts, etc.). Once a block becomes irreversible we no longer cache the chain state.
* The `pending block` is an in memory block containing transactions as they are processed into a block, this will/may eventually become the head block. If this instance of `nodeos` is the producing node then the pending block is distributed to other `nodeos` instances.
* The head block is the last block written to the blockchain, stored in `reversible_blocks`.
* The `blocks.log` is an append only log of blocks written to disk and contains all the irreversible blocks. These blocks contain final, confirmed transactions.
* `reversible_blocks` is a memory mapped file and contains blocks that have been written to the blockchain but have not yet become irreversible. These blocks contain valid pushed transactions that still await confirmation to become final via the consensus protocol. The head block is the last block written to the blockchain, stored in `reversible_blocks`.
* The `chain state` or `chain database` is currently stored and cached in a memory mapped file. It contains the blockchain state associated with each block, including account details, deferred transactions, and data stored using multi index tables in smart contracts. The last 65,536 block IDs are also cached to support Transaction as Proof of Stake (TaPOS). The transaction ID/expiration is also cached until the transaction expires.

## Nodeos Read Modes
* The `pending block` is an in memory block containing transactions as they are processed and pushed into the block; this will/may eventually become the head block. If the `nodeos` instance is the producing node, the pending block is distributed to other `nodeos` instances.
* Outside the chain state, block data is cached in RAM until it becomes final/irreversible; especifically the signed block itself. After the last irreversible block (LIB) catches up to the block, that block is then retrieved from the irreversible blocks log.

## EOSIO Interfaces

EOSIO provides a set of [services and interfaces](https://developers.eos.io/eosio-cpp/docs/db-api) that enable contract developers to persist state across action, and consequently transaction, boundaries. Contracts may use these services and interfaces for different purposes. For example, `eosio.token` contract keeps balances for all users in the database.
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.

Each instance of `nodeos` keeps the database in memory, so contracts can read and write data. `nodeos` also provides access to this data over HTTP RPC API for reading the database.
### Nodeos RPC API

The `nodeos` service provides query access to the chain database via the HTTP [RPC API](../05_rpc_apis/index.md).

## Nodeos Read Modes

The `nodeos` service can be run in different "read" modes. These modes control how the node operates and how it processes blocks and transactions:

However, at any given time there can be multiple correct ways to query that data:
- `speculative`: this includes the side effects of confirmed and unconfirmed transactions.
- `head`: this only includes the side effects of confirmed transactions, this mode processes unconfirmed transactions but does not include them.
- `read-only`: this only includes the side effects of confirmed transactions.
- `read-only`: this mode is deprecated. Similar functionality can be achieved by combining options: `read-mode = head`, `p2p-accept-transactions = false`, `api-accept-transactions = false`. When these options are set, the local database will contain state changes made by transactions in the chain up to the head block. Also, transactions received via the P2P network are not relayed and transactions cannot be pushed via the chain API.
- `irreversible`: this mode also includes confirmed transactions only up to those included in the last irreversible block.

A transaction is considered confirmed when a `nodeos` instance has received, processed, and written it to a block on the blockchain, i.e. it is in the head block or an earlier block.
Expand All @@ -48,6 +54,9 @@ In this mode `nodeos` is able to execute transactions which have TaPoS pointing

### Read-Only Mode

[[caution | Deprecation Notice]]
| The explicit `read-mode = read-only` mode is deprecated. Similar functionality can now be achieved in `head` mode by combining options: `read-mode = head`, `p2p-accept-transactions = false`, `api-accept-transactions = false`.

Clients such as `cleos` and the RPC API will see database state as of the current head block of the chain. It **will not** include changes made by transactions known to this node but not included in the chain, such as unconfirmed transactions.

### Irreversible Mode
Expand Down
2 changes: 1 addition & 1 deletion docs/01_nodeos/03_plugins/chain_plugin/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ Config Options for eosio::chain_plugin:
application config dir)
--checkpoint arg Pairs of [BLOCK_NUM,BLOCK_ID] that
should be enforced as checkpoints.
--wasm-runtime eos-vm|eos-vm-jit Override default WASM runtime (wabt)
--wasm-runtime eos-vm|eos-vm-jit Override default WASM runtime (eos-vm-jit)
--eos-vm-oc-enable Enable optimized compilation in WASM
--abi-serializer-max-time-ms arg (=15000)
Override default maximum ABI
Expand Down
11 changes: 11 additions & 0 deletions docs/01_nodeos/05_rpc_apis/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
content_title: RPC APIs
link_text: RPC APIs
---

* [Chain API Reference](../03_plugins/chain_api_plugin/api-reference/index.md)
* [DB Size API Reference](../03_plugins/db_size_api_plugin/api-reference/index.md)
* [Net API Reference](../03_plugins/net_api_plugin/api-reference/index.md)
* [Producer API Reference](../03_plugins/producer_api_plugin/api-reference/index.md)
* [Test Control API Reference](../03_plugins/test_control_api_plugin/api-reference/index.md)
* [Trace API Reference](../03_plugins/trace_api_plugin/api-reference/index.md)
7 changes: 0 additions & 7 deletions libraries/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,6 @@ add_subdirectory( chain )
add_subdirectory( testing )
add_subdirectory( version )

#turn tools&tests off; not needed for library build
set(BUILD_TESTS OFF CACHE BOOL "Build GTest-based tests")
set(BUILD_TOOLS OFF CACHE BOOL "Build wabt tools")
set(RUN_RE2C OFF CACHE BOOL "Run re2c")
set(WITH_EXCEPTIONS ON CACHE BOOL "Build with exceptions enabled" FORCE)
add_subdirectory( wabt )

set(USE_EXISTING_SOFTFLOAT ON CACHE BOOL "use pre-exisiting softfloat lib")
set(ENABLE_TOOLS OFF CACHE BOOL "Build tools")
set(ENABLE_TESTS OFF CACHE BOOL "Build tests")
Expand Down
Loading