From b13515f0afc3a500be6392261b476d952e229950 Mon Sep 17 00:00:00 2001 From: Tino Breddin Date: Tue, 22 Oct 2019 10:33:07 +0200 Subject: [PATCH 1/2] Replace direct lager logging with hut This ensure we can configure the logging backend in the umbrella project where aeminer is used. --- rebar.config | 8 ++------ rebar.lock | 8 ++------ src/aeminer.app.src | 2 +- src/aeminer_pow_cuckoo.erl | 28 ++++++++++++---------------- 4 files changed, 17 insertions(+), 29 deletions(-) diff --git a/rebar.config b/rebar.config index e0b0d47..7589856 100644 --- a/rebar.config +++ b/rebar.config @@ -1,9 +1,5 @@ - -{erl_opts, [{parse_transform, lager_transform}, {lager_extra_sinks, [aeminer]}]}. - {deps, [ - {lager, {git, "https://github.com/erlang-lager/lager.git", - {ref, "69b4ada"}}}, % tag: 3.6.7 + {hut, "1.3.0"}, %% Cuckoo prebuilt CUDA binaries. {aecuckooprebuilt, @@ -23,7 +19,7 @@ {ref, "4f0a0c64132f837ee47cfaf99cddafabfe4fd7f1"}}} ]}. -{profiles, [{test, [{deps, [{meck, "0.8.12"}]}]}]}. +{profiles, [{test, [{deps, [{meck, "0.8.13"}]}]}]}. {dialyzer, [{warnings, [unknown]}, {plt_apps, all_deps}, diff --git a/rebar.lock b/rebar.lock index e597a54..640db83 100644 --- a/rebar.lock +++ b/rebar.lock @@ -12,12 +12,8 @@ {git,"https://github.com/aeternity/enacl.git", {ref,"26180f42c0b3a450905d2efd8bc7fd5fd9cece75"}}, 0}, - {<<"goldrush">>,{pkg,<<"goldrush">>,<<"0.1.9">>},1}, - {<<"lager">>, - {git,"https://github.com/erlang-lager/lager.git", - {ref,"69b4ada2341b8ab2cf5c8e464ac936e5e4a9f62b"}}, - 0}]}. + {<<"hut">>,{pkg,<<"hut">>,<<"1.3.0">>},0}]}. [ {pkg_hash,[ - {<<"goldrush">>, <<"F06E5D5F1277DA5C413E84D5A2924174182FB108DABB39D5EC548B27424CD106">>}]} + {<<"hut">>, <<"71F2F054E657C03F959CF1ACC43F436EA87580696528CA2A55C8AFB1B06C85E7">>}]} ]. diff --git a/src/aeminer.app.src b/src/aeminer.app.src index 9a979e4..7b8f807 100644 --- a/src/aeminer.app.src +++ b/src/aeminer.app.src @@ -5,8 +5,8 @@ {applications, [kernel, stdlib, - lager, enacl, + hut, aecuckoo, aecuckooprebuilt ]}, diff --git a/src/aeminer_pow_cuckoo.erl b/src/aeminer_pow_cuckoo.erl index 4da8f06..5c77606 100644 --- a/src/aeminer_pow_cuckoo.erl +++ b/src/aeminer_pow_cuckoo.erl @@ -53,6 +53,7 @@ ]). -endif. +-include_lib("hut/include/hut.hrl"). -include("aeminer.hrl"). -type hashable() :: aeminer_blake2b_256:hashable(). @@ -118,11 +119,6 @@ (is_integer(EdgeBits) and (EdgeBits > 0)) and (is_list(Instances) or (Instances =:= undefined))). --define(debug(F, A), aeminer:debug(F, A)). --define(info(F, A), aeminer:info(F, A)). --define(warning(F, A), aeminer:warning(F, A)). --define(error(F, A), aeminer:error(F, A)). - %%%============================================================================= %%% API %%%============================================================================= @@ -190,13 +186,13 @@ generate(Data, Target, Nonce, Config, Instance) when {ok, {nonce(), solution()}} | {error, no_solution} | {error, {runtime, term()}}. generate_from_hash(Hash, Target, Nonce, Config, Instance) -> Hash64 = base64:encode_to_string(Hash), - ?debug("Generating solution for data hash ~p and nonce ~p with target ~p.", + ?log(debug, "Generating solution for data hash ~p and nonce ~p with target ~p.", [Hash, Nonce, Target]), case generate_int(Hash64, Nonce, Target, Config, Instance) of {ok, Nonce1, Soln} -> {ok, {Nonce1, Soln}}; {error, no_value} -> - ?debug("No cuckoo solution found", []), + ?log(debug, "No cuckoo solution found", []), {error, no_solution}; {error, Rsn} -> %% Exec failed (segfault, not found, etc.): let miner decide @@ -266,7 +262,7 @@ generate_int(Hash, Nonce, Target, MinerBinDir, MinerBin, MinerExtraArgs, #config{repeats = Repeats0, edge_bits = EdgeBits}) -> Repeats = integer_to_list(Repeats0), Args = ["-h", Hash, "-n", integer_to_list(Nonce), "-r", Repeats | string:tokens(MinerExtraArgs, " ")], - ?info("Executing cmd '~s ~s'", [MinerBin, lists:concat(lists:join(" ", Args))]), + ?log(info, "Executing cmd '~s ~s'", [MinerBin, lists:concat(lists:join(" ", Args))]), Old = process_flag(trap_exit, true), try exec_run(MinerBin, MinerBinDir, Args) of {ok, Port, OsPid} -> @@ -344,7 +340,7 @@ verify_proof_(Header, Solution, EdgeBits) -> end catch throw:{error, Rsn} -> - ?info("Proof verification failed for ~p: ~p", [Solution, Rsn]), + ?log(info, "Proof verification failed for ~p: ~p", [Solution, Rsn]), false end. @@ -499,20 +495,20 @@ parse_generation_result(["Solution" ++ NonceValuesStr | Rest], stop_execution(OsPid), case parse_nonce_str(NonceStr) of {ok, Nonce} -> - ?debug("Solution found: ~p", [Soln]), + ?log(debug, "Solution found: ~p", [Soln]), {ok, Nonce, Soln}; Err = {error, _} -> - ?debug("Bad nonce: ~p", [Err]), + ?log(debug, "Bad nonce: ~p", [Err]), Err end; {N, _} when N /= ?SOLUTION_SIZE -> - ?debug("Solution has wrong length (~p) should be ~p", [N, ?SOLUTION_SIZE]), + ?log(debug, "Solution has wrong length (~p) should be ~p", [N, ?SOLUTION_SIZE]), %% No nonce in solution, old miner exec? stop_execution(OsPid), {error, bad_miner}; {_, false} -> %% failed to meet target: go on, we may find another solution - ?debug("Failed to meet target (~p)", [Target]), + ?log(debug, "Failed to meet target (~p)", [Target]), parse_generation_result(Rest, State) end; parse_generation_result([_Msg | T], State) -> @@ -530,7 +526,7 @@ parse_nonce_str(S) -> %%------------------------------------------------------------------------------ stop_execution(OsPid) -> exec_kill(OsPid), - ?debug("Mining OS process ~p stopped", [OsPid]), + ?log(debug, "Mining OS process ~p stopped", [OsPid]), ok. %%------------------------------------------------------------------------------ @@ -562,10 +558,10 @@ exec_run(Cmd, Dir, Args) -> Port = erlang:open_port(PortName, PortSettings), case erlang:port_info(Port, os_pid) of {os_pid, OsPid} -> - ?debug("External mining process started with OS pid ~p", [OsPid]), + ?log(debug, "External mining process started with OS pid ~p", [OsPid]), {ok, Port, OsPid}; undefined -> - ?warning("External mining process finished before ~p could acquire the OS pid", [?MODULE]), + ?log(warning, "External mining process finished before ~p could acquire the OS pid", [?MODULE]), {ok, Port, undefined} end catch From 8c03d3fc8d5c5d1f377ad8fd2230c4905bac2a48 Mon Sep 17 00:00:00 2001 From: Tino Breddin Date: Tue, 22 Oct 2019 17:07:59 +0200 Subject: [PATCH 2/2] Update rebar3 plugin --- rebar.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rebar.config b/rebar.config index 7589856..4ae936b 100644 --- a/rebar.config +++ b/rebar.config @@ -16,7 +16,7 @@ ]}. {plugins, [{rebar_aecuckooprebuilt_dep, {git, "https://github.com/aeternity/rebar3-cuckoo-prebuilt-plugin.git", - {ref, "4f0a0c64132f837ee47cfaf99cddafabfe4fd7f1"}}} + {ref, "3981d79"}}} ]}. {profiles, [{test, [{deps, [{meck, "0.8.13"}]}]}]}.