From db1e7172186466150e253b545e64c7e51e4b7e6b Mon Sep 17 00:00:00 2001 From: Jeremy Cooper Date: Wed, 7 Dec 2022 17:07:42 -0800 Subject: [PATCH 1/2] Stage a possible patch to PoC spreading factor choice. --- src/poc/miner_onion_server_light.erl | 39 +++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/src/poc/miner_onion_server_light.erl b/src/poc/miner_onion_server_light.erl index 295c83ef6..b3eca8bd7 100644 --- a/src/poc/miner_onion_server_light.erl +++ b/src/poc/miner_onion_server_light.erl @@ -266,7 +266,7 @@ decrypt(Type, IV, OnionCompactKey, Tag, CipherText, RSSI, SNR, Frequency, Channe erlang:spawn(fun() -> ?MODULE:send_receipt(Data, OnionCompactKey, Type, os:system_time(nanosecond), RSSI, SNR, Frequency, Channel, DataRate, TxPower, State) end); _ -> - case blockchain_region_params_v1:get_spreading(RegionParams, erlang:byte_size(Packet)) of + case get_spreading(Region, RegionParams, erlang:byte_size(Packet)) of {error, Why} -> lager:error("unable to get spreading, reason: ~p", [Why]), ok; @@ -389,6 +389,43 @@ spreading(_, L) when L < 139 -> spreading(_, _) -> "SF7BW125". +%% +%% Provide an override of on-chain parameters for the time being. +%% +%% This sequence of functions is designed to TEMPORARILY OVERRIDE +%% the AS923 region parameters on-chain, just for the purposes +%% of PoC. +%% +-spec as923_spreading(Len :: pos_integer()) -> atom(). +as923_spreading(L) when L < 25 -> + 'SFTBD'; +as923_spreading(L) when L < 65 -> + 'SFTBD'; +as923_spreading(L) when L < 67 -> + 'SFTBD'; +as923_spreading(L) when L < 129 -> + 'SFTBD'; +as923_spreading(L) when L < 238 -> + 'SFTBD'; +as923_spreading(_) -> + 'SFTBD'. + +-spec get_spreading(RegionName :: atom(), RegionParams :: blockchain_region_param_v1:region_param_v1(), Size :: pos_integer()) -> {ok, atom()} | {error, any()}. +get_spreading('AS923', _RegionParams, Size) -> + {ok, as923_spreading(Size)}; +get_spreading('AS923_1', _RegionParams, Size) -> + {ok, as923_spreading(Size)}; +get_spreading('AS923_1B', _RegionParams, Size) -> + {ok, as923_spreading(Size)}; +get_spreading('AS923_2', _RegionParams, Size) -> + {ok, as923_spreading(Size)}; +get_spreading('AS923_3', _RegionParams, Size) -> + {ok, as923_spreading(Size)}; +get_spreading('AS923_4', _RegionParams, Size) -> + {ok, as923_spreading(Size)}; +get_spreading(_RegionName, RegionParams, Size) -> + blockchain_region_params_v1:get_spreading(RegionParams, Size). + -ifdef(EQC). -spec try_decrypt(binary(), binary(), binary(), binary(), function()) -> {ok, binary(), binary()} | {error, any()}. try_decrypt(IV, OnionCompactKey, Tag, CipherText, ECDHFun) -> From 6747c19059a52b476b5ea7bcef1ac2397ce27960 Mon Sep 17 00:00:00 2001 From: Jeremy Cooper Date: Fri, 9 Dec 2022 10:29:29 -0800 Subject: [PATCH 2/2] Fill in actual spreading values and dividing lines. --- src/poc/miner_onion_server_light.erl | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/src/poc/miner_onion_server_light.erl b/src/poc/miner_onion_server_light.erl index b3eca8bd7..0976a7efe 100644 --- a/src/poc/miner_onion_server_light.erl +++ b/src/poc/miner_onion_server_light.erl @@ -397,22 +397,16 @@ spreading(_, _) -> %% of PoC. %% -spec as923_spreading(Len :: pos_integer()) -> atom(). -as923_spreading(L) when L < 25 -> - 'SFTBD'; -as923_spreading(L) when L < 65 -> - 'SFTBD'; -as923_spreading(L) when L < 67 -> - 'SFTBD'; -as923_spreading(L) when L < 129 -> - 'SFTBD'; -as923_spreading(L) when L < 238 -> - 'SFTBD'; +as923_spreading(L) when L =< 59 -> + 'SF12'; +as923_spreading(L) when L =< 124 -> + 'SF9'; +as923_spreading(L) when L =< 251 -> + 'SF8'; as923_spreading(_) -> - 'SFTBD'. + 'SF7'. -spec get_spreading(RegionName :: atom(), RegionParams :: blockchain_region_param_v1:region_param_v1(), Size :: pos_integer()) -> {ok, atom()} | {error, any()}. -get_spreading('AS923', _RegionParams, Size) -> - {ok, as923_spreading(Size)}; get_spreading('AS923_1', _RegionParams, Size) -> {ok, as923_spreading(Size)}; get_spreading('AS923_1B', _RegionParams, Size) ->