anchor.diff:      Pool11 = Pool21,                % tx pools are ordered
       ok = new_tx(#{node1  => N1,
                     node2  => N2,
  -                  amount => 1,
  +                  amount => AmountFun(Bal1),
                     sender    => PK1,
                     recipient => PK2,
                     fee    => 1}),
  
positive.code:     true = ensure_new_tx(N2, NewTx).
  
  ensure_tx_pools_empty(Config) ->
      Ns = [N || {_,N} <- ?config(nodes, Config)],
      retry(
        fun() ->
                Results = lists:map(
                            fun(N) ->
                                    {ok, Pool} = get_pool(N),
                                    ct:log("Pool (~p) = ~p", [N, Pool]),
                                    Pool
                            end, Ns),
                lists:all(fun([]) -> true;
                             (_)  -> false
                          end, Results)
        end, {?LINE, ensure_tx_pools_empty, Ns}).
  
  no_system_metrics_logged(Config) ->
      %% a user config filter is applied in init_per_suite, which turns off
  
negative.code:     config({devs, [dev1, dev2]}, Config);
  init_per_group(three_nodes, Config) ->
      config({devs, [dev1, dev2, dev3]}, Config);
  init_per_group(semantically_invalid_tx, Config) ->
      config({devs, [dev1, dev2]}, Config);
  init_per_group(one_blocked, Config) ->
      Config1 = config({devs, [dev1, dev2]}, Config),
      preblock_second(Config1),
  