The wallet code uses `Optional::emplace()`, which was only added in boost 1.56, see https://github.com/boostorg/optional/commit/2e583aaf30964afd66c1284aa71d0d8b42fa440d

So for 0.21.0 there are two options:
* Work around `emplace` and keep the minimum boost version below 1.56
* Require boost 1.56


```
wallet/rpcwallet.cpp: In function ‘UniValue listsinceblock(const JSONRPCRequest&)’:
wallet/rpcwallet.cpp:1560:16: error: ‘Optional<int>’ has no member named ‘emplace’
         height.emplace();
                ^
wallet/rpcwallet.cpp:1561:19: error: ‘Optional<int>’ has no member named ‘emplace’
         altheight.emplace();
                   ^
if (options.type() == UniValue::VBOOL) {
        
        coinControl.fAllowWatchOnly = options.get_bool();
      }
      else {
        RPCTypeCheckArgument(options, UniValue::VOBJ);
        RPCTypeCheckObj(options,
            {
                {"changeAddress", UniValueType(UniValue::VSTR)},
                {"changePosition", UniValueType(UniValue::VNUM)},
                {"change_type", UniValueType(UniValue::VSTR)},
                {"includeWatching", UniValueType(UniValue::VBOOL)},
                {"lockUnspents", UniValueType(UniValue::VBOOL)},
                {"feeRate", UniValueType()}, 
                {"subtractFeeFromOutputs", UniValueType(UniValue::VARR)},
                {"replaceable", UniValueType(UniValue::VBOOL)},
                {"conf_target", UniValueType(UniValue::VNUM)},
                {"estimate_mode", UniValueType(UniValue::VSTR)},
            },
            true, true);
        if (options.exists("changeAddress")) {
            CTxDestination dest = DecodeDestination(options["changeAddress"].get_str());
            if (!IsValidDestination(dest)) {
                throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "changeAddress must be a valid bitcoin address");
            }
            coinControl.destChange = dest;
        }
        if (options.exists("changePosition"))
            change_position = options["changePosition"].get_int();
        if (options.exists("change_type")) {