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();
                   ^
CWallet* const pwallet = wallet.get();
    if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
        return NullUniValue;
    }
            RPCHelpMan{"walletlock",
                "\nRemoves the wallet encryption key from memory, locking the wallet.\n"
                "After calling this method, you will need to call walletpassphrase again\n"
                "before being able to call any methods which require the wallet to be unlocked.\n",
                {},
                RPCResult{RPCResult::Type::NONE, "", ""},
                RPCExamples{
            "\nSet the passphrase for 2 minutes to perform a transaction\n"
            + HelpExampleCli("walletpassphrase", "\"my pass phrase\" 120") +
            "\nPerform a send (requires passphrase set)\n"
            + HelpExampleCli("sendtoaddress", "\"" + EXAMPLE_ADDRESS[0] + "\" 1.0") +
            "\nClear the passphrase since we are done before 2 minutes is up\n"
            + HelpExampleCli("walletlock", "") +
            "\nAs a JSON-RPC call\n"
            + HelpExampleRpc("walletlock", "")
                },
            }.Check(request);
    LOCK(pwallet->cs_wallet);
    if (!pwallet->IsCrypted()) {
        throw JSONRPCError(RPC_WALLET_WRONG_ENC_STATE, "Error: running with an unencrypted wallet, but walletlock was called.");
    }
    pwallet->Lock();
    pwallet->nRelockTime = 0;
    return NullUniValue;
}
static UniValue encryptwallet(const JSONRPCRequest& request)