Bitcoin Core 28.99.0
P2P Digital Currency
|
#include <rpc/request.h>
#include <common/args.h>
#include <logging.h>
#include <random.h>
#include <rpc/protocol.h>
#include <util/fs.h>
#include <util/fs_helpers.h>
#include <util/strencodings.h>
#include <fstream>
#include <stdexcept>
#include <string>
#include <vector>
Go to the source code of this file.
Functions | |
UniValue | JSONRPCRequestObj (const std::string &strMethod, const UniValue ¶ms, const UniValue &id) |
JSON-RPC protocol. More... | |
UniValue | JSONRPCReplyObj (UniValue result, UniValue error, std::optional< UniValue > id, JSONRPCVersion jsonrpc_version) |
UniValue | JSONRPCError (int code, const std::string &message) |
static fs::path | GetAuthCookieFile (bool temp=false) |
Get name of RPC authentication cookie file. More... | |
bool | GenerateAuthCookie (std::string *cookie_out, std::optional< fs::perms > cookie_perms) |
Generate a new RPC authentication cookie and write it to disk. More... | |
bool | GetAuthCookie (std::string *cookie_out) |
Read the RPC authentication cookie from disk. More... | |
void | DeleteAuthCookie () |
Delete RPC authentication cookie from disk. More... | |
std::vector< UniValue > | JSONRPCProcessBatchReply (const UniValue &in) |
Parse JSON-RPC batch reply into a vector. More... | |
Variables | |
static const std::string | COOKIEAUTH_USER = "__cookie__" |
Username used when cookie authentication is in use (arbitrary, only for recognizability in debugging/logging purposes) More... | |
static const char *const | COOKIEAUTH_FILE = ".cookie" |
Default name for auth cookie file. More... | |
static bool | g_generated_cookie = false |
void DeleteAuthCookie | ( | ) |
Delete RPC authentication cookie from disk.
Definition at line 165 of file request.cpp.
bool GenerateAuthCookie | ( | std::string * | cookie_out, |
std::optional< fs::perms > | cookie_perms | ||
) |
Generate a new RPC authentication cookie and write it to disk.
the umask determines what permissions are used to create this file - these are set to 0077 in common/system.cpp.
Definition at line 100 of file request.cpp.
bool GetAuthCookie | ( | std::string * | cookie_out | ) |
Read the RPC authentication cookie from disk.
Definition at line 146 of file request.cpp.
|
static |
Get name of RPC authentication cookie file.
Definition at line 86 of file request.cpp.
UniValue JSONRPCError | ( | int | code, |
const std::string & | message | ||
) |
Parse JSON-RPC batch reply into a vector.
Definition at line 177 of file request.cpp.
UniValue JSONRPCReplyObj | ( | UniValue | result, |
UniValue | error, | ||
std::optional< UniValue > | id, | ||
JSONRPCVersion | jsonrpc_version | ||
) |
Definition at line 51 of file request.cpp.
UniValue JSONRPCRequestObj | ( | const std::string & | strMethod, |
const UniValue & | params, | ||
const UniValue & | id | ||
) |
JSON-RPC protocol.
JSON-RPC 2.0 request, only used in bitcoin-cli.
Bitcoin speaks version 1.0 for maximum compatibility, but uses JSON-RPC 1.1/2.0 standards for parts of the 1.0 standard that were unspecified (HTTP errors and contents of 'error').
1.0 spec: http://json-rpc.org/wiki/specification 1.2 spec: http://jsonrpc.org/historical/json-rpc-over-http.html
If the server receives a request with the JSON-RPC 2.0 marker {"jsonrpc": "2.0"}
then Bitcoin will respond with a strictly specified response. It will only return an HTTP error code if an actual HTTP error is encountered such as the endpoint is not found (404) or the request is not formatted correctly (500). Otherwise the HTTP code is always OK (200) and RPC errors will be included in the response body.
2.0 spec: https://www.jsonrpc.org/specification
Also see http://www.simple-is-better.org/rpc/#differences-between-1-0-and-2-0
Definition at line 41 of file request.cpp.
|
static |
Default name for auth cookie file.
Definition at line 83 of file request.cpp.
|
static |
Username used when cookie authentication is in use (arbitrary, only for recognizability in debugging/logging purposes)
Definition at line 81 of file request.cpp.
|
static |
Definition at line 98 of file request.cpp.