- Hash function
H(m) = SHA256(m)
- For a private key
x
, the public key isxG
. - A signature on the message
m
with private keyx
is(R, s)
whereR=kG
,s=k+H(R,X,m)x
. - Verifying a signature is testing whether
sG
=R+H(R,X,m)X
.
checker-279.tar.bz2
file from the link under Mac OS X
~/workspace/checker-279
~/workspace/myproject
autogen
parts, with make clean
, but prefix each call with the scan-build
in the path above. E.g.#!/bin/bash | |
if [ $# -lt 1 ]; then | |
echo "syntax: $0 <commit count> [<make args>]" | |
echo "will attempt to run 'make' on each commit starting with the commit <commit count> commits ago all the way up to the current HEAD" | |
echo "e.g. compile-commits 10 -j10" | |
exit 1 | |
fi | |
if [ ! -d ".git" ]; then | |
echo ".git not found or not a dir" |
On Debian Jessie PowerPC (Big endian) system (endianness probably unrelated): | |
``` | |
wallet/walletutil.cpp: In function ‘std::vector<boost::filesystem::path> ListWalletDir()’: | |
wallet/walletutil.cpp:57:78: error: ‘end’ was not declared in this scope | |
for (auto it = fs::recursive_directory_iterator(wallet_dir); it != end(it); ++it) { | |
^ | |
wallet/walletutil.cpp:57:78: note: suggested alternative: | |
In file included from /usr/include/c++/4.9/bits/basic_string.h:42:0, | |
from /usr/include/c++/4.9/string:52, | |
from ./fs.h:9, |
This is a description of how to get started with Signet. This document assumes you are capable of using git, and that you are able to compile Bitcoin. (If you have not yet done so, you should begin by doing that now.)
$ git clone https://github.com/kallewoof/bitcoin.git signet
$ cd signet
$ git checkout 2003-signet-consensus
Initial script: | |
OP_IF | |
144 | |
OP_CHECKSEQUENCEVERIFY | |
<pubkey_alice> | |
OP_ELSE | |
OP_SHA256 | |
preimage_hash | |
OP_EQUALVERIFY |
internal_pubkey=efe24af16da45a3e3ce3503b7b7172d64b16b28922011f8df970dd5bf6cc6be7 | |
tapscript=a8206c60f404f8167a38fc70eaf8aa17ac351023bef86bcb9d1086a19afe95bd53338820cc9519ba6fb1cb0cca53743dc90c2418440cf637f8b891ce2f0e2dc5c5b3cf01ac | |
➜ btcdeb git:(taproot) ✗ ./tap $internal_pubkey 1 $tapscript | |
tap 0.2.19 -- type `./tap -h` for help | |
WARNING: This is experimental software. Do not use this with real bitcoin, or you will most likely lose them all. You have been w a r n e d. | |
LOG: sign segwit taproot | |
Internal pubkey: efe24af16da45a3e3ce3503b7b7172d64b16b28922011f8df970dd5bf6cc6be7 | |
1 scripts: | |
- #0: a8206c60f404f8167a38fc70eaf8aa17ac351023bef86bcb9d1086a19afe95bd53338820cc9519ba6fb1cb0cca53743dc90c2418440cf637f8b891ce2f0e2dc5c5b3cf01ac |
export type Dict<T> = { [type: string]: T }; | |
const Do = async <Retval>(cmd: string, ...args: (string | boolean | number | object | null | undefined)[]) | |
: Promise<Retval> => Promise.reject(); | |
// The above Do command should asynchronously call Bitcoin's RPC interface, e.g. like the bcrpc package. | |
///////////////////////////////////////// | |
// RPC: abandontransaction | |
// |