From d6144f1dc5db1ffd0579b11129df2e55dc96108a Mon Sep 17 00:00:00 2001 From: Kevin Heifner Date: Tue, 23 Apr 2024 18:43:34 -0500 Subject: [PATCH 1/4] Update to latest BLS --- libraries/libfc/libraries/bls12-381 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/libfc/libraries/bls12-381 b/libraries/libfc/libraries/bls12-381 index 382cb5f57b..6b718d127a 160000 --- a/libraries/libfc/libraries/bls12-381 +++ b/libraries/libfc/libraries/bls12-381 @@ -1 +1 @@ -Subproject commit 382cb5f57bcc32c45a3dacceed8afe219d239133 +Subproject commit 6b718d127a2b6095593a85622b4e3f85c3fbbcf6 From fd2b0c114526547421258d8b18769f2ec24a85ed Mon Sep 17 00:00:00 2001 From: Bart Wyatt Date: Fri, 26 Apr 2024 13:30:32 -0400 Subject: [PATCH 2/4] transition to BSL 1.1 --- LICENSE | 110 ++++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 92 insertions(+), 18 deletions(-) diff --git a/LICENSE b/LICENSE index ced6156262..4dcbb3fca4 100644 --- a/LICENSE +++ b/LICENSE @@ -1,28 +1,102 @@ -SPRING 1.0 BETA SOFTWARE LICENSE +License text copyright (c) 2023 MariaDB plc, All Rights Reserved. "Business +Source License" is a trademark of MariaDB plc. -Issued by EOS NETWORK FOUNDATION ("ENF") +Parameters -The SPRING 1.0 Beta Software (the "Software") is pre-release MIT based -software in part. The feedback you provide on quality and usability helps us -identify issues, fix them and work towards final version of the Software. +Licensor: EOS NETWORK FOUNDATION ("ENF") + +Licensed Work: SPRING v.1 Canadian Copyright Registration No. + 1212238, 2024, All Rights Reserved -This is not a commercial release of the Software. No compensation will be paid -to those participating in this Beta Software release. +Additional Use Grant: Licensee (You) is granted, free of charge, to deal in + the Licensed Work without restriction, including + without limitation the rights to use, copy, modify, + merge, publish, distribute, sublicense, and/or sell + copies of the Licensed Work, and to permit persons to + whom the Licensed Work is furnished to do so, subject + to the following conditions: + + Your use of the Licensed Work is Directly in Service + of or Materially Dependent on the EOS Blockchain + Network + + The copyright notice and this permission notice shall + be included in all copies or substantial portions of + the Software. + + For the purposes of this license: + + "EOS Blockchain Network" is defined as any blockchain + network created with the EOSIO, or Antelope, + protocols, or any future protocols derived + substantially from them whose genesis block id as + defined by the Licensed Work is 00000001405147477ab2f5... + f51cda427b638191c66d2c59aa392d5c2c98076cb0 + + "Directly in Service" is defined as any use which is + necessary for the EOS Blockchain to persist and + continue operations including but not limited to + hosting network nodes, archives, RPC endpoints, and + integration with 3rd party services. + + "Materially Dependent" is defined as use that would + cease to operate effectively or economically if the + EOS blockchain component was removed temporarily or + permanently. -Terms of Use: +Change Date: Four years from the date the Licensed Work is published -Non-exclusive, limited term of 3 months, royalty free and all recommendations -for improvements and code amendments are owned by ENF. +Change License: MIT 2.0 -Copyright 2024, EOS Network Foundation. All rights reserved. +For information about alternative licensing arrangements for the Licensed Work, +please contact licensing@eosnetwork.com. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +Notice + +Business Source License 1.1 + +Terms + +The Licensor hereby grants you the right to copy, modify, create derivative +works, redistribute, and make non-production use of the Licensed Work. The +Licensor may make an Additional Use Grant, above, permitting limited production +use. + +Effective on the Change Date, or the fourth anniversary of the first publicly +available distribution of a specific version of the Licensed Work under this +License, whichever comes first, the Licensor hereby grants you rights under +the terms of the Change License, and the rights granted in the paragraph +above terminate. + +If your use of the Licensed Work does not comply with the requirements +currently in effect as described in this License, you must purchase a +commercial license from the Licensor, its affiliated entities, or authorized +resellers, or you must refrain from using the Licensed Work. + +All copies of the original and modified Licensed Work, and derivative works +of the Licensed Work, are subject to this License. This License applies +separately for each version of the Licensed Work and the Change Date may vary +for each version of the Licensed Work released by Licensor. + +You must conspicuously display this License on each original or modified copy +of the Licensed Work. If you receive the Licensed Work in original or +modified form from a third party, the terms and conditions set forth in this +License apply to your use of that work. + +Any use of the Licensed Work in violation of this License will automatically +terminate your rights under this License for the current and all other +versions of the Licensed Work. + +This License does not grant you any right in any trademark or logo of +Licensor or its affiliates (provided that you may use a trademark or logo of +Licensor as expressly required by this License). + +TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON +AN "AS IS" BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, +EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND TITLE. + +Additional Notice This software contains code from EOSIO/eos. That inclusion is under the following license: From ea1b40e08849847852f4814d1215887b975cfc46 Mon Sep 17 00:00:00 2001 From: Kevin Heifner Date: Fri, 26 Apr 2024 16:19:49 -0500 Subject: [PATCH 3/4] GH-70 Log block exceptions as info level as they are not errors that need user action. Also move some producing log statements to the producer logger instead of the default logger. --- plugins/producer_plugin/producer_plugin.cpp | 32 ++++++++++----------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/plugins/producer_plugin/producer_plugin.cpp b/plugins/producer_plugin/producer_plugin.cpp index 6120703399..a1aaf24e12 100644 --- a/plugins/producer_plugin/producer_plugin.cpp +++ b/plugins/producer_plugin/producer_plugin.cpp @@ -793,7 +793,7 @@ class producer_plugin_impl : public std::enable_shared_from_this().publish(priority::medium, block); throw; }; @@ -814,7 +814,7 @@ class producer_plugin_impl : public std::enable_shared_from_this= 0 && irreversible_block_age >= _max_irreversible_block_age_us) { - elog("Not producing block because the irreversible block is too old [age:${age}s, max:${max}s]", - ("age", irreversible_block_age.count() / 1'000'000)("max", _max_irreversible_block_age_us.count() / 1'000'000)); + fc_elog(_log, "Not producing block because the irreversible block is too old [age:${age}s, max:${max}s]", + ("age", irreversible_block_age.count() / 1'000'000)("max", _max_irreversible_block_age_us.count() / 1'000'000)); _pending_block_mode = pending_block_mode::speculating; } @@ -1908,14 +1908,14 @@ producer_plugin_impl::start_block_result producer_plugin_impl::start_block() { if (auto current_watermark = _producer_watermarks.get_watermark(scheduled_producer.producer_name)) { const block_timestamp_type block_timestamp{block_time}; if (current_watermark->first > head_block_num) { - elog("Not producing block because \"${producer}\" signed a block at a higher block number (${watermark}) than the current " - "fork's head (${head_block_num})", - ("producer", scheduled_producer.producer_name)("watermark", current_watermark->first)("head_block_num", head_block_num)); + fc_elog(_log, "Not producing block because \"${producer}\" signed a block at a higher block number (${watermark}) than the current " + "fork's head (${head_block_num})", + ("producer", scheduled_producer.producer_name)("watermark", current_watermark->first)("head_block_num", head_block_num)); _pending_block_mode = pending_block_mode::speculating; } else if (current_watermark->second >= block_timestamp) { - elog("Not producing block because \"${producer}\" signed a block at the next block time or later (${watermark}) than the pending " - "block time (${block_timestamp})", - ("producer", scheduled_producer.producer_name)("watermark", current_watermark->second)("block_timestamp", block_timestamp)); + fc_elog(_log, "Not producing block because \"${producer}\" signed a block at the next block time or later (${watermark}) than the pending " + "block time (${block_timestamp})", + ("producer", scheduled_producer.producer_name)("watermark", current_watermark->second)("block_timestamp", block_timestamp)); _pending_block_mode = pending_block_mode::speculating; } } @@ -2032,8 +2032,8 @@ producer_plugin_impl::start_block_result producer_plugin_impl::start_block() { const auto& pending_block_signing_authority = chain.pending_block_signing_authority(); if (in_producing_mode() && pending_block_signing_authority != scheduled_producer.authority) { - elog("Unexpected block signing authority, reverting to speculative mode! [expected: \"${expected}\", actual: \"${actual}\"", - ("expected", scheduled_producer.authority)("actual", pending_block_signing_authority)); + fc_elog(_log, "Unexpected block signing authority, reverting to speculative mode! [expected: \"${expected}\", actual: \"${actual}\"", + ("expected", scheduled_producer.authority)("actual", pending_block_signing_authority)); _pending_block_mode = pending_block_mode::speculating; } @@ -2560,7 +2560,7 @@ void producer_plugin_impl::schedule_production_loop() { auto result = start_block(); if (result == start_block_result::failed) { - elog("Failed to start a pending block, will try again later"); + fc_wlog(_log, "Failed to start a pending block, will try again later"); _timer.expires_from_now(boost::posix_time::microseconds(config::block_interval_us / 10)); // we failed to start a block, so try again later? From 18f46b8856332e8af2a2b698b69fcbe62253334f Mon Sep 17 00:00:00 2001 From: Kevin Heifner Date: Fri, 26 Apr 2024 16:24:48 -0500 Subject: [PATCH 4/4] GH-70 Not necessarily an error to close connection --- plugins/net_plugin/net_plugin.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/net_plugin/net_plugin.cpp b/plugins/net_plugin/net_plugin.cpp index bb7c76f627..ceae2890ed 100644 --- a/plugins/net_plugin/net_plugin.cpp +++ b/plugins/net_plugin/net_plugin.cpp @@ -3060,7 +3060,7 @@ namespace eosio { } if( close_connection ) { - peer_elog( conn, "Closing connection" ); + peer_ilog( conn, "Closing connection" ); conn->close(); } }));