anchor.diff:      lager:warning("Failed all attempts to bootstrap chain ~w via FLU ~w ",
                     [CD,FLU]),
       failed;
  -bootstrap_chain2(#chain_def_v1{name=NewChainName, mode=CMode, full=Full,
  -                               witnesses=Witnesses, props=Props}=CD,
  +bootstrap_chain2(#chain_def_v1{name=NewChainName, mode=NewCMode,
  +                               full=Full, witnesses=Witnesses,
  +                               old_all=ReqOldAll, old_witnesses=ReqOldWitnesses,
  +                               props=_Props}=CD,
                    FLU, N) ->
       All_p_srvrs = Witnesses ++ Full,
       L = [{Name, P_srvr} || #p_srvr{name=Name}=P_srvr <- All_p_srvrs],
       MembersDict = orddict:from_list(L),
  +    NewAll_list = [Name || #p_srvr{name=Name} <- All_p_srvrs],
  +    NewWitnesses_list = [Name || #p_srvr{name=Name} <- Witnesses],
  +
       Mgr = machi_chain_manager1:make_chmgr_regname(FLU),
       PStore = machi_flu1:make_projection_server_regname(FLU),
       {ok, #projection_v1{epoch_number=OldEpoch, chain_name=OldChainName,
  +                        mode=OldCMode,
                           all_members=OldAll_list, witnesses=OldWitnesses}} =
           machi_projection_store:read_latest_projection(PStore, private),
  -    NewAll_list = [Name || #p_srvr{name=Name} <- All_p_srvrs],
  -    case set_chain_members(OldChainName, NewChainName,
  +    case set_chain_members(OldChainName, NewChainName, OldCMode,
  +                           ReqOldAll, ReqOldWitnesses,
                              OldAll_list, OldWitnesses,
  -                           NewAll_list, NewWitnesses,
  +                           NewAll_list, Witnesses,
                              Mgr, NewChainName, OldEpoch,
  -                           CMode, MembersDict, NewWitnesses) of
  +                           NewCMode, MembersDict, NewWitnesses_list) of
           ok ->
               lager:info("Bootstrapped chain ~w via FLU ~w to "
                          "mode=~w all=~w witnesses=~w\n",
  -                       [NewChainName, FLU, CMode, All_list, NewWitnesses]),
  +                       [NewChainName, FLU, NewCMode,
  +                        NewAll_list, NewWitnesses_list]),
               AddedFLUs = NewAll_list -- OldAll_list,
               RemovedFLUs = OldAll_list -- NewAll_list,
               {ok, AddedFLUs, RemovedFLUs};
  
positive.code:             S
      end.
  
  process_pending_chain2(File, CD, LocalFLUs, AddedFLUs, RemovedFLUs, S) ->
      %% AddedFLUs: no any extra work.
      %% RemovedFLUs: Stop the FLU, config -> j-i-c, data -> j-i-c
      io:format(user, "TODO: ~s LINE ~p\n", [?MODULE, ?LINE]),
      S.
  
  process_bad_files(Files, S) ->
  
negative.code:     Dst = get_flu_config_dir(S),
      ok = file:rename(File, Dst ++ "/" ++ atom_to_list(FLU)),
      S.
  
  move_to_chain_config(Name, File, S) ->
      lager:info("Creating chain config file ~w\n", [Name]),
      Dst = get_chain_config_dir(S),
      ok = file:rename(File, Dst ++ "/" ++ atom_to_list(Name)),
      S.
  