Proof of Stake banner (#3757)

* i did it for the gram

Signed-off-by: Justin Florentine <justin+github@florentine.us>
pull/3811/head
Justin Florentine 3 years ago committed by GitHub
parent 1efe1f01a5
commit b5439834b2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      besu/src/main/java/org/hyperledger/besu/controller/BesuControllerBuilder.java
  2. 57
      consensus/merge/src/main/java/org/hyperledger/besu/consensus/merge/PandaPrinter.java
  3. 196
      consensus/merge/src/main/resources/ProofOfPanda3.txt
  4. 28
      consensus/merge/src/test/java/org/hyperledger/besu/consensus/merge/PandaPrinterTest.java

@ -20,6 +20,7 @@ import org.hyperledger.besu.config.GenesisConfigFile;
import org.hyperledger.besu.config.GenesisConfigOptions;
import org.hyperledger.besu.consensus.merge.FinalizedBlockHashSupplier;
import org.hyperledger.besu.consensus.merge.MergeContext;
import org.hyperledger.besu.consensus.merge.PandaPrinter;
import org.hyperledger.besu.consensus.qbft.pki.PkiBlockCreationConfiguration;
import org.hyperledger.besu.crypto.NodeKey;
import org.hyperledger.besu.datatypes.Hash;
@ -340,6 +341,7 @@ public abstract class BesuControllerBuilder implements MiningParameterOverrides
final boolean fastSyncEnabled =
EnumSet.of(SyncMode.FAST, SyncMode.X_SNAP).contains(syncConfig.getSyncMode());
final SyncState syncState = new SyncState(blockchain, ethPeers, fastSyncEnabled);
syncState.subscribeTTDReached(new PandaPrinter());
final TransactionPool transactionPool =
TransactionPoolFactory.createTransactionPool(

@ -0,0 +1,57 @@
/*
* Copyright Hyperledger Besu Contributors.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*
* SPDX-License-Identifier: Apache-2.0
*
*/
package org.hyperledger.besu.consensus.merge;
import org.hyperledger.besu.plugin.services.BesuEvents.TTDReachedListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class PandaPrinter implements TTDReachedListener {
private static final Logger LOG = LoggerFactory.getLogger(PandaPrinter.class);
private static final String pandaBanner = PandaPrinter.loadBanner();
private static String loadBanner() {
Class<PandaPrinter> c = PandaPrinter.class;
InputStream is = c.getResourceAsStream("/ProofOfPanda3.txt");
StringBuilder resultStringBuilder = new StringBuilder();
try (BufferedReader br =
new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8))) {
String line;
while ((line = br.readLine()) != null) {
resultStringBuilder.append(line).append("\n");
}
} catch (IOException e) {
LOG.error("Couldn't load hilarious panda banner");
}
return resultStringBuilder.toString();
}
@Override
public void onTTDReached(final boolean reached) {
if (reached) {
LOG.info("\n" + pandaBanner);
}
}
}

@ -0,0 +1,196 @@
:. :.
#%% %#%=
=%*%% +%++#. =.
%%#*@#++==*##*%+*##= .:+
-#%%@%#%%@@%%*@%##%= .-
=@@%%#%#@#@*%%@*++
-@@@@@#*@@@%#%@%@#*.
.%@@%*%@#%%@#@#%%%@*# :: -+.
-#@%+-**#%%*@%+=*%%*%. -%#--..-%#:
:%#%*=%-#*+##%=#==%@%%= -: =.
-%+%*:**@%*####==##%%%#= .. . :
.#@#%###%%#-+*%**%#@@%@## :.. = :*#* .:
-%%%%%+%%%+-+%@%*#%%@%%*%- ..-. .. -#@#. -
*%%@@%*@**-%***@%#%%%@#*@@: . - .. %. -
%%%@@%+@%**@*=%@@#%%%%+*### ...- .. * .- . . :
:. :. .#%#@#%+%%%*%*@%@%*#%@*=%##%. : :. ..:-=*#:...+ - -*.=:=.
%#%%-+%# =-*@%%%#=*%@%%%@@@#++@%+##*%%+ .::+. .:.:=*+#+::....-. .=*=
=+##%#%..: :##:#%##@%*#%#**+*%*##%+%*=-.-% . .-:::.= ** . :: . ++.+...
#%*###%*%%**=+**%##+#**%@*#*#**+**##*+#-+*-+-*- . .:+:. ==-+:.. .%+=:*:
-%%*++##%%#%#%%%#@%#*#%+**+##%%##%*-+#+--*%%#+* . .-===--. .:-=- . #===..
-###=+%@%%%%%%@@#@%##*=--++-+#***=--=-=**#*@### .:- . .#++==.
-+%++@@@@@@%@@@+@@%=+#*%--::-*+=:-=**#%%#%#@%@. .= .. .#+-:.
-%+*#@@@@@@@@@@+@@%=+%%@%%#+#%#+*###%%%@%%%%%%. . .- . .. ....:.
-*@@@@@@@@%@+%@%#-:#@@@@#%@%#%%%%%%@@@%@%@#% . . .* .... ..
%@@@@@@%*@**@%%#-#@@@@@@@@#%#%@%@%@%%@%@#%: .... .....-: ......
=%@@@@@#%##@@%%==@@@@@@@@@@@%@@@%@@@@@%#%. . ...... ....*= ....
+@@@@%**%%@%%#=-%%@@@@@@@@@@@@@@@@%%#@@- . -...... .:+++=. .
=#@@%*@%%@%%##--%@@@@@@@@@@@@@@%@*%@%* .::=...:.::-+++=. .
--@@#@%%%#*=.-@@@@@@@@@@@%%@*#%@@% .. ...*..*=. .
=@@@%@@@%#*++-=%@@%@@@@@#+**%@@@* . --.. ..
-@@@%@@%%##**##+==:+-+**=+#%@%%@+ ...
-@@@@%@@#%%%%@@%#+#%%%@#+#%@@@#%= . ..
-%@@@@@@@@@%%%@+%@%@%%##%%#@@@%@- .. . ...
:%@@@%@@@@@%@@#%@%%#=-*++**+@%#@= -+=-.:=: ..
.@@@@@@@@@@@@%@@%*++*%%#%@%#*%%#- .. .= := . ....
#@@@@@@@@@@*@%*+@%@@#@%@@@%*%@. . + . ....
:#@@@@@@@%%%#=*@@%%@@@#%@@##*@:: .. ... :=... .....
-%@@@@@@@@@%=@@%@%@%@@@@@%#+@# .. .... =..........
++%@@@@@@%@*%@%%@@@@@@@@%#**@+ ..: ... .==...... .
#*%@@@@%*+=%##@@@@@%@%%%###+. . :.... ..=+:..:=
*#*#@@@%=*==*##=+*#%@%##+#@+ .. ...+. -=+:--.=-..
.*#=*%@%*%##@@#%%+#*%@*+#@+ .... . ...+.:.+:::.
*%*+##+#%%%%%%%#%%%%##%- : ... .-=+.:-=*....
-@@%%%*-%%%%@%%@%@%*%% ....=..:*:.=....
#@@%***+%+++*++@%%+- ..::=:**+#...
%%%%%%%=%%*+*%@%. .::**=+=:...
:%@@%%%%=##%%*= .:+=-+....
*@@@@@@%#++ :=+::.
:*%@@@%@@+ :.....
#%@@@@%%# .......
.#@@@@@@@#= ... ....
#%@%%@%%@@@. ..:..:..
-###%%%%@@%- . .. .
#*#%#%@@*:
:+-
:.--
.-*+#=---:-*:::-: .-.-== .
-%%@%%%%@%#%@*+*+#* . ...*==+# .
-%%#%%@@@@%@%@%%+=**@:: .-*.*++=
.#%%@@@@@@%@%%@@##***##+ ...=:++%..
:%%%%@@@@%%*=-+%@###++*%= --*+*:+*... .+=.
:%%@@@@@@%%@*%#*%-@@%*##+*## ...-.*-. .. .-. .-
.:.#@@@@@@@@@@#+%*#@=@@%%%%##%= . .-: ... . .:-=++-
#=@@@@%@%#*#**%@##%-@@++#*.- ......: --:
#%#@@@@@%#*@%%%%@@@%-:: : ..:-. +...
:::@%%@@@@@@=%@*#@%*@@%%. :. ..=:
:%=#@@@@%@%%%%%##*+#%%%+%= :..
-%%*%%@@@%@#%@%%%%*-=+##=%%- :. :*.
=#%@%@%%@@%%#@@@%@**-#.**%%%@. .#* ..-
-%@@%#@@@@#%%%%%@#=##*-:*%%@@@%. *=. .-:.
-#@@@@%%@%@#@@%@@#*%%%%%##*%###%@: .:- .-. ::..
##@@@%#%@@@%@%@@###@%%#%%##%+#*##@@@= .. . +- .:..
+#@@@@@%%@@@%@#%%%%@@#=:-%%-##*%#%*##%= :- - +% :: -...
:%%@@@@%%@@%@%%%#%%@@@%:%#-#*+-+#%%#+*%= = -=. +@* = ..
%%@@@@@@%%%@@#%*%%#*#%#=*#:%@=%+:%%%+=%= . .*#. %**: = + .
=%@@@@@@@@@%@@%#@#%%#%*+#*:+%@%:--@@%#%# .#:. .#@. = ..
.%@@@@@@@@@@%%@##@@@@%@*=###*%@%*##@@%=. = .+#. :
+@@@@@@@@@%%%*@@+%@@@%%%#+@%%%@*@%@%@% .= +=- ..
%%@@@@@@@@@@%*@%##@@@@%%%=%%%%#@%%@%%= ...:. ..
*@@@@@@@@@@@@%%#%%=%#@@@@@%+%@##%@##%: =.=..
%@@@@@@@@@@@@@%#@%#*%@@@@%%#*%#@%@*=%* := :-.
+%@@@@@@%@@@@@@@%#%@%%%@@@%*%%##%%#**%. . -:::.:
-##@@@@@@@@@@@@@@@#%%@@%%###%##%@@@#*%- . -
*+#@@@@@@@@@%@@@%@#@@@%#%#%%%%#@##*#@+ . .
-%#%@@@@@@@@@@@@@@%%@@@@@@@@@@@#*%@%@%-+@+.+ . ... .
%@+%@@@@@@@@@@@@@@%@@@@@@@@@@#@%@%##+*##%==@%+. ... . =
-%%=#@@@@@@@@@@@@@@@@@@@@@@@%#@%**%#=%%#=#*#%%%. .. .. :
@@@+#@@@@@@@@@@@@@@@@@@@@@%%@@#:#%=#@@%*++#%### ... .
-@%%#*@@@@@@@@@@@@@@@@@@@%@@%@%-#@#%@@@@===%@@@= .... . :..
*%%%#*@%@@@@@@@@@@@@@@@@@@@@%@*+@@+%@%%@+++#*=%- . . ..
:@@#%%*%@@@@@@@@@%@@@@@%@@@@@@@**@@*@@%@##+*%%%% .. .-. . ::.
*@%#@%=@@@@@@@@@@@@@@@@@@@@@@%%:%@@#@@@@%=+*+%%* :. . ...- :..
%@@%%@#%@@@@@@@@@@@@@@@@@@@@@%#-@@@@@%%%%%##*-- .... .....::. . ...-:
-@%#@%@*#@@@@@@@@@@@@@@@@@@@@@%*:%@@@@@@@@%#*: ............ ... . .=.
%@%@@@%%%%@%@@@@@@@@@@@@@@@@@%###*@@@@@@@@@# . .... .:.. . . . .=
.@%%%@@%@#*@#@@@@@@@@@@@@@@@@@@*@-=%@@@@@@@#. .:=:. .. .:.
.@%%%@@@@@%#%@@@@@@@@@@@@@@@@@#***@*==#@%#: ::. .......
-@@@@@@@@@@#%%@@@@@@@@@@@@@%%#%%%%@%#+.. .... .. ........
*@@@@@@@@@@@##@@@@@@@@@@%@%*%@@@%%%%%*#% .....................
:*@@@@@@@@@@@@%%@@@@@@@@@*+%@@@@@@@@#%%%+ .............:.......
.#@@@@%@@@@@@@-=:*#*+== =@%@@@@@@%%%@%@% ...-....... ... ...... .
.%@@@@@@@@@@@. -#@@@@@@@@@@%@% .... .... ......... ..
#@@@@@@@@@@- *@%@@@@@@@@# . . . ... ..........
#%@@@@@@@*: +**%%@@@@@@+ .......... ....... .
:#*#%@@@@= .%@@%@@%@@%=. ......... ........
:+#+*#+#@# %@@@@@@@%=%= ........ .... .
:@%@*#+@%- @@@@@%%-%** :....... ..
-:==+=. .--+%-: ...
.. .
%@@# . %#@#
-@@%%- ........ -*@@@=
+@@%+.. ..=#@@%
+@@-. .*@*
.=+. .-.
..=#%+. *@%+. .
. +@@@@# .@@@@# ..
. @@@@@# @@@@@* ..
. +@#-%@# %%-%@% ..
. %@@%@@- =*@+@@@. .
. #@@@%=. . -@@@@@...
:...+#-.. +*+ .-@@@* .
:. :@@@= -:. ..
:: :%- .-.
.*.-. + .:..
:*%*- : +*. .. :*-
=@@%+= .:=**-+. . .. -###.
.-%% #@@@%:. +++**#::.. -%#@@+
+@@@%.#@@@@@%. =*+***-: :.@%@@@@. +%*
:@@@@@#@@@@@@%-. =++*++. :-%@%@@@@@%-#@@%-
*@@@@@#@@@@@@@%:. .#+-+# . :#@@@@@@@@@#%@@@%
+@@@@@*@@@@@@@@# :-:+ ...#@@@@@@@@@@*@@@@@.
.@@@@%@@@@@@@@@@#== . =:@@@@@@@@@@@@#@@@@@.
+@@@@@@@@@@@@@@@%*=. .*%@@@@@@@@@@@@@@#@@@@.
#@@@@@@@@@@@@@@@@@%+--+%@@@@@@%@@%@@@@@@@@@@%
*%@@@@%+%====#%@@@@@@@@@@%%#%%%%%@@@@@@@@@@.
.:. %=:: .-#@@@@@%- ..-#*%@@@@@@#.
=::.. ... ...:-#---:.
.... .....
... ...
.. ...
... ..
... .:.
... ..
. .. ..
#+:. .:=*
.*%#:.. ..:*@=
-@@#.-.. ..:%@%.
#@@%:... ..:-@@@:
.%@@@=:..... ....*@@@=
=@@@@%...... ...=@@@@+
*@@@@@=:... ....:+@@@@*
%@@@@@@+-. . ....::#@@@@#
%@@@@@@@+-... . ...:=%@@@@@%
@@@@@@@@@*:.... .....:=%@@@@@@%
@@@@@@@@@@*-...............:*@@@@@@@@*
.@@@@@@@@@@@*............. :@@@@@@@@@+
*@@@@@@@@*- . ...... .%@@@@@@@:
+@@@@@@@= .%@@@@@@:
.#@@@@@@+ :@@@@@@@*
-%@@@@@@@* -@@@@@@@@#.
:%@@@@@@@@@ .@@@%@%@@#+
#-@#@*@@@@: .%@@=@+@%.
..-=#*@*: .: :.

@ -0,0 +1,28 @@
/*
* Copyright Hyperledger Besu Contributors.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*
* SPDX-License-Identifier: Apache-2.0
*
*/
package org.hyperledger.besu.consensus.merge;
import org.junit.Test;
public class PandaPrinterTest {
@Test
public void printsPanda() {
PandaPrinter panda = new PandaPrinter();
panda.onTTDReached(true);
}
}
Loading…
Cancel
Save