From 5557c65a94d1e15394cc908732b9a42b212939e3 Mon Sep 17 00:00:00 2001 From: ijanus Date: Tue, 27 Feb 2024 06:41:12 +0100 Subject: [PATCH] Remove redundant folders --- debian.minimal/README.Debian | 12 - debian.minimal/build-in-docker.sh | 34 - debian.minimal/changelog | 50 - debian.minimal/compat | 1 - debian.minimal/control | 17 - debian.minimal/copyright | 3111 --------------------------- debian.minimal/files | 1 - debian.minimal/rules | 95 - debian.minimal/source/format | 1 - debian.minimal/source/local-options | 2 - debian.minimal/test.sh | 28 - debian.minimal/watch | 2 - debian.qt/README.Debian | 12 - debian.qt/build-in-docker.sh | 39 - debian.qt/changelog | 50 - debian.qt/compat | 1 - debian.qt/control | 29 - debian.qt/files | 1 - debian.qt/rules | 103 - debian.qt/source/format | 1 - debian.qt/source/local-options | 2 - debian.qt/test.sh | 28 - debian.qt/updateunattended.sh | 9 - debian.qt/watch | 2 - debian/README.Debian | 12 - debian/build-in-docker.sh | 36 - debian/changelog | 44 - debian/compat | 1 - debian/control | 29 - debian/files | 1 - debian/rules | 103 - debian/source/format | 1 - debian/source/local-options | 2 - debian/test.sh | 28 - debian/updateunattended.sh | 9 - debian/watch | 2 - examples/CMakeLists.txt | 24 - examples/EXAMPLES_COPYING | 121 -- examples/ecdh.c | 126 -- examples/ecdsa.c | 143 -- examples/examples_util.h | 108 - examples/schnorr.c | 160 -- include/minisketch.h | 368 ---- include/secp256k1_ellswift.h | 200 -- sage/secp256k1_params.sage | 39 - 45 files changed, 5188 deletions(-) delete mode 100644 debian.minimal/README.Debian delete mode 100755 debian.minimal/build-in-docker.sh delete mode 100644 debian.minimal/changelog delete mode 100644 debian.minimal/compat delete mode 100644 debian.minimal/control delete mode 100644 debian.minimal/copyright delete mode 100644 debian.minimal/files delete mode 100755 debian.minimal/rules delete mode 100644 debian.minimal/source/format delete mode 100644 debian.minimal/source/local-options delete mode 100755 debian.minimal/test.sh delete mode 100644 debian.minimal/watch delete mode 100644 debian.qt/README.Debian delete mode 100755 debian.qt/build-in-docker.sh delete mode 100644 debian.qt/changelog delete mode 100644 debian.qt/compat delete mode 100644 debian.qt/control delete mode 100644 debian.qt/files delete mode 100755 debian.qt/rules delete mode 100644 debian.qt/source/format delete mode 100644 debian.qt/source/local-options delete mode 100755 debian.qt/test.sh delete mode 100755 debian.qt/updateunattended.sh delete mode 100644 debian.qt/watch delete mode 100644 debian/README.Debian delete mode 100755 debian/build-in-docker.sh delete mode 100644 debian/changelog delete mode 100644 debian/compat delete mode 100644 debian/control delete mode 100644 debian/files delete mode 100755 debian/rules delete mode 100644 debian/source/format delete mode 100644 debian/source/local-options delete mode 100755 debian/test.sh delete mode 100755 debian/updateunattended.sh delete mode 100644 debian/watch delete mode 100644 examples/CMakeLists.txt delete mode 100644 examples/EXAMPLES_COPYING delete mode 100644 examples/ecdh.c delete mode 100644 examples/ecdsa.c delete mode 100644 examples/examples_util.h delete mode 100644 examples/schnorr.c delete mode 100644 include/minisketch.h delete mode 100644 include/secp256k1_ellswift.h delete mode 100644 sage/secp256k1_params.sage diff --git a/debian.minimal/README.Debian b/debian.minimal/README.Debian deleted file mode 100644 index 78387562b6..0000000000 --- a/debian.minimal/README.Debian +++ /dev/null @@ -1,12 +0,0 @@ -To create the Debian package installable on multiple systems including -Ubuntu 20.04, run: - -./debian/build-in-docker.sh - -Maintainers can run ./debian/test.sh to test if the generated Debian -package is correct. - -TODO: ./debian/build-in-docker.sh and ./debian/test.sh should not need to -be updated when the version of the package changes. - - -- Victor Porton Sat, 03 Oct 2020 06:04:48 +0300 diff --git a/debian.minimal/build-in-docker.sh b/debian.minimal/build-in-docker.sh deleted file mode 100755 index 7c736b6b87..0000000000 --- a/debian.minimal/build-in-docker.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash - -set -e - -debuild -S - -finish() { - docker stop $container >/dev/null - docker container rm $container >/dev/null -} - -docker pull ubuntu:20.04 -container=`docker run -dit -e TZ='Etc/UTC' -e DEBIAN_FRONTEND='noninteractive' ubuntu:20.04 ` -trap finish EXIT - -docker exec $container apt-get -y update -docker exec $container apt-get -y install apt-utils devscripts sudo #dpkg-dev -docker exec $container mkdir -p /root/repo -docker exec $container useradd user -docker exec $container mkdir /home/user -docker exec $container chown user.user /home/user -docker exec $container sudo -u user mkdir /home/user/build -docker cp ../bitgesell_0.1.11.dsc $container:/root/repo/ -docker cp ../bitgesell_0.1.11.tar.xz $container:/root/repo/ -# docker exec -w /root/repo $container sh -c "dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz" -docker exec -w /root/repo $container sh -c "apt-ftparchive sources . > Sources" -docker exec $container sh -c "echo deb-src [trusted=yes] file:/root/repo ./ >> /etc/apt/sources.list" -docker exec $container apt-get -y -o APT::Sandbox::User=root update -docker exec $container apt-get -y build-dep bitgesell -docker exec $container chmod a+rX /root -docker exec $container chmod -R a+rX /root/repo -docker exec -w /home/user/build $container sudo -u user apt-get -y source bitgesell -docker exec -w /home/user/build/bitgesell-0.1.11 $container sudo -u user debuild -b -docker cp $container:/home/user/build/bitgesell_0.1.11_amd64.deb bitgesell_0.1.11_amd64.deb diff --git a/debian.minimal/changelog b/debian.minimal/changelog deleted file mode 100644 index 520e07d750..0000000000 --- a/debian.minimal/changelog +++ /dev/null @@ -1,50 +0,0 @@ -bitgesell (0.1.11) UNRELEASED; urgency=low - - * Bitcoin code synced - - -- Mathias van Orton Tue, 6 Feb 2024 15:35:00 +0000 - -bitgesell (0.1.10) UNRELEASED; urgency=low - - * Bitcoin code synced - - -- Mathias van Orton Tue, 18 Apr 2023 10:30:15 +0000 - -bitgesell (0.1.9) UNRELEASED; urgency=low - - * Bitcoin code synced - - -- Mathias van Orton Tue, 8 Nov 2022 10:00:00 +0000 - -bitgesell (0.1.8) UNRELEASED; urgency=low - - * Bitcoin code synced - - -- Mathias van Orton Wed, 20 Apr 2022 10:20:00 +0000 - -bitgesell (0.1.7) UNRELEASED; urgency=low - - * Taproot activation rescheduled with relaxed conditions - - -- Mathias van Orton Sun, 4 Jul 2021 14:40:01 +0000 - - -bitgesell (0.1.6) UNRELEASED; urgency=low - - * Code synced with BTC up to April 2021, Taproot activation scheduled - - -- Mathias van Orton Mon, 24 May 2021 11:24:11 +0000 - - -bitgesell (0.1.3) UNRELEASED; urgency=low - - * Updated all builds before testing BTC synced code. - - -- Mathias van Orton Thu, 26 Nov 2020 11:02:18 +0000 - - -bitgesell (0.1.2) UNRELEASED; urgency=low - - * Initial release. - - -- Victor Porton Sat, 03 Oct 2020 06:04:48 +0300 diff --git a/debian.minimal/compat b/debian.minimal/compat deleted file mode 100644 index b4de394767..0000000000 --- a/debian.minimal/compat +++ /dev/null @@ -1 +0,0 @@ -11 diff --git a/debian.minimal/control b/debian.minimal/control deleted file mode 100644 index 8f5060596c..0000000000 --- a/debian.minimal/control +++ /dev/null @@ -1,17 +0,0 @@ -Source: bitgesell -Section: misc -Priority: optional -Maintainer: Emma Wu -Build-Depends: debhelper (>=11~), g++-9, pkg-config, dh-autoreconf, libevent-dev, libssl-dev, fakeroot, wget -Standards-Version: 4.1.4 -Homepage: https://github.com/wu-emma/bitgesell - -Package: bitgesell -Architecture: any -Depends: libc6 (>= 2.27), libstdc++6 (>= 8.4.0), libbz2-1.0 (>= 1.0.6), liblzma5 (>= 5.2.2), zlib1g (>= 1:1.1.4), - openssl, perl-modules-5.26 | perl-modules-5.28 | perl-modules-5.30, ${misc:Depends} -Description: BGL is an experimental digital currency that enables instant payments to anyone, anywhere in the world - BGL is an experimental digital currency that enables instant payments to anyone, - anywhere in the world. BGL uses peer-to-peer technology to operate with no central authority: - managing transactions and issuing money are carried out collectively by the network. - BGL Core is the name of open source software which enables the use of this currency. diff --git a/debian.minimal/copyright b/debian.minimal/copyright deleted file mode 100644 index 81ed2ad05e..0000000000 --- a/debian.minimal/copyright +++ /dev/null @@ -1,3111 +0,0 @@ -Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: bitgesell -Source: https://github.com/wu-emma/bitgesell -# -# Please double check copyright with the licensecheck(1) command. - -Files: Makefile.am - autogen.sh - build-aux/m4/BGL_find_bdb48.m4 - build-aux/m4/BGL_subdir_to_include.m4 - build_msvc/libsecp256k1_config.h - ci/lint/04_install.sh - ci/lint/05_before_script.sh - ci/lint/06_script.sh - ci/test/00_setup_env.sh - ci/test/00_setup_env_arm.sh - ci/test/00_setup_env_i686.sh - ci/test/00_setup_env_mac.sh - ci/test/00_setup_env_mac_host.sh - ci/test/00_setup_env_native_asan.sh - ci/test/00_setup_env_native_centos.sh - ci/test/00_setup_env_native_fuzz.sh - ci/test/00_setup_env_native_nowallet.sh - ci/test/00_setup_env_native_qt5.sh - ci/test/00_setup_env_native_tsan.sh - ci/test/00_setup_env_native_valgrind.sh - ci/test/00_setup_env_s390x.sh - ci/test/00_setup_env_win64.sh - ci/test/03_before_install.sh - ci/test/04_install.sh - ci/test/05_before_script.sh - ci/test/06_script_a.sh - ci/test/06_script_b.sh - ci/test/wrap-valgrind.sh - ci/test_run_all.sh - contrib/BGL-tx.bash-completion - contrib/BGLd.bash-completion - contrib/devtools/copyright_header.py - contrib/devtools/optimize-pngs.py - contrib/devtools/security-check.py - contrib/devtools/symbol-check.py - contrib/devtools/test-security-check.py - contrib/devtools/utxo_snapshot.sh - contrib/linearize/linearize-data.py - contrib/linearize/linearize-hashes.py - contrib/macdeploy/custom_dsstore.py - contrib/macdeploy/detached-sig-apply.sh - contrib/macdeploy/detached-sig-create.sh - contrib/macdeploy/extract-osx-sdk.sh - contrib/qos/tc.sh - contrib/seeds/generate-seeds.py - contrib/testgen/base58.py - contrib/testgen/gen_key_io_test_vectors.py - contrib/verify-commits/gpg.sh - contrib/verify-commits/pre-push-hook.sh - contrib/verify-commits/verify-commits.py - contrib/windeploy/detached-sig-create.sh - contrib/zmq/zmq_sub.py - share/genbuild.sh - share/qt/extract_strings_qt.py - share/rpcauth/rpcauth.py - src/BGL-cli.cpp - src/BGL-tx.cpp - src/BGL-wallet.cpp - src/BGLd.cpp - src/Makefile.am - src/Makefile.bench.include - src/Makefile.leveldb.include - src/Makefile.qt.include - src/Makefile.qttest.include - src/Makefile.test.include - src/Makefile.test_util.include - src/addrdb.cpp - src/addrdb.h - src/addrman.cpp - src/addrman.h - src/amount.h - src/arith_uint256.cpp - src/arith_uint256.h - src/attributes.h - src/banman.cpp - src/banman.h - src/base58.cpp - src/base58.h - src/bech32.cpp - src/bench/base58.cpp - src/bench/bech32.cpp - src/bench/bench.cpp - src/bench/bench.h - src/bench/bench_BGL.cpp - src/bench/block_assemble.cpp - src/bench/ccoins_caching.cpp - src/bench/chacha20.cpp - src/bench/chacha_poly_aead.cpp - src/bench/checkblock.cpp - src/bench/checkqueue.cpp - src/bench/coin_selection.cpp - src/bench/crypto_hash.cpp - src/bench/data.cpp - src/bench/data.h - src/bench/duplicate_inputs.cpp - src/bench/examples.cpp - src/bench/gcs_filter.cpp - src/bench/lockedpool.cpp - src/bench/mempool_eviction.cpp - src/bench/mempool_stress.cpp - src/bench/merkle_root.cpp - src/bench/poly1305.cpp - src/bench/prevector.cpp - src/bench/rollingbloom.cpp - src/bench/rpc_blockchain.cpp - src/bench/rpc_mempool.cpp - src/bench/util_time.cpp - src/bench/verify_script.cpp - src/bench/wallet_balance.cpp - src/blockencodings.cpp - src/blockencodings.h - src/blockfilter.cpp - src/blockfilter.h - src/bloom.cpp - src/bloom.h - src/chain.cpp - src/chain.h - src/chainparams.cpp - src/chainparams.h - src/chainparamsbase.cpp - src/chainparamsbase.h - src/checkqueue.h - src/clientversion.cpp - src/clientversion.h - src/coins.cpp - src/coins.h - src/compat.h - src/compat/byteswap.h - src/compat/cpuid.h - src/compat/endian.h - src/compat/glibc_compat.cpp - src/compat/glibc_sanity.cpp - src/compat/glibc_sanity_fdelt.cpp - src/compat/glibcxx_sanity.cpp - src/compat/sanity.h - src/compat/stdin.cpp - src/compat/stdin.h - src/compat/strnlen.cpp - src/compressor.cpp - src/compressor.h - src/consensus/consensus.h - src/consensus/merkle.cpp - src/consensus/merkle.h - src/consensus/params.h - src/consensus/tx_check.cpp - src/consensus/tx_check.h - src/consensus/tx_verify.cpp - src/consensus/tx_verify.h - src/consensus/validation.h - src/core_io.h - src/core_memusage.h - src/core_read.cpp - src/core_write.cpp - src/crypto/aes.cpp - src/crypto/chacha20.h - src/crypto/chacha_poly_aead.cpp - src/crypto/chacha_poly_aead.h - src/crypto/common.h - src/crypto/ctaes/ctaes.h - src/crypto/ctaes/test.c - src/crypto/hkdf_sha256_32.cpp - src/crypto/hkdf_sha256_32.h - src/crypto/hmac_sha256.cpp - src/crypto/hmac_sha256.h - src/crypto/hmac_sha512.cpp - src/crypto/hmac_sha512.h - src/crypto/poly1305.h - src/crypto/ripemd160.cpp - src/crypto/ripemd160.h - src/crypto/sha1.cpp - src/crypto/sha1.h - src/crypto/sha256.cpp - src/crypto/sha256.h - src/crypto/sha512.cpp - src/crypto/sha512.h - src/crypto/siphash.cpp - src/crypto/siphash.h - src/cuckoocache.h - src/dbwrapper.cpp - src/dbwrapper.h - src/dummywallet.cpp - src/flatfile.cpp - src/flatfile.h - src/fs.h - src/hash.cpp - src/hash.h - src/httprpc.cpp - src/httprpc.h - src/httpserver.cpp - src/httpserver.h - src/index/base.cpp - src/index/base.h - src/index/blockfilterindex.cpp - src/index/blockfilterindex.h - src/index/txindex.cpp - src/index/txindex.h - src/indirectmap.h - src/init.cpp - src/init.h - src/interfaces/chain.cpp - src/interfaces/chain.h - src/interfaces/handler.cpp - src/interfaces/handler.h - src/interfaces/node.cpp - src/interfaces/node.h - src/interfaces/wallet.cpp - src/interfaces/wallet.h - src/key.cpp - src/key.h - src/key_io.cpp - src/key_io.h - src/limitedmap.h - src/logging.cpp - src/logging.h - src/logging/timer.h - src/memusage.h - src/merkleblock.cpp - src/merkleblock.h - src/miner.cpp - src/miner.h - src/net.cpp - src/net.h - src/net_permissions.cpp - src/net_permissions.h - src/net_processing.cpp - src/net_processing.h - src/net_types.h - src/netaddress.cpp - src/netaddress.h - src/netbase.cpp - src/netbase.h - src/netmessagemaker.h - src/node/coin.cpp - src/node/coin.h - src/node/coinstats.cpp - src/node/coinstats.h - src/node/context.cpp - src/node/context.h - src/node/psbt.cpp - src/node/psbt.h - src/node/transaction.cpp - src/node/transaction.h - src/node/utxo_snapshot.h - src/noui.cpp - src/noui.h - src/optional.h - src/outputtype.cpp - src/outputtype.h - src/policy/feerate.cpp - src/policy/feerate.h - src/policy/fees.cpp - src/policy/fees.h - src/policy/policy.h - src/policy/rbf.cpp - src/policy/rbf.h - src/policy/settings.cpp - src/policy/settings.h - src/pow.cpp - src/pow.h - src/prevector.h - src/primitives/block.cpp - src/primitives/block.h - src/primitives/transaction.cpp - src/primitives/transaction.h - src/protocol.cpp - src/protocol.h - src/psbt.cpp - src/psbt.h - src/pubkey.cpp - src/pubkey.h - src/qt/BGL.cpp - src/qt/BGL.h - src/qt/BGLaddressvalidator.cpp - src/qt/BGLaddressvalidator.h - src/qt/BGLamountfield.cpp - src/qt/BGLamountfield.h - src/qt/BGLgui.cpp - src/qt/BGLgui.h - src/qt/BGLunits.cpp - src/qt/BGLunits.h - src/qt/addressbookpage.cpp - src/qt/addressbookpage.h - src/qt/addresstablemodel.cpp - src/qt/addresstablemodel.h - src/qt/askpassphrasedialog.cpp - src/qt/askpassphrasedialog.h - src/qt/bantablemodel.cpp - src/qt/bantablemodel.h - src/qt/clientmodel.cpp - src/qt/clientmodel.h - src/qt/coincontroldialog.cpp - src/qt/coincontroldialog.h - src/qt/coincontroltreewidget.cpp - src/qt/coincontroltreewidget.h - src/qt/createwalletdialog.cpp - src/qt/createwalletdialog.h - src/qt/csvmodelwriter.cpp - src/qt/csvmodelwriter.h - src/qt/editaddressdialog.cpp - src/qt/editaddressdialog.h - src/qt/guiconstants.h - src/qt/guiutil.cpp - src/qt/guiutil.h - src/qt/intro.cpp - src/qt/intro.h - src/qt/macdockiconhandler.h - src/qt/macdockiconhandler.mm - src/qt/macnotificationhandler.h - src/qt/macnotificationhandler.mm - src/qt/macos_appnap.h - src/qt/macos_appnap.mm - src/qt/main.cpp - src/qt/modaloverlay.cpp - src/qt/modaloverlay.h - src/qt/networkstyle.cpp - src/qt/networkstyle.h - src/qt/notificator.cpp - src/qt/notificator.h - src/qt/openuridialog.cpp - src/qt/openuridialog.h - src/qt/optionsdialog.cpp - src/qt/optionsdialog.h - src/qt/optionsmodel.cpp - src/qt/optionsmodel.h - src/qt/overviewpage.cpp - src/qt/overviewpage.h - src/qt/paymentserver.cpp - src/qt/paymentserver.h - src/qt/peertablemodel.cpp - src/qt/peertablemodel.h - src/qt/platformstyle.cpp - src/qt/platformstyle.h - src/qt/qrimagewidget.cpp - src/qt/qrimagewidget.h - src/qt/qvalidatedlineedit.cpp - src/qt/qvalidatedlineedit.h - src/qt/qvaluecombobox.cpp - src/qt/qvaluecombobox.h - src/qt/receivecoinsdialog.cpp - src/qt/receivecoinsdialog.h - src/qt/receiverequestdialog.cpp - src/qt/receiverequestdialog.h - src/qt/recentrequeststablemodel.cpp - src/qt/recentrequeststablemodel.h - src/qt/res/movies/makespinner.sh - src/qt/rpcconsole.cpp - src/qt/rpcconsole.h - src/qt/sendcoinsdialog.cpp - src/qt/sendcoinsdialog.h - src/qt/sendcoinsentry.cpp - src/qt/sendcoinsentry.h - src/qt/sendcoinsrecipient.h - src/qt/signverifymessagedialog.cpp - src/qt/signverifymessagedialog.h - src/qt/splashscreen.cpp - src/qt/splashscreen.h - src/qt/test/apptests.cpp - src/qt/test/apptests.h - src/qt/test/compattests.cpp - src/qt/test/compattests.h - src/qt/test/rpcnestedtests.cpp - src/qt/test/rpcnestedtests.h - src/qt/test/test_main.cpp - src/qt/test/uritests.cpp - src/qt/test/uritests.h - src/qt/trafficgraphwidget.cpp - src/qt/trafficgraphwidget.h - src/qt/transactiondesc.cpp - src/qt/transactiondesc.h - src/qt/transactiondescdialog.cpp - src/qt/transactiondescdialog.h - src/qt/transactionfilterproxy.cpp - src/qt/transactionfilterproxy.h - src/qt/transactionrecord.cpp - src/qt/transactionrecord.h - src/qt/transactiontablemodel.cpp - src/qt/transactiontablemodel.h - src/qt/transactionview.cpp - src/qt/transactionview.h - src/qt/utilitydialog.cpp - src/qt/utilitydialog.h - src/qt/walletcontroller.cpp - src/qt/walletcontroller.h - src/qt/walletframe.cpp - src/qt/walletframe.h - src/qt/walletmodel.cpp - src/qt/walletmodel.h - src/qt/walletmodeltransaction.cpp - src/qt/walletmodeltransaction.h - src/qt/walletview.cpp - src/qt/walletview.h - src/qt/winshutdownmonitor.cpp - src/qt/winshutdownmonitor.h - src/random.cpp - src/random.h - src/randomenv.cpp - src/randomenv.h - src/rest.cpp - src/reverselock.h - src/rpc/blockchain.cpp - src/rpc/blockchain.h - src/rpc/client.cpp - src/rpc/client.h - src/rpc/mining.cpp - src/rpc/misc.cpp - src/rpc/net.cpp - src/rpc/protocol.h - src/rpc/rawtransaction.cpp - src/rpc/rawtransaction_util.cpp - src/rpc/rawtransaction_util.h - src/rpc/register.h - src/rpc/request.cpp - src/rpc/request.h - src/rpc/server.cpp - src/rpc/server.h - src/rpc/util.cpp - src/rpc/util.h - src/scheduler.cpp - src/scheduler.h - src/script/BGLconsensus.cpp - src/script/BGLconsensus.h - src/script/descriptor.cpp - src/script/descriptor.h - src/script/interpreter.cpp - src/script/interpreter.h - src/script/keyorigin.h - src/script/script.cpp - src/script/script.h - src/script/script_error.cpp - src/script/script_error.h - src/script/sigcache.cpp - src/script/sigcache.h - src/script/sign.cpp - src/script/sign.h - src/script/signingprovider.cpp - src/script/signingprovider.h - src/script/standard.cpp - src/script/standard.h - src/secp256k1/contrib/lax_der_parsing.c - src/secp256k1/contrib/lax_der_privatekey_parsing.c - src/secp256k1/src/asm/field_10x26_arm.s - src/secp256k1/src/basic-config.h - src/secp256k1/src/bench.h - src/secp256k1/src/bench_ecdh.c - src/secp256k1/src/bench_ecmult.c - src/secp256k1/src/bench_internal.c - src/secp256k1/src/bench_recover.c - src/secp256k1/src/bench_sign.c - src/secp256k1/src/bench_verify.c - src/secp256k1/src/ecdsa.h - src/secp256k1/src/ecdsa_impl.h - src/secp256k1/src/eckey.h - src/secp256k1/src/eckey_impl.h - src/secp256k1/src/ecmult.h - src/secp256k1/src/ecmult_const.h - src/secp256k1/src/ecmult_const_impl.h - src/secp256k1/src/ecmult_gen.h - src/secp256k1/src/ecmult_gen_impl.h - src/secp256k1/src/ecmult_impl.h - src/secp256k1/src/field.h - src/secp256k1/src/field_10x26.h - src/secp256k1/src/field_10x26_impl.h - src/secp256k1/src/field_5x52.h - src/secp256k1/src/field_5x52_impl.h - src/secp256k1/src/field_5x52_int128_impl.h - src/secp256k1/src/field_impl.h - src/secp256k1/src/gen_context.c - src/secp256k1/src/group.h - src/secp256k1/src/group_impl.h - src/secp256k1/src/hash.h - src/secp256k1/src/hash_impl.h - src/secp256k1/src/modules/ecdh/main_impl.h - src/secp256k1/src/modules/ecdh/tests_impl.h - src/secp256k1/src/modules/recovery/main_impl.h - src/secp256k1/src/modules/recovery/tests_impl.h - src/secp256k1/src/num.h - src/secp256k1/src/num_gmp.h - src/secp256k1/src/num_gmp_impl.h - src/secp256k1/src/num_impl.h - src/secp256k1/src/scalar.h - src/secp256k1/src/scalar_4x64.h - src/secp256k1/src/scalar_4x64_impl.h - src/secp256k1/src/scalar_8x32.h - src/secp256k1/src/scalar_8x32_impl.h - src/secp256k1/src/scalar_impl.h - src/secp256k1/src/scalar_low.h - src/secp256k1/src/scalar_low_impl.h - src/secp256k1/src/scratch.h - src/secp256k1/src/scratch_impl.h - src/secp256k1/src/secp256k1.c - src/secp256k1/src/testrand.h - src/secp256k1/src/testrand_impl.h - src/secp256k1/src/tests.c - src/secp256k1/src/tests_exhaustive.c - src/secp256k1/src/util.h - src/serialize.h - src/shutdown.cpp - src/shutdown.h - src/span.h - src/streams.h - src/support/allocators/secure.h - src/support/allocators/zeroafterfree.h - src/support/cleanse.cpp - src/support/cleanse.h - src/support/events.h - src/support/lockedpool.cpp - src/support/lockedpool.h - src/sync.cpp - src/sync.h - src/test/addrman_tests.cpp - src/test/allocator_tests.cpp - src/test/amount_tests.cpp - src/test/arith_uint256_tests.cpp - src/test/base32_tests.cpp - src/test/base58_tests.cpp - src/test/base64_tests.cpp - src/test/bech32_tests.cpp - src/test/bip32_tests.cpp - src/test/blockencodings_tests.cpp - src/test/blockfilter_index_tests.cpp - src/test/blockfilter_tests.cpp - src/test/bloom_tests.cpp - src/test/bswap_tests.cpp - src/test/checkqueue_tests.cpp - src/test/coins_tests.cpp - src/test/compilerbug_tests.cpp - src/test/compress_tests.cpp - src/test/crypto_tests.cpp - src/test/cuckoocache_tests.cpp - src/test/dbwrapper_tests.cpp - src/test/descriptor_tests.cpp - src/test/flatfile_tests.cpp - src/test/fs_tests.cpp - src/test/fuzz/base_encode_decode.cpp - src/test/fuzz/bech32.cpp - src/test/fuzz/block.cpp - src/test/fuzz/descriptor_parse.cpp - src/test/fuzz/deserialize.cpp - src/test/fuzz/eval_script.cpp - src/test/fuzz/fuzz.cpp - src/test/fuzz/fuzz.h - src/test/fuzz/hex.cpp - src/test/fuzz/integer.cpp - src/test/fuzz/parse_hd_keypath.cpp - src/test/fuzz/parse_iso8601.cpp - src/test/fuzz/parse_numbers.cpp - src/test/fuzz/parse_script.cpp - src/test/fuzz/parse_univalue.cpp - src/test/fuzz/psbt.cpp - src/test/fuzz/script.cpp - src/test/fuzz/script_flags.cpp - src/test/fuzz/spanparsing.cpp - src/test/fuzz/transaction.cpp - src/test/fuzz/tx_in.cpp - src/test/fuzz/tx_out.cpp - src/test/gen/crypto_gen.cpp - src/test/gen/crypto_gen.h - src/test/getarg_tests.cpp - src/test/hash_tests.cpp - src/test/key_io_tests.cpp - src/test/key_properties.cpp - src/test/key_tests.cpp - src/test/limitedmap_tests.cpp - src/test/logging_tests.cpp - src/test/main.cpp - src/test/mempool_tests.cpp - src/test/merkle_tests.cpp - src/test/merkleblock_tests.cpp - src/test/miner_tests.cpp - src/test/multisig_tests.cpp - src/test/net_tests.cpp - src/test/netbase_tests.cpp - src/test/pmt_tests.cpp - src/test/policyestimator_tests.cpp - src/test/pow_tests.cpp - src/test/prevector_tests.cpp - src/test/raii_event_tests.cpp - src/test/random_tests.cpp - src/test/reverselock_tests.cpp - src/test/rpc_tests.cpp - src/test/sanity_tests.cpp - src/test/scheduler_tests.cpp - src/test/script_p2sh_tests.cpp - src/test/script_standard_tests.cpp - src/test/script_tests.cpp - src/test/scriptnum10.h - src/test/scriptnum_tests.cpp - src/test/serialize_tests.cpp - src/test/settings_tests.cpp - src/test/sighash_tests.cpp - src/test/sigopcount_tests.cpp - src/test/skiplist_tests.cpp - src/test/streams_tests.cpp - src/test/sync_tests.cpp - src/test/timedata_tests.cpp - src/test/torcontrol_tests.cpp - src/test/transaction_tests.cpp - src/test/txindex_tests.cpp - src/test/txvalidation_tests.cpp - src/test/txvalidationcache_tests.cpp - src/test/uint256_tests.cpp - src/test/util/blockfilter.cpp - src/test/util/blockfilter.h - src/test/util/logging.cpp - src/test/util/logging.h - src/test/util/mining.cpp - src/test/util/mining.h - src/test/util/setup_common.cpp - src/test/util/setup_common.h - src/test/util/str.cpp - src/test/util/str.h - src/test/util/transaction_utils.cpp - src/test/util/transaction_utils.h - src/test/util/wallet.cpp - src/test/util/wallet.h - src/test/util_tests.cpp - src/test/util_threadnames_tests.cpp - src/test/validation_block_tests.cpp - src/test/validation_tests.cpp - src/test/versionbits_tests.cpp - src/threadinterrupt.cpp - src/threadinterrupt.h - src/threadsafety.h - src/timedata.cpp - src/timedata.h - src/torcontrol.cpp - src/txdb.cpp - src/txdb.h - src/txmempool.cpp - src/txmempool.h - src/ui_interface.cpp - src/ui_interface.h - src/uint256.cpp - src/uint256.h - src/undo.h - src/univalue/include/univalue.h - src/univalue/lib/univalue.cpp - src/univalue/lib/univalue_get.cpp - src/univalue/lib/univalue_read.cpp - src/univalue/lib/univalue_utffilter.h - src/univalue/lib/univalue_write.cpp - src/univalue/test/object.cpp - src/univalue/test/unitester.cpp - src/util/bip32.cpp - src/util/bip32.h - src/util/bytevectorhash.cpp - src/util/bytevectorhash.h - src/util/check.h - src/util/error.cpp - src/util/error.h - src/util/fees.cpp - src/util/fees.h - src/util/macros.h - src/util/memory.h - src/util/moneystr.cpp - src/util/rbf.cpp - src/util/rbf.h - src/util/settings.cpp - src/util/settings.h - src/util/spanparsing.cpp - src/util/spanparsing.h - src/util/strencodings.cpp - src/util/string.cpp - src/util/string.h - src/util/system.cpp - src/util/threadnames.cpp - src/util/threadnames.h - src/util/time.cpp - src/util/time.h - src/util/translation.h - src/util/url.cpp - src/util/url.h - src/util/validation.cpp - src/util/validation.h - src/util/vector.h - src/validation.cpp - src/validation.h - src/validationinterface.cpp - src/validationinterface.h - src/version.h - src/versionbits.cpp - src/versionbits.h - src/versionbitsinfo.cpp - src/versionbitsinfo.h - src/wallet/coincontrol.cpp - src/wallet/coincontrol.h - src/wallet/coinselection.cpp - src/wallet/coinselection.h - src/wallet/crypter.cpp - src/wallet/crypter.h - src/wallet/db.cpp - src/wallet/db.h - src/wallet/feebumper.cpp - src/wallet/feebumper.h - src/wallet/fees.cpp - src/wallet/fees.h - src/wallet/init.cpp - src/wallet/ismine.h - src/wallet/load.cpp - src/wallet/load.h - src/wallet/psbtwallet.cpp - src/wallet/psbtwallet.h - src/wallet/rpcdump.cpp - src/wallet/rpcwallet.cpp - src/wallet/rpcwallet.h - src/wallet/scriptpubkeyman.cpp - src/wallet/scriptpubkeyman.h - src/wallet/test/coinselector_tests.cpp - src/wallet/test/db_tests.cpp - src/wallet/test/init_test_fixture.cpp - src/wallet/test/init_test_fixture.h - src/wallet/test/init_tests.cpp - src/wallet/test/ismine_tests.cpp - src/wallet/test/psbt_wallet_tests.cpp - src/wallet/test/wallet_crypto_tests.cpp - src/wallet/test/wallet_test_fixture.cpp - src/wallet/test/wallet_test_fixture.h - src/wallet/test/wallet_tests.cpp - src/wallet/wallet.cpp - src/wallet/wallet.h - src/wallet/walletdb.cpp - src/wallet/walletdb.h - src/wallet/wallettool.cpp - src/wallet/wallettool.h - src/wallet/walletutil.cpp - src/wallet/walletutil.h - src/walletinitinterface.h - src/warnings.cpp - src/warnings.h - src/zmq/zmqabstractnotifier.cpp - src/zmq/zmqabstractnotifier.h - src/zmq/zmqconfig.h - src/zmq/zmqnotificationinterface.cpp - src/zmq/zmqnotificationinterface.h - src/zmq/zmqpublishnotifier.cpp - src/zmq/zmqpublishnotifier.h - src/zmq/zmqrpc.cpp - src/zmq/zmqrpc.h - test/functional/create_cache.py - test/functional/data/invalid_txs.py - test/functional/example_test.py - test/functional/feature_abortnode.py - test/functional/feature_assumevalid.py - test/functional/feature_bip68_sequence.py - test/functional/feature_block.py - test/functional/feature_blocksdir.py - test/functional/feature_cltv.py - test/functional/feature_config_args.py - test/functional/feature_csv_activation.py - test/functional/feature_dbcrash.py - test/functional/feature_dersig.py - test/functional/feature_fee_estimation.py - test/functional/feature_filelock.py - test/functional/feature_help.py - test/functional/feature_includeconf.py - test/functional/feature_loadblock.py - test/functional/feature_logging.py - test/functional/feature_maxuploadtarget.py - test/functional/feature_minchainwork.py - test/functional/feature_notifications.py - test/functional/feature_nulldummy.py - test/functional/feature_proxy.py - test/functional/feature_pruning.py - test/functional/feature_rbf.py - test/functional/feature_reindex.py - test/functional/feature_segwit.py - test/functional/feature_shutdown.py - test/functional/feature_uacomment.py - test/functional/feature_versionbits_warning.py - test/functional/interface_BGL_cli.py - test/functional/interface_http.py - test/functional/interface_rest.py - test/functional/interface_rpc.py - test/functional/interface_zmq.py - test/functional/mempool_accept.py - test/functional/mempool_limit.py - test/functional/mempool_package_onemore.py - test/functional/mempool_packages.py - test/functional/mempool_persist.py - test/functional/mempool_reorg.py - test/functional/mempool_resurrect.py - test/functional/mempool_spend_coinbase.py - test/functional/mining_basic.py - test/functional/mining_getblocktemplate_longpoll.py - test/functional/mining_prioritisetransaction.py - test/functional/p2p_blocksonly.py - test/functional/p2p_compactblocks.py - test/functional/p2p_disconnect_ban.py - test/functional/p2p_dos_header_tree.py - test/functional/p2p_feefilter.py - test/functional/p2p_fingerprint.py - test/functional/p2p_invalid_block.py - test/functional/p2p_invalid_locator.py - test/functional/p2p_invalid_messages.py - test/functional/p2p_invalid_tx.py - test/functional/p2p_leak.py - test/functional/p2p_leak_tx.py - test/functional/p2p_mempool.py - test/functional/p2p_node_network_limited.py - test/functional/p2p_permissions.py - test/functional/p2p_segwit.py - test/functional/p2p_sendheaders.py - test/functional/p2p_timeouts.py - test/functional/p2p_tx_download.py - test/functional/p2p_unrequested_blocks.py - test/functional/rpc_bind.py - test/functional/rpc_blockchain.py - test/functional/rpc_createmultisig.py - test/functional/rpc_decodescript.py - test/functional/rpc_deprecated.py - test/functional/rpc_deriveaddresses.py - test/functional/rpc_dumptxoutset.py - test/functional/rpc_fundrawtransaction.py - test/functional/rpc_getblockfilter.py - test/functional/rpc_getchaintips.py - test/functional/rpc_help.py - test/functional/rpc_invalidateblock.py - test/functional/rpc_misc.py - test/functional/rpc_named_arguments.py - test/functional/rpc_net.py - test/functional/rpc_preciousblock.py - test/functional/rpc_psbt.py - test/functional/rpc_rawtransaction.py - test/functional/rpc_scantxoutset.py - test/functional/rpc_setban.py - test/functional/rpc_signmessage.py - test/functional/rpc_signrawtransaction.py - test/functional/rpc_txoutproof.py - test/functional/rpc_uptime.py - test/functional/rpc_users.py - test/functional/rpc_whitelist.py - test/functional/test_framework/address.py - test/functional/test_framework/blocktools.py - test/functional/test_framework/coverage.py - test/functional/test_framework/descriptors.py - test/functional/test_framework/key.py - test/functional/test_framework/messages.py - test/functional/test_framework/mininode.py - test/functional/test_framework/netutil.py - test/functional/test_framework/script.py - test/functional/test_framework/script_util.py - test/functional/test_framework/segwit_addr.py - test/functional/test_framework/siphash.py - test/functional/test_framework/socks5.py - test/functional/test_framework/test_framework.py - test/functional/test_framework/test_node.py - test/functional/test_framework/test_shell.py - test/functional/test_framework/util.py - test/functional/test_framework/wallet_util.py - test/functional/test_runner.py - test/functional/tool_wallet.py - test/functional/wallet_abandonconflict.py - test/functional/wallet_address_types.py - test/functional/wallet_avoidreuse.py - test/functional/wallet_backup.py - test/functional/wallet_balance.py - test/functional/wallet_basic.py - test/functional/wallet_bumpfee.py - test/functional/wallet_bumpfee_totalfee_deprecation.py - test/functional/wallet_coinbase_category.py - test/functional/wallet_create_tx.py - test/functional/wallet_createwallet.py - test/functional/wallet_disable.py - test/functional/wallet_dump.py - test/functional/wallet_encryption.py - test/functional/wallet_fallbackfee.py - test/functional/wallet_groups.py - test/functional/wallet_hd.py - test/functional/wallet_implicitsegwit.py - test/functional/wallet_import_rescan.py - test/functional/wallet_import_with_label.py - test/functional/wallet_importmulti.py - test/functional/wallet_importprunedfunds.py - test/functional/wallet_keypool.py - test/functional/wallet_keypool_topup.py - test/functional/wallet_labels.py - test/functional/wallet_listreceivedby.py - test/functional/wallet_listsinceblock.py - test/functional/wallet_listtransactions.py - test/functional/wallet_multiwallet.py - test/functional/wallet_reorgsrestore.py - test/functional/wallet_resendwallettransactions.py - test/functional/wallet_txn_clone.py - test/functional/wallet_txn_doublespend.py - test/functional/wallet_watchonly.py - test/functional/wallet_zapwallettxes.py - test/fuzz/test_runner.py - test/lint/check-doc.py - test/lint/check-rpc-mappings.py - test/lint/extended-lint-cppcheck.sh - test/lint/git-subtree-check.sh - test/lint/lint-filenames.sh - test/util/BGL-util-test.py - test/util/rpcauth-test.py -Copyright: 2009-2010 Satoshi Nakamoto - 2009-2018 The Bitcoin Core developers - 2009-2019 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. - 2010 ArtForz -- public domain half-a-node - 2012 Jeff Garzik - 2012 Pieter Wuille - 2013-2015 Pieter Wuille, Gregory Maxwell Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. - 2013-2015 Thomas Daede, Cory Fields Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. - 2013-2017 Pieter Wuille, Andrew Poelstra Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. - 2013-2017 Pieter Wuille, Andrew Poelstra, Jonas Nick Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. - 2013-2019 Pieter Wuille Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. - 2014 BitPay Inc. - 2014 BitPay Inc. Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. - 2014 BitPay Inc. Distributed under the MIT/X11 software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. - 2014-2017 Wladimir J. van der Laan Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. - 2015 BGL Core Developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. - 2015-2017 Andrew Poelstra Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. - 2016 Jeremy Rubin Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. - 2017 The Zcash developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. - 2019 The BGL Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __NO_LICENSE__ - -Files: .appveyor.yml - .cirrus.yml - .gitattributes - .github/PULL_REQUEST_TEMPLATE.md - .gitignore - .python-version - .style.yapf - .tx/config - INSTALL.md - README.md - SECURITY.md - autom4te.cache/requests - autom4te.cache/traces.1 - autom4te.cache/traces.2 - build_msvc/.gitignore - build_msvc/BGL.sln - build_msvc/BGL_config.h - build_msvc/README.md - build_msvc/msvc-autogen.py - build_msvc/testconsensus/testconsensus.cpp - build_msvc/vcpkg-packages.txt - ci/README.md - ci/retry/README.md - ci/retry/retry - configure.ac - contrib/BGL-qt.pro - contrib/README.md - contrib/devtools/README.md - contrib/devtools/circular-dependencies.py - contrib/devtools/gen-manpages.sh - contrib/devtools/split-debug.sh.in - contrib/filter-lcov.py - contrib/gitian-build.py - contrib/gitian-descriptors/gitian-linux.yml - contrib/gitian-descriptors/gitian-osx-signer.yml - contrib/gitian-descriptors/gitian-osx.yml - contrib/gitian-descriptors/gitian-win-signer.yml - contrib/gitian-descriptors/gitian-win.yml - contrib/gitian-keys/README.md - contrib/gitian-keys/keys.txt - contrib/guix/README.md - contrib/guix/guix-build.sh - contrib/guix/libexec/build.sh - contrib/guix/manifest.scm - contrib/init/BGLd.conf - contrib/init/BGLd.init - contrib/init/BGLd.openrc - contrib/init/BGLd.openrcconf - contrib/init/BGLd.service - contrib/init/README.md - contrib/install_db4.sh - contrib/linearize/README.md - contrib/linearize/example-linearize.cfg - contrib/macdeploy/README.md - contrib/qos/README.md - contrib/seeds/README.md - contrib/seeds/nodes_main.txt - contrib/seeds/nodes_test.txt - contrib/testgen/README.md - contrib/valgrind.supp - contrib/verify-commits/README.md - contrib/verify-commits/allow-incorrect-sha512-commits - contrib/verify-commits/allow-revsig-commits - contrib/verify-commits/allow-unclean-merge-commits - contrib/verify-commits/trusted-git-root - contrib/verify-commits/trusted-keys - contrib/verify-commits/trusted-sha512-root-commit - contrib/verifybinaries/README.md - contrib/windeploy/win-codesign.cert - depends/.gitignore - depends/Makefile - depends/README.md - depends/builders/darwin.mk - depends/builders/default.mk - depends/builders/linux.mk - depends/config.site.in - depends/description.md - depends/funcs.mk - depends/hosts/android.mk - depends/hosts/darwin.mk - depends/hosts/default.mk - depends/hosts/linux.mk - depends/hosts/mingw32.mk - depends/packages.md - depends/packages/bdb.mk - depends/packages/boost.mk - depends/packages/expat.mk - depends/packages/fontconfig.mk - depends/packages/freetype.mk - depends/packages/libXau.mk - depends/packages/libevent.mk - depends/packages/libxcb.mk - depends/packages/miniupnpc.mk - depends/packages/native_biplist.mk - depends/packages/native_cctools.mk - depends/packages/native_cdrkit.mk - depends/packages/native_ds_store.mk - depends/packages/native_libdmg-hfsplus.mk - depends/packages/native_mac_alias.mk - depends/packages/packages.mk - depends/packages/qrencode.mk - depends/packages/qt.mk - depends/packages/rapidcheck.mk - depends/packages/xcb_proto.mk - depends/packages/xproto.mk - depends/packages/zeromq.mk - depends/packages/zlib.mk - depends/patches/native_cdrkit/cdrkit-deterministic.patch - depends/patches/native_libdmg-hfsplus/remove-libcrypto-dependency.patch - depends/patches/qt/fix_android_jni_static.patch - depends/patches/qt/fix_android_qmake_conf.patch - depends/patches/qt/fix_configure_mac.patch - depends/patches/qt/fix_no_printer.patch - depends/patches/qt/fix_qt_pkgconfig.patch - depends/patches/qt/fix_rcc_determinism.patch - depends/patches/qt/fix_riscv64_arch.patch - depends/patches/qt/mac-qmake.conf - depends/patches/qt/no-xlib.patch - depends/patches/qt/xkb-default.patch - depends/patches/zeromq/0001-fix-build-with-older-mingw64.patch - depends/patches/zeromq/0002-disable-pthread_set_name_np.patch - doc/.gitignore - doc/BGL-conf.md - doc/BGL_logo_doxygen.png - doc/Doxyfile.in - doc/JSON-RPC-interface.md - doc/README.md - doc/README_doxygen.md - doc/README_windows.txt - doc/REST-interface.md - doc/assets-attribution.md - doc/benchmarking.md - doc/bips.md - doc/build-freebsd.md - doc/build-netbsd.md - doc/build-openbsd.md - doc/build-unix.md - doc/build-windows.md - doc/dependencies.md - doc/descriptors.md - doc/developer-notes.md - doc/dnsseed-policy.md - doc/files.md - doc/fuzzing.md - doc/gitian-building.md - doc/init.md - doc/man/Makefile.am - doc/productivity.md - doc/psbt.md - doc/rapidcheck.md - doc/reduce-memory.md - doc/reduce-traffic.md - doc/release-notes-15437.md - doc/release-notes-15954.md - doc/release-notes-17056.md - doc/release-notes-17410.md - doc/release-notes-17437.md - doc/release-notes.md - doc/release-notes/release-notes-0.10.0.md - doc/release-notes/release-notes-0.10.1.md - doc/release-notes/release-notes-0.10.2.md - doc/release-notes/release-notes-0.10.3.md - doc/release-notes/release-notes-0.10.4.md - doc/release-notes/release-notes-0.11.0.md - doc/release-notes/release-notes-0.11.1.md - doc/release-notes/release-notes-0.11.2.md - doc/release-notes/release-notes-0.12.0.md - doc/release-notes/release-notes-0.12.1.md - doc/release-notes/release-notes-0.13.0.md - doc/release-notes/release-notes-0.13.1.md - doc/release-notes/release-notes-0.13.2.md - doc/release-notes/release-notes-0.14.0.md - doc/release-notes/release-notes-0.14.1.md - doc/release-notes/release-notes-0.14.2.md - doc/release-notes/release-notes-0.14.3.md - doc/release-notes/release-notes-0.15.0.1.md - doc/release-notes/release-notes-0.15.0.md - doc/release-notes/release-notes-0.15.1.md - doc/release-notes/release-notes-0.15.2.md - doc/release-notes/release-notes-0.16.0.md - doc/release-notes/release-notes-0.16.1.md - doc/release-notes/release-notes-0.16.2.md - doc/release-notes/release-notes-0.16.3.md - doc/release-notes/release-notes-0.17.0.1.md - doc/release-notes/release-notes-0.17.0.md - doc/release-notes/release-notes-0.17.1.md - doc/release-notes/release-notes-0.18.0.md - doc/release-notes/release-notes-0.18.1.md - doc/release-notes/release-notes-0.19.0.1.md - doc/release-notes/release-notes-0.19.0.md - doc/release-notes/release-notes-0.3.12.md - doc/release-notes/release-notes-0.3.13.md - doc/release-notes/release-notes-0.3.14.md - doc/release-notes/release-notes-0.3.15.md - doc/release-notes/release-notes-0.3.16.md - doc/release-notes/release-notes-0.3.17.md - doc/release-notes/release-notes-0.3.18.md - doc/release-notes/release-notes-0.3.19.md - doc/release-notes/release-notes-0.3.20.1.md - doc/release-notes/release-notes-0.3.20.2.md - doc/release-notes/release-notes-0.3.20.md - doc/release-notes/release-notes-0.3.21.md - doc/release-notes/release-notes-0.3.22.md - doc/release-notes/release-notes-0.3.23.md - doc/release-notes/release-notes-0.3.24.md - doc/release-notes/release-notes-0.4.0.md - doc/release-notes/release-notes-0.4.1.md - doc/release-notes/release-notes-0.4.2.md - doc/release-notes/release-notes-0.4.3.md - doc/release-notes/release-notes-0.4.4.md - doc/release-notes/release-notes-0.4.5.md - doc/release-notes/release-notes-0.4.6.md - doc/release-notes/release-notes-0.5.0.md - doc/release-notes/release-notes-0.5.1.md - doc/release-notes/release-notes-0.5.2.md - doc/release-notes/release-notes-0.5.3.md - doc/release-notes/release-notes-0.5.4.md - doc/release-notes/release-notes-0.5.5.md - doc/release-notes/release-notes-0.6.0.md - doc/release-notes/release-notes-0.6.1.md - doc/release-notes/release-notes-0.6.2.md - doc/release-notes/release-notes-0.6.3.md - doc/release-notes/release-notes-0.7.0.md - doc/release-notes/release-notes-0.7.1.md - doc/release-notes/release-notes-0.7.2.md - doc/release-notes/release-notes-0.8.0.md - doc/release-notes/release-notes-0.8.1.md - doc/release-notes/release-notes-0.8.2.md - doc/release-notes/release-notes-0.8.3.md - doc/release-notes/release-notes-0.8.4.md - doc/release-notes/release-notes-0.8.5.md - doc/release-notes/release-notes-0.8.6.md - doc/release-notes/release-notes-0.9.0.md - doc/release-notes/release-notes-0.9.1.md - doc/release-notes/release-notes-0.9.2.1.md - doc/release-notes/release-notes-0.9.2.md - doc/release-notes/release-notes-0.9.3.md - doc/release-notes/release-notes-0.9.4.md - doc/release-notes/release-notes-0.9.5.md - doc/release-process.md - doc/shared-libraries.md - doc/tor.md - doc/translation_process.md - doc/translation_strings_policy.md - doc/zmq.md - libBGLconsensus.pc.in - share/examples/BGL.conf - share/pixmaps/BGL.ico - share/pixmaps/BGL128.png - share/pixmaps/BGL128.xpm - share/pixmaps/BGL16.png - share/pixmaps/BGL16.xpm - share/pixmaps/BGL256.png - share/pixmaps/BGL256.xpm - share/pixmaps/BGL32.png - share/pixmaps/BGL32.xpm - share/pixmaps/BGL64.png - share/pixmaps/BGL64.xpm - share/pixmaps/nsis-header.bmp - share/pixmaps/nsis-wizard.bmp - share/rpcauth/README.md - share/setup-BGL-win.nsi - share/setup.nsi.in - src/.clang-format - src/.vscode/settings.json - src/BGL-cli-res.rc - src/BGL-tx-res.rc - src/BGL-wallet-res.rc - src/BGLd-res.rc - src/Makefile.qt_locale.include - src/bench/.gitignore - src/bench/data/block413567.raw - src/chainparamsseeds.h - src/config/.empty - src/config/BGL-config.h.in - src/config/BGL-config.h.in~ - src/crypto/ctaes/README.md - src/crypto/ctaes/bench.c - src/crypto/sha256_avx2.cpp - src/crypto/sha256_sse41.cpp - src/crypto/sha3/README.md - src/crypto/sha3/sha3.c - src/crypto/sha3/sha3.h - src/crypto/sha3/sha3sum.c - src/crypto/sha3/sha3test.c - src/fs.cpp - src/interfaces/README.md - src/leveldb/.gitignore - src/leveldb/.travis.yml - src/leveldb/AUTHORS - src/leveldb/CONTRIBUTING.md - src/leveldb/NEWS - src/leveldb/TODO - src/leveldb/WINDOWS.md - src/leveldb/build_detect_platform - src/leveldb/doc/impl.md - src/leveldb/doc/index.md - src/leveldb/doc/log_format.md - src/leveldb/doc/table_format.md - src/leveldb/port/README - src/leveldb/util/env_win.cc - src/node/README.md - src/qt/BGLstrings.cpp - src/qt/README.md - src/qt/res/BGL-qt-res.rc - src/qt/res/icons/BGL.icns - src/qt/res/icons/BGL.ico - src/qt/res/icons/BGL.png - src/qt/res/icons/BGL_testnet.ico - src/qt/res/icons/add.png - src/qt/res/icons/address-book.png - src/qt/res/icons/chevron.png - src/qt/res/icons/clock1.png - src/qt/res/icons/clock2.png - src/qt/res/icons/clock3.png - src/qt/res/icons/clock4.png - src/qt/res/icons/clock5.png - src/qt/res/icons/connect0.png - src/qt/res/icons/connect1.png - src/qt/res/icons/connect2.png - src/qt/res/icons/connect3.png - src/qt/res/icons/connect4.png - src/qt/res/icons/edit.png - src/qt/res/icons/editcopy.png - src/qt/res/icons/editpaste.png - src/qt/res/icons/export.png - src/qt/res/icons/eye.png - src/qt/res/icons/eye_minus.png - src/qt/res/icons/eye_plus.png - src/qt/res/icons/fontbigger.png - src/qt/res/icons/fontsmaller.png - src/qt/res/icons/hd_disabled.png - src/qt/res/icons/hd_enabled.png - src/qt/res/icons/history.png - src/qt/res/icons/lock_closed.png - src/qt/res/icons/lock_open.png - src/qt/res/icons/network_disabled.png - src/qt/res/icons/overview.png - src/qt/res/icons/proxy.png - src/qt/res/icons/receive.png - src/qt/res/icons/remove.png - src/qt/res/icons/send.png - src/qt/res/icons/synced.png - src/qt/res/icons/transaction0.png - src/qt/res/icons/transaction2.png - src/qt/res/icons/transaction_abandoned.png - src/qt/res/icons/transaction_conflicted.png - src/qt/res/icons/tx_inout.png - src/qt/res/icons/tx_input.png - src/qt/res/icons/tx_mined.png - src/qt/res/icons/tx_output.png - src/qt/res/icons/warning.png - src/qt/res/movies/spinner-000.png - src/qt/res/movies/spinner-001.png - src/qt/res/movies/spinner-002.png - src/qt/res/movies/spinner-003.png - src/qt/res/movies/spinner-004.png - src/qt/res/movies/spinner-005.png - src/qt/res/movies/spinner-006.png - src/qt/res/movies/spinner-007.png - src/qt/res/movies/spinner-008.png - src/qt/res/movies/spinner-009.png - src/qt/res/movies/spinner-010.png - src/qt/res/movies/spinner-011.png - src/qt/res/movies/spinner-012.png - src/qt/res/movies/spinner-013.png - src/qt/res/movies/spinner-014.png - src/qt/res/movies/spinner-015.png - src/qt/res/movies/spinner-016.png - src/qt/res/movies/spinner-017.png - src/qt/res/movies/spinner-018.png - src/qt/res/movies/spinner-019.png - src/qt/res/movies/spinner-020.png - src/qt/res/movies/spinner-021.png - src/qt/res/movies/spinner-022.png - src/qt/res/movies/spinner-023.png - src/qt/res/movies/spinner-024.png - src/qt/res/movies/spinner-025.png - src/qt/res/movies/spinner-026.png - src/qt/res/movies/spinner-027.png - src/qt/res/movies/spinner-028.png - src/qt/res/movies/spinner-029.png - src/qt/res/movies/spinner-030.png - src/qt/res/movies/spinner-031.png - src/qt/res/movies/spinner-032.png - src/qt/res/movies/spinner-033.png - src/qt/res/movies/spinner-034.png - src/qt/res/movies/spinner-035.png - src/qt/res/src/spinner.png - src/qt/test/addressbooktests.cpp - src/qt/test/addressbooktests.h - src/qt/test/util.cpp - src/qt/test/util.h - src/qt/test/wallettests.cpp - src/qt/test/wallettests.h - src/reverse_iterator.h - src/secp256k1/.gitignore - src/secp256k1/.travis.yml - src/secp256k1/Makefile.am - src/secp256k1/README.md - src/secp256k1/TODO - src/secp256k1/autogen.sh - src/secp256k1/autom4te.cache/requests - src/secp256k1/autom4te.cache/traces.1 - src/secp256k1/autom4te.cache/traces.2 - src/secp256k1/build-aux/m4/BGL_secp.m4 - src/secp256k1/configure.ac - src/secp256k1/include/secp256k1.h - src/secp256k1/include/secp256k1_ecdh.h - src/secp256k1/include/secp256k1_recovery.h - src/secp256k1/libsecp256k1.pc.in - src/secp256k1/obj/.gitignore - src/secp256k1/sage/group_prover.sage - src/secp256k1/sage/secp256k1.sage - src/secp256k1/sage/weierstrass_prover.sage - src/secp256k1/src/java/org/BGL/NativeSecp256k1Test.java - src/secp256k1/src/java/org_BGL_NativeSecp256k1.c - src/secp256k1/src/java/org_BGL_NativeSecp256k1.h - src/secp256k1/src/java/org_BGL_Secp256k1Context.c - src/secp256k1/src/java/org_BGL_Secp256k1Context.h - src/secp256k1/src/libsecp256k1-config.h.in - src/secp256k1/src/libsecp256k1-config.h.in~ - src/secp256k1/src/modules/ecdh/Makefile.am.include - src/secp256k1/src/modules/recovery/Makefile.am.include - src/test/README.md - src/test/blockchain_tests.cpp - src/test/data/README.md - src/test/data/base58_encode_decode.json - src/test/data/blockfilters.json - src/test/data/key_io_invalid.json - src/test/data/key_io_valid.json - src/test/data/script_tests.json - src/test/data/sighash.json - src/test/data/tx_invalid.json - src/test/data/tx_valid.json - src/test/fuzz/FuzzedDataProvider.h - src/test/util/README.md - src/univalue/.gitignore - src/univalue/.travis.yml - src/univalue/Makefile.am - src/univalue/README.md - src/univalue/TODO - src/univalue/autogen.sh - src/univalue/autom4te.cache/requests - src/univalue/autom4te.cache/traces.1 - src/univalue/autom4te.cache/traces.2 - src/univalue/build-aux/m4/.gitignore - src/univalue/configure.ac - src/univalue/lib/.gitignore - src/univalue/lib/univalue_escapes.h - src/univalue/pc/libunivalue-uninstalled.pc.in - src/univalue/pc/libunivalue.pc.in - src/univalue/test/.gitignore - src/univalue/test/fail1.json - src/univalue/test/fail10.json - src/univalue/test/fail11.json - src/univalue/test/fail12.json - src/univalue/test/fail13.json - src/univalue/test/fail14.json - src/univalue/test/fail15.json - src/univalue/test/fail16.json - src/univalue/test/fail17.json - src/univalue/test/fail18.json - src/univalue/test/fail19.json - src/univalue/test/fail2.json - src/univalue/test/fail20.json - src/univalue/test/fail21.json - src/univalue/test/fail22.json - src/univalue/test/fail23.json - src/univalue/test/fail24.json - src/univalue/test/fail25.json - src/univalue/test/fail26.json - src/univalue/test/fail27.json - src/univalue/test/fail28.json - src/univalue/test/fail29.json - src/univalue/test/fail3.json - src/univalue/test/fail30.json - src/univalue/test/fail31.json - src/univalue/test/fail32.json - src/univalue/test/fail33.json - src/univalue/test/fail34.json - src/univalue/test/fail35.json - src/univalue/test/fail36.json - src/univalue/test/fail37.json - src/univalue/test/fail38.json - src/univalue/test/fail39.json - src/univalue/test/fail4.json - src/univalue/test/fail40.json - src/univalue/test/fail41.json - src/univalue/test/fail42.json - src/univalue/test/fail44.json - src/univalue/test/fail5.json - src/univalue/test/fail6.json - src/univalue/test/fail7.json - src/univalue/test/fail8.json - src/univalue/test/fail9.json - src/univalue/test/no_nul.cpp - src/univalue/test/pass1.json - src/univalue/test/pass2.json - src/univalue/test/pass3.json - src/univalue/test/round1.json - src/univalue/test/round2.json - src/univalue/test/round3.json - src/univalue/test/round4.json - src/univalue/test/round5.json - src/univalue/test/round6.json - src/univalue/test/round7.json - src/univalue/test/test_json.cpp - src/univalue/univalue-config.h.in - src/univalue/univalue-config.h.in~ - test/README.md - test/functional/.gitignore - test/functional/README.md - test/functional/combine_logs.py - test/functional/data/blockheader_testnet3.hex - test/functional/data/rpc_bip67.json - test/functional/data/rpc_getblockstats.json - test/functional/data/rpc_psbt.json - test/functional/data/wallets/high_minversion/.walletlock - test/functional/data/wallets/high_minversion/GENERATE.md - test/functional/test-shell.md - test/functional/test_framework/__init__.py - test/functional/test_framework/bignum.py - test/lint/README.md - test/lint/lint-locale-dependence.sh - test/lint/lint-shebang.sh - test/lint/lint-spelling.ignore-words.txt - test/sanitizer_suppressions/lsan - test/sanitizer_suppressions/tsan - test/sanitizer_suppressions/ubsan - test/util/data/BGL-util-test.json - test/util/data/blanktxv1.hex - test/util/data/blanktxv1.json - test/util/data/blanktxv2.hex - test/util/data/blanktxv2.json - test/util/data/tt-delin1-out.hex - test/util/data/tt-delin1-out.json - test/util/data/tt-delout1-out.hex - test/util/data/tt-delout1-out.json - test/util/data/tt-locktime317000-out.hex - test/util/data/tt-locktime317000-out.json - test/util/data/tx394b54bb.hex - test/util/data/txcreate1.hex - test/util/data/txcreate1.json - test/util/data/txcreate2.hex - test/util/data/txcreate2.json - test/util/data/txcreatedata1.hex - test/util/data/txcreatedata1.json - test/util/data/txcreatedata2.hex - test/util/data/txcreatedata2.json - test/util/data/txcreatedata_seq0.hex - test/util/data/txcreatedata_seq0.json - test/util/data/txcreatedata_seq1.hex - test/util/data/txcreatedata_seq1.json - test/util/data/txcreatemultisig1.hex - test/util/data/txcreatemultisig1.json - test/util/data/txcreatemultisig2.hex - test/util/data/txcreatemultisig2.json - test/util/data/txcreatemultisig3.hex - test/util/data/txcreatemultisig3.json - test/util/data/txcreatemultisig4.hex - test/util/data/txcreatemultisig4.json - test/util/data/txcreatemultisig5.json - test/util/data/txcreateoutpubkey1.hex - test/util/data/txcreateoutpubkey1.json - test/util/data/txcreateoutpubkey2.hex - test/util/data/txcreateoutpubkey2.json - test/util/data/txcreateoutpubkey3.hex - test/util/data/txcreateoutpubkey3.json - test/util/data/txcreatescript1.hex - test/util/data/txcreatescript1.json - test/util/data/txcreatescript2.hex - test/util/data/txcreatescript2.json - test/util/data/txcreatescript3.hex - test/util/data/txcreatescript3.json - test/util/data/txcreatescript4.hex - test/util/data/txcreatescript4.json - test/util/data/txcreatesignv1.hex - test/util/data/txcreatesignv1.json - test/util/data/txcreatesignv2.hex -Copyright: __NO_COPYRIGHT_NOR_LICENSE__ -License: __NO_COPYRIGHT_NOR_LICENSE__ - -Files: src/leveldb/Makefile - src/leveldb/db/autocompact_test.cc - src/leveldb/db/builder.cc - src/leveldb/db/builder.h - src/leveldb/db/c.cc - src/leveldb/db/c_test.c - src/leveldb/db/corruption_test.cc - src/leveldb/db/db_bench.cc - src/leveldb/db/db_impl.cc - src/leveldb/db/db_impl.h - src/leveldb/db/db_iter.cc - src/leveldb/db/db_iter.h - src/leveldb/db/db_test.cc - src/leveldb/db/dbformat.cc - src/leveldb/db/dbformat.h - src/leveldb/db/dbformat_test.cc - src/leveldb/db/dumpfile.cc - src/leveldb/db/filename.cc - src/leveldb/db/filename_test.cc - src/leveldb/db/leveldbutil.cc - src/leveldb/db/log_reader.cc - src/leveldb/db/log_reader.h - src/leveldb/db/log_test.cc - src/leveldb/db/log_writer.cc - src/leveldb/db/log_writer.h - src/leveldb/db/memtable.cc - src/leveldb/db/memtable.h - src/leveldb/db/recovery_test.cc - src/leveldb/db/skiplist.h - src/leveldb/db/skiplist_test.cc - src/leveldb/db/snapshot.h - src/leveldb/db/table_cache.cc - src/leveldb/db/version_edit.cc - src/leveldb/db/version_edit.h - src/leveldb/db/version_edit_test.cc - src/leveldb/db/version_set.cc - src/leveldb/db/version_set_test.cc - src/leveldb/db/write_batch.cc - src/leveldb/db/write_batch_internal.h - src/leveldb/db/write_batch_test.cc - src/leveldb/doc/bench/db_bench_sqlite3.cc - src/leveldb/doc/bench/db_bench_tree_db.cc - src/leveldb/helpers/memenv/memenv.cc - src/leveldb/helpers/memenv/memenv.h - src/leveldb/helpers/memenv/memenv_test.cc - src/leveldb/include/leveldb/comparator.h - src/leveldb/include/leveldb/db.h - src/leveldb/include/leveldb/dumpfile.h - src/leveldb/include/leveldb/options.h - src/leveldb/include/leveldb/table.h - src/leveldb/port/port.h - src/leveldb/port/port_posix.cc - src/leveldb/port/port_posix.h - src/leveldb/port/thread_annotations.h - src/leveldb/table/block.cc - src/leveldb/table/block.h - src/leveldb/table/block_builder.h - src/leveldb/table/filter_block.cc - src/leveldb/table/filter_block_test.cc - src/leveldb/table/format.cc - src/leveldb/table/format.h - src/leveldb/table/iterator.cc - src/leveldb/table/iterator_wrapper.h - src/leveldb/table/merger.cc - src/leveldb/table/merger.h - src/leveldb/table/table.cc - src/leveldb/table/table_builder.cc - src/leveldb/table/table_test.cc - src/leveldb/table/two_level_iterator.cc - src/leveldb/table/two_level_iterator.h - src/leveldb/util/arena.cc - src/leveldb/util/arena.h - src/leveldb/util/arena_test.cc - src/leveldb/util/bloom.cc - src/leveldb/util/bloom_test.cc - src/leveldb/util/cache.cc - src/leveldb/util/cache_test.cc - src/leveldb/util/coding.cc - src/leveldb/util/coding_test.cc - src/leveldb/util/comparator.cc - src/leveldb/util/crc32c.h - src/leveldb/util/crc32c_test.cc - src/leveldb/util/env.cc - src/leveldb/util/env_posix.cc - src/leveldb/util/env_posix_test.cc - src/leveldb/util/env_posix_test_helper.h - src/leveldb/util/env_test.cc - src/leveldb/util/filter_policy.cc - src/leveldb/util/hash.cc - src/leveldb/util/hash_test.cc - src/leveldb/util/histogram.cc - src/leveldb/util/histogram.h - src/leveldb/util/logging.cc - src/leveldb/util/mutexlock.h - src/leveldb/util/options.cc - src/leveldb/util/random.h - src/leveldb/util/status.cc - src/leveldb/util/testharness.cc - src/leveldb/util/testharness.h - src/leveldb/util/testutil.cc - src/leveldb/util/testutil.h -Copyright: 2011-2017 The LevelDB Authors. -License: __UNKNOWN__ - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. See the AUTHORS file for names of contributors. - -Files: Makefile.in - aclocal.m4 - build-aux/compile - build-aux/config.guess - build-aux/config.sub - build-aux/depcomp - build-aux/install-sh - build-aux/ltmain.sh - build-aux/m4/ax_boost_base.m4 - build-aux/m4/ax_boost_chrono.m4 - build-aux/m4/ax_boost_filesystem.m4 - build-aux/m4/ax_boost_system.m4 - build-aux/m4/ax_boost_thread.m4 - build-aux/m4/ax_boost_unit_test_framework.m4 - build-aux/m4/ax_cxx_compile_stdcxx.m4 - build-aux/m4/ax_gcc_func_attribute.m4 - build-aux/m4/l_atomic.m4 - build-aux/m4/libtool.m4 - build-aux/m4/ltoptions.m4 - build-aux/m4/ltsugar.m4 - build-aux/m4/ltversion.m4 - build-aux/m4/lt~obsolete.m4 - build-aux/missing - build-aux/test-driver - doc/man/Makefile.in - src/secp256k1/Makefile.in - src/univalue/Makefile.in -Copyright: 1992-2018 Free Software Foundation, Inc. - 1994 X Consortium - 2008 Benjamin Kosnik - 2008 Daniel Casimiro - 2008-2009 Michael Tindal - 2008-2009 Thomas Porschberg - 2009 Peter Adolphs - 2009 Roman Rybalko - 2012 Xiyue Deng - 2012 Zack Weinberg - 2013 Gabriele Svelto - 2013 Roy Stogner - 2014-2015 Google Inc.; contributed Alexey Sokolov - 2015 Moritz Klammler - 2015 Paul Norman - 2015 Tim Kosse -License: __AUTO_PERMISSIVE__ - Autogenerated files with permissive licenses. - -Files: src/secp256k1/build-aux/m4/libtool.m4 - src/secp256k1/build-aux/m4/ltoptions.m4 - src/secp256k1/build-aux/m4/ltsugar.m4 - src/secp256k1/build-aux/m4/ltversion.m4 - src/secp256k1/build-aux/m4/lt~obsolete.m4 - src/univalue/build-aux/m4/libtool.m4 - src/univalue/build-aux/m4/ltoptions.m4 - src/univalue/build-aux/m4/ltsugar.m4 - src/univalue/build-aux/m4/ltversion.m4 - src/univalue/build-aux/m4/lt~obsolete.m4 -Copyright: 1996-2015 Free Software Foundation, Inc. -License: PERMISSIVE - This file is free software; the Free Software Foundation gives - unlimited permission to copy and/or distribute it, with or without - modifications, as long as this notice is preserved. - -Files: src/secp256k1/autom4te.cache/output.0 - src/secp256k1/autom4te.cache/output.1 - src/secp256k1/autom4te.cache/output.2 - src/secp256k1/configure - src/univalue/autom4te.cache/output.0 - src/univalue/autom4te.cache/output.1 - src/univalue/autom4te.cache/output.2 - src/univalue/configure -Copyright: 1992-2012 Free Software Foundation, Inc. -License: PERMISSIVE - This configure script is free software; the Free Software Foundation - gives unlimited permission to copy, distribute and modify it. - -Files: src/secp256k1/build-aux/compile - src/secp256k1/build-aux/missing - src/secp256k1/build-aux/test-driver - src/univalue/build-aux/compile - src/univalue/build-aux/missing - src/univalue/build-aux/test-driver -Copyright: 1996-2018 Free Software Foundation, Inc. -License: GPL-2.0+ with autoconf exception - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - . - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - . - You should have received a copy of the GNU General Public License - along with this program. If not, see . - . - As a special exception to the GNU General Public License, if you - distribute this file as part of a program that contains a - configuration script generated by Autoconf, you may include it under - the same distribution terms that you use for the rest of that program. - . - On Debian systems, the complete text of the GNU General Public License - Version 2 can be found in `/usr/share/common-licenses/GPL-2'. - -Files: doc/man/BGL-cli.1 - doc/man/BGL-qt.1 - doc/man/BGL-tx.1 - doc/man/BGL-wallet.1 - doc/man/BGLd.1 -Copyright: 2009-2019 The Bitcoin Core developers -License: __UNKNOWN__ - Please contribute if you find BGL Core useful. Visit - for further information about the software. - The source code is available from . - . - This is experimental software. - Distributed under the MIT software license, see the accompanying file COPYING - or - -Files: build-aux/m4/ax_check_compile_flag.m4 - build-aux/m4/ax_check_link_flag.m4 - build-aux/m4/ax_check_preproc_flag.m4 - build-aux/m4/ax_pthread.m4 -Copyright: 2008 Guido U. Draheim - 2008 Steven G. Johnson - 2011 Daniel Richard G. - 2011 Maarten Bosmans -License: GPL-3.0+ with unknown exception *** check multiple exceptions *** - This program is free software: you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation, either version 3 of the License, or (at your - option) any later version. - . - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General - Public License for more details. - . - You should have received a copy of the GNU General Public License along - with this program. If not, see . - . - As a special exception, the respective Autoconf Macro's copyright owner - gives unlimited permission to copy, distribute and modify the configure - scripts that are the output of Autoconf when processing the Macro. You - need not follow the terms of the GNU General Public License when using - or distributing such scripts, even though portions of the text of the - Macro appear in them. The GNU General Public License (GPL) does govern - all other use of the material that constitutes the Autoconf Macro. - . - This special exception to the GPL applies to versions of the Autoconf - Macro released by the Autoconf Archive. When you make and distribute a - modified version of the Autoconf Macro, you may extend this special - exception to the GPL to apply to your modified version as well. - . - On Debian systems, the complete text of the GNU General Public License - Version 3 can be found in `/usr/share/common-licenses/GPL-3'. - -Files: src/secp256k1/src/java/org/BGL/NativeSecp256k1.java - src/secp256k1/src/java/org/BGL/NativeSecp256k1Util.java - src/secp256k1/src/java/org/BGL/Secp256k1Context.java -Copyright: 2013 Google Inc. - 2014-2016 the libsecp256k1 contributors -License: Apache-2.0 - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - . - http://www.apache.org/licenses/LICENSE-2.0 - . - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - . - On Debian systems, the complete text of the Apache License Version 2.0 - can be found in `/usr/share/common-licenses/Apache-2.0'. - -Files: autom4te.cache/traces.0 - src/secp256k1/autom4te.cache/traces.0 - src/univalue/autom4te.cache/traces.0 -Copyright: 2011 Free Software Foundation, Inc. -License: __UNKNOWN__ - This config.lt script is free software; the Free Software Foundation - gives unlimited permision to copy, distribute and modify it." - -Files: depends/config.guess - src/secp256k1/build-aux/config.guess - src/univalue/build-aux/config.guess -Copyright: 1992-2019 Free Software Foundation, Inc. -License: GPL-3.0+ with autoconf exception - This file is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - . - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - . - You should have received a copy of the GNU General Public License - along with this program; if not, see . - . - As a special exception to the GNU General Public License, if you - distribute this file as part of a program that contains a - configuration script generated by Autoconf, you may include it under - the same distribution terms that you use for the rest of that - program. This Exception is an additional permission under section 7 - of the GNU General Public License, version 3 ("GPLv3"). - . - Originally written by Per Bothner; maintained since 2000 by Ben Elliston. - . - On Debian systems, the complete text of the GNU General Public License - Version 3 can be found in `/usr/share/common-licenses/GPL-3'. - -Files: depends/config.sub - src/secp256k1/build-aux/config.sub - src/univalue/build-aux/config.sub -Copyright: 1992-2019 Free Software Foundation, Inc. -License: GPL-3.0+ with autoconf exception - This file is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - . - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - . - You should have received a copy of the GNU General Public License - along with this program; if not, see . - . - As a special exception to the GNU General Public License, if you - distribute this file as part of a program that contains a - configuration script generated by Autoconf, you may include it under - the same distribution terms that you use for the rest of that - program. This Exception is an additional permission under section 7 - of the GNU General Public License, version 3 ("GPLv3"). - . - On Debian systems, the complete text of the GNU General Public License - Version 3 can be found in `/usr/share/common-licenses/GPL-3'. - -Files: src/secp256k1/build-aux/install-sh - src/univalue/build-aux/install-sh -Copyright: 1994 X Consortium -License: MIT - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to - deal in the Software without restriction, including without limitation the - rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - . - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - . - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- - TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - . - Except as contained in this notice, the name of the X Consortium shall not - be used in advertising or otherwise to promote the sale, use or other deal- - ings in this Software without prior written authorization from the X Consor- - tium. - . - FSF changes to this file are in the public domain. - . - Calling this script install-sh is preferred over install.sh, to prevent - 'make' implicit rules from creating a file called install from it - when there is no Makefile. - . - This script is compatible with the BSD install script, but was written - from scratch. - -Files: src/secp256k1/build-aux/m4/ax_jni_include_dir.m4 - src/secp256k1/build-aux/m4/ax_prog_cc_for_build.m4 -Copyright: 2008 Don Anderson - 2008 Paolo Bonzini -License: PERMISSIVE - Copying and distribution of this file, with or without modification, are - permitted in any medium without royalty provided the copyright notice - and this notice are preserved. This file is offered as-is, without any - warranty. - -Files: src/secp256k1/aclocal.m4 - src/univalue/aclocal.m4 -Copyright: 1996-2018 Free Software Foundation, Inc. -License: PERMISSIVE - This file is free software; the Free Software Foundation - gives unlimited permission to copy and/or distribute it, - with or without modifications, as long as this notice is preserved. - . - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY, to the extent permitted by law; without - even the implied warranty of MERCHANTABILITY or FITNESS FOR A - PARTICULAR PURPOSE. - -Files: src/leveldb/port/port_win.cc - src/leveldb/port/port_win.h -Copyright: __NO_COPYRIGHT__ in: src/leveldb/port/port_win.cc - __NO_COPYRIGHT__ in: src/leveldb/port/port_win.h -License: __UNKNOWN__ - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - . - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the University of California, Berkeley nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - . - THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -Files: test/lint/lint-format-strings.py - test/lint/lint-format-strings.sh -Copyright: 2018-2019 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Lint format strings: This program checks that the number of arguments passed - to a variadic format string function matches the number of format specifiers - in the format string. - -Files: src/secp256k1/build-aux/ltmain.sh - src/univalue/build-aux/ltmain.sh -Copyright: 1996-2015 Free Software Foundation, Inc. -License: GPL-2.0+ with libtool exception - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - . - GNU Libtool is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - . - As a special exception to the GNU General Public License, - if you distribute this file as part of a program or library that - is built using GNU Libtool, you may include this file under the - same distribution terms that you use for the rest of that program. - . - GNU Libtool is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - . - You should have received a copy of the GNU General Public License - along with this program. If not, see . - . - On Debian systems, the complete text of the GNU General Public License - Version 2 can be found in `/usr/share/common-licenses/GPL-2'. - -Files: src/secp256k1/build-aux/depcomp - src/univalue/build-aux/depcomp -Copyright: 1999-2018 Free Software Foundation, Inc. -License: GPL-2.0+ with autoconf exception - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - . - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - . - You should have received a copy of the GNU General Public License - along with this program. If not, see . - . - As a special exception to the GNU General Public License, if you - distribute this file as part of a program that contains a - configuration script generated by Autoconf, you may include it under - the same distribution terms that you use for the rest of that program. - . - Originally written by Alexandre Oliva . - . - On Debian systems, the complete text of the GNU General Public License - Version 2 can be found in `/usr/share/common-licenses/GPL-2'. - -Files: contrib/macdeploy/macdeployqtplus -Copyright: 2011 Patrick "p2k" Schneider -License: GPL-3.0+ - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - . - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - . - You should have received a copy of the GNU General Public License - along with this program. If not, see . - . - On Debian systems, the complete text of the GNU General Public License - Version 3 can be found in `/usr/share/common-licenses/GPL-3'. - -Files: test/functional/test_framework/authproxy.py -Copyright: 2007 Jan-Klaas Kollhof - 2011 Jeff Garzik -License: LGPL-2.1+ - Previous copyright, from python-jsonrpc/jsonrpc/proxy.py: - . - This file is part of jsonrpc. - . - jsonrpc is free software; you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 2.1 of the License, or - (at your option) any later version. - . - This software is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - . - You should have received a copy of the GNU Lesser General Public License - along with this software; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - . - The FSF address in the above text is the old one. - . - On Debian systems, the complete text of the GNU Lesser General Public License - Version 2.1 can be found in `/usr/share/common-licenses/LGPL-2.1'. - -Files: build-aux/m4/BGL_qt.m4 -Copyright: 2013-2016 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Helper for cases where a qt dependency is not met. - -Files: src/leveldb/util/crc32c.cc -Copyright: 2011 The LevelDB Authors. -License: __UNKNOWN__ - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. See the AUTHORS file for names of contributors. - . - A portable implementation of crc32c, optimized to handle - four bytes at a time. - -Files: src/leveldb/include/leveldb/filter_policy.h -Copyright: 2012 The LevelDB Authors. -License: __UNKNOWN__ - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. See the AUTHORS file for names of contributors. - . - A database can be configured with a custom FilterPolicy object. - This object is responsible for creating a small filter from a set - of keys. These filters are stored in leveldb and are consulted - automatically by leveldb to decide whether or not to read some - information from disk. In many cases, a filter can cut down the - number of disk seeks form a handful to a single disk seek per - DB::Get() call. - . - Most people will want to use the builtin bloom filter support (see - NewBloomFilterPolicy() below). - -Files: src/leveldb/issues/issue178_test.cc -Copyright: 2013 The LevelDB Authors. -License: __UNKNOWN__ - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. See the AUTHORS file for names of contributors. - . - Test for issue 178: a manual compaction causes deleted data to reappear. - -Files: test/lint/lint-assertions.sh -Copyright: 2018 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Check for assertions with obvious side effects. - -Files: test/lint/lint-whitespace.sh -Copyright: 2017-2019 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Check for new lines in diff that introduce trailing whitespace. - . - We can't run this check unless we know the commit range for the PR. - -Files: src/leveldb/include/leveldb/env.h -Copyright: 2011 The LevelDB Authors. -License: __UNKNOWN__ - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. See the AUTHORS file for names of contributors. - . - An Env is an interface used by the leveldb implementation to access - operating system functionality like the filesystem etc. Callers - may wish to provide a custom Env object when opening a database to - get fine gain control; e.g., to rate limit file system operations. - . - All Env implementations are safe for concurrent access from - multiple threads without any external synchronization. - -Files: config.log -Copyright: 2019 Free Software Foundation, Inc. -License: __UNKNOWN__ - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -Files: src/leveldb/util/logging.h -Copyright: 2011 The LevelDB Authors. -License: __UNKNOWN__ - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. See the AUTHORS file for names of contributors. - . - Must not be included from any .h files to avoid polluting the namespace - with macros. - -Files: src/leveldb/table/block_builder.cc -Copyright: 2011 The LevelDB Authors. -License: __UNKNOWN__ - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. See the AUTHORS file for names of contributors. - . - BlockBuilder generates blocks where keys are prefix-compressed: - . - When we store a key, we drop the prefix shared with the previous - string. This helps reduce the space requirement significantly. - Furthermore, once every K keys, we do not apply the prefix - compression and store the entire key. We call this a "restart - point". The tail end of the block stores the offsets of all of the - restart points, and can be used to do a binary search when looking - for a particular key. Values are stored as-is (without compression) - immediately following the corresponding key. - . - An entry for a particular key-value pair has the form: - -Files: src/leveldb/port/atomic_pointer.h -Copyright: 2011 The LevelDB Authors. -License: __UNKNOWN__ - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. See the AUTHORS file for names of contributors. - . - AtomicPointer provides storage for a lock-free pointer. - Platform-dependent implementation of AtomicPointer: - - If the platform provides a cheap barrier, we use it with raw pointers - - If is present (on newer versions of gcc, it is), we use - a -based AtomicPointer. However we prefer the memory - barrier based version, because at least on a gcc 4.4 32-bit build - on linux, we have encountered a buggy implementation. - Also, some implementations are much slower than a memory-barrier - based implementation (~16ns for based acquire-load vs. ~1ns for - a barrier based acquire-load). - This code is based on atomicops-internals-* in Google's perftools: - http://code.google.com/p/google-perftools/source/browse/#svn%2Ftrunk%2Fsrc%2Fbase - -Files: test/lint/lint-qt.sh -Copyright: 2018 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Check for SIGNAL/SLOT connect style, removed since Qt4 support drop. - -Files: doc/build-osx.md -Copyright: __NO_COPYRIGHT__ in: doc/build-osx.md -License: __UNKNOWN__ - The DMG tool has the ability to create DMGs from scratch as well, but this functionality is - broken. Only the compression feature is currently used. Ideally, the creation could be fixed - and `genisoimage` would no longer be necessary. - . - Background images and other features can be added to DMG files by inserting a - -Files: src/crypto/ctaes/ctaes.c -Copyright: 2016 Pieter Wuille Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Constant time, unoptimized, concise, plain C, AES implementation - Based On: - Emilia Kasper and Peter Schwabe, Faster and Timing-Attack Resistant AES-GCM - http://www.iacr.org/archive/ches2009/57470001/57470001.pdf - But using 8 16-bit integers representing a single AES state rather than 8 128-bit - integers representing 8 AES states. - -Files: src/leveldb/README.md -Copyright: __NO_COPYRIGHT__ in: src/leveldb/README.md -License: __UNKNOWN__ - # Features - * Keys and values are arbitrary byte arrays. - * Data is stored sorted by key. - * Callers can provide a custom comparison function to override the sort order. - * The basic operations are `Put(key,value)`, `Get(key)`, `Delete(key)`. - * Multiple changes can be made in one atomic batch. - * Users can create a transient snapshot to get a consistent view of data. - * Forward and backward iteration is supported over the data. - * Data is automatically compressed using the [Snappy compression library](http://google.github.io/snappy/). - * External activity (file system operations etc.) is relayed through a virtual interface so users can customize the operating system interactions. - . - # Documentation - [LevelDB library documentation](https://github.com/google/leveldb/blob/master/doc/index.md) is online and bundled with the source code. - . - # Limitations - * This is not a SQL database. It does not have a relational data model, it does not support SQL queries, and it has no support for indexes. - * Only a single process (possibly multi-threaded) can access a particular database at a time. - * There is no client-server support builtin to the library. An application that needs such support will have to wrap their own server around the library. - . - # Contributing to the leveldb Project - The leveldb project welcomes contributions. leveldb's primary goal is to be - a reliable and fast key/value store. Changes that are in line with the - features/limitations outlined above, and meet the requirements below, - will be considered. - . - Contribution requirements: - -Files: src/compat/assumptions.h -Copyright: 2009-2010 Satoshi Nakamoto - 2009-2019 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Compile-time verification of assumptions we make. - -Files: src/leveldb/db/repair.cc -Copyright: 2011 The LevelDB Authors. -License: __UNKNOWN__ - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. See the AUTHORS file for names of contributors. - . - We recover the contents of the descriptor from the other files we find. - (1) Any log files are first converted to tables - (2) We scan every table to compute - (a) smallest/largest for the table - (b) largest sequence number in the table - (3) We generate descriptor contents: - - log number is set to zero - - next-file-number is set to 1 + largest file number we found - - last-sequence-number is set to largest sequence# found across - all tables (see 2c) - - compaction pointers are cleared - - every table file is added at level 0 - . - Possible optimization 1: - (a) Compute total size and use to pick appropriate max-level M - (b) Sort tables by largest sequence# in the table - (c) For each table: if it overlaps earlier table, place in level-0, - else place in level-M. - Possible optimization 2: - Store per-table metadata (smallest, largest, largest-seq#, ...) - in the table's meta section to speed up ScanTable. - -Files: src/torcontrol.h -Copyright: 2015-2018 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Functionality for communicating with Tor. - -Files: test/lint/lint-python.sh -Copyright: 2017 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Check for specified flake8 warnings in python files. - -Files: test/lint/lint-include-guards.sh -Copyright: 2018 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Check include guards. - -Files: src/leveldb/util/hash.h -Copyright: 2011 The LevelDB Authors. -License: __UNKNOWN__ - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. See the AUTHORS file for names of contributors. - . - Simple hash function used for internal data structures - -Files: src/leveldb/include/leveldb/table_builder.h -Copyright: 2011 The LevelDB Authors. -License: __UNKNOWN__ - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. See the AUTHORS file for names of contributors. - . - TableBuilder provides the interface used to build a Table - (an immutable and sorted map from keys to values). - . - Multiple threads can invoke const methods on a TableBuilder without - external synchronization, but if any of the threads may call a - non-const method, all threads accessing the same TableBuilder must use - external synchronization. - -Files: src/tinyformat.h -Copyright: 2011 Chris Foster [chris42f (at) gmail (d0t) com] -License: __UNKNOWN__ - Boost Software License - Version 1.0 - . - Permission is hereby granted, free of charge, to any person or organization - obtaining a copy of the software and accompanying documentation covered by - this license (the "Software") to use, reproduce, display, distribute, - execute, and transmit the Software, and to prepare derivative works of the - Software, and to permit third-parties to whom the Software is furnished to - do so, all subject to the following: - . - The copyright notices in the Software and this entire statement, including - the above license grant, this restriction and the following disclaimer, - must be included in all copies of the Software, in whole or in part, and - all derivative works of the Software, unless such copies or derivative - works are solely in the form of machine-executable object code generated by - a source language processor. - . - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT - SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE - FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, - ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - -Files: CONTRIBUTING.md -Copyright: __NO_COPYRIGHT__ in: CONTRIBUTING.md -License: __UNKNOWN__ - In general, all pull requests must: - . - - Have a clear use case, fix a demonstrable bug or serve the greater good of - the project (for example refactoring for modularisation); - - Be well peer reviewed; - - Have unit tests and functional tests where appropriate; - - Follow code style guidelines ([C++](doc/developer-notes.md), [functional tests](test/functional/README.md)); - - Not break the existing test suite; - - Where bugs are fixed, where possible, there should be unit tests - demonstrating the bug and also proving the fix. This helps prevent regression. - - Change relevant comments and documentation when behaviour of code changes. - . - Patches that change BGL consensus rules are considerably more involved than - normal because they affect the entire ecosystem and so must be preceded by - extensive mailing list discussions and have a numbered BIP. While each case will - be different, one should be prepared to expend more time and effort than for - other kinds of patches because of increased peer review and consensus building - requirements. - . - ### Peer Review - . - Anyone may participate in peer review which is expressed by comments in the pull - request. Typically reviewers will review the code for obvious errors, as well as - test out the patch set and opine on the technical merits of the patch. Project - maintainers take into account the peer review when determining if there is - consensus to merge a pull request (remember that discussions may have been - spread out over GitHub, mailing list and IRC discussions). - . - #### Conceptual Review - . - A review can be a conceptual review, where the reviewer leaves a comment - * `Concept (N)ACK`, meaning "I do (not) agree in the general goal of this pull - request", - * `Approach (N)ACK`, meaning `Concept ACK`, but "I do (not) agree with the - approach of this change". - . - A `NACK` needs to include a rationale why the change is not worthwhile. - NACKs without accompanying reasoning may be disregarded. - . - #### Code Review - . - After conceptual agreement on the change, code review can be provided. It is - -Files: src/crypto/poly1305.cpp -Copyright: 2019 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Based on the public domain implementation by Andrew Moon - poly1305-donna-unrolled.c from https://github.com/floodyberry/poly1305-donna - -Files: test/config.ini.in -Copyright: 2013-2016 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - These environment variables are set by the build process and read by - -Files: test/lint/lint-all.sh -Copyright: 2017-2019 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - This script runs all contrib/devtools/lint-*.sh files, and fails if any exit - with a non-zero status code. - -Files: src/leveldb/db/log_format.h -Copyright: 2011 The LevelDB Authors. -License: __UNKNOWN__ - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. See the AUTHORS file for names of contributors. - . - Log format information shared by reader and writer. - -Files: src/util/moneystr.h -Copyright: 2009-2010 Satoshi Nakamoto - 2009-2018 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Money parsing/formatting utilities. - -Files: test/lint/lint-python-mutable-default-parameters.sh -Copyright: 2019 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Detect when a mutable list or dict is used as a default parameter value in a Python function. - -Files: src/bech32.h -Copyright: 2017 Pieter Wuille Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Bech32 is a string encoding format used in newer address types. - The output consists of a human-readable part (alphanumeric), a - separator character (1), and a base32 data section, the last - 6 characters of which are a checksum. - . - For more information, see BIP 173. - -Files: src/secp256k1/contrib/lax_der_parsing.h -Copyright: 2015 Pieter Wuille Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Please do not link this file directly. It is not part of the libsecp256k1 - project and does not promise any stability in its API, functionality or - presence. Projects which use this code should instead copy this header - and its accompanying .c file directly into their codebase. - . - This file defines a function that parses DER with various errors and - violations. This is not a part of the library itself, because the allowed - violations are chosen arbitrarily and do not follow or establish any - standard. - . - In many places it matters that different implementations do not only accept - the same set of valid signatures, but also reject the same set of signatures. - The only means to accomplish that is by strictly obeying a standard, and not - accepting anything else. - . - Nonetheless, sometimes there is a need for compatibility with systems that - use signatures which do not strictly obey DER. The snippet below shows how - certain violations are easily supported. You may need to adapt it. - . - Do not use this for new systems. Use well-defined DER or compact signatures - -Files: src/leveldb/util/posix_logger.h -Copyright: 2011 The LevelDB Authors. -License: __UNKNOWN__ - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. See the AUTHORS file for names of contributors. - . - Logger implementation that can be shared by all environments - where enough Posix functionality is available. - -Files: contrib/devtools/test_deterministic_coverage.sh -Copyright: 2019 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Test for deterministic coverage across unit test runs. - -Files: src/crypto/chacha20.cpp -Copyright: 2017 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Based on the public domain implementation 'merged' by D. J. Bernstein - See https://cr.yp.to/chacha.html. - -Files: src/leveldb/util/coding.h -Copyright: 2011 The LevelDB Authors. -License: __UNKNOWN__ - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. See the AUTHORS file for names of contributors. - . - Endian-neutral encoding: - * Fixed-length numbers are encoded with least-significant byte first - * In addition we support variable length "varint" encoding - * Strings are encoded prefixed by their length in varint format - -Files: test/lint/lint-shell-locale.sh -Copyright: 2018 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Make sure all shell scripts: - a.) explicitly opt out of locale dependence using - -Files: src/crypto/sha256_sse4.cpp -Copyright: 2017 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - This is a translation to GCC extended asm syntax from YASM code by Intel - (available at the bottom of this file). - -Files: test/lint/lint-tests.sh -Copyright: 2018 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Check the test suite naming conventions - -Files: src/secp256k1/src/field_5x52_asm_impl.h -Copyright: 2013-2014 Diederik Huys, Pieter Wuille Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Changelog: - - March 2013, Diederik Huys: original version - - November 2014, Pieter Wuille: updated to use Peter Dettman's parallel multiplication algorithm - - December 2014, Pieter Wuille: converted from YASM to GCC inline assembly - -Files: test/lint/lint-rpc-help.sh -Copyright: 2018 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Check that all RPC help texts are generated by RPCHelpMan. - -Files: contrib/debian/copyright -Copyright: : 2009-2019, BGL Core Developers License: Expat Comment: The BGL Core Developers encompasses the current developers listed on BGL.org, as well as the numerous contributors to the project. -License: __UNKNOWN__ - Files: debian/* - Copyright: 2010-2011, Jonas Smedegaard - 2011, Matt Corallo - License: GPL-2+ - -Files: contrib/BGL-cli.bash-completion -Copyright: 2012-2016 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - call $BGL-cli for RPC - -Files: src/leveldb/port/win/stdint.h -Copyright: 2011 The LevelDB Authors. -License: __UNKNOWN__ - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. See the AUTHORS file for names of contributors. - . - MSVC didn't ship with this file until the 2010 version. - -Files: src/util/strencodings.h -Copyright: 2009-2010 Satoshi Nakamoto - 2009-2018 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Utilities for converting data from/to strings. - -Files: src/util/system.h -Copyright: 2009-2010 Satoshi Nakamoto - 2009-2019 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Server/client environment: argument handling, config file parsing, - thread wrappers, startup time - -Files: test/lint/lint-spelling.sh -Copyright: 2018 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Warn in case of spelling errors. - Note: Will exit successfully regardless of spelling errors. - -Files: contrib/seeds/makeseeds.py -Copyright: 2013-2018 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Generate seeds.txt from Pieter's DNS seeder - -Files: test/lint/lint-python-utf8-encoding.sh -Copyright: 2018 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Make sure we explicitly open all text files using UTF-8 (or ASCII) encoding to - avoid potential issues on the BSDs where the locale is not always set. - -Files: src/leveldb/db/version_set.h -Copyright: 2011 The LevelDB Authors. -License: __UNKNOWN__ - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. See the AUTHORS file for names of contributors. - . - The representation of a DBImpl consists of a set of Versions. The - newest version is called "current". Older versions may be kept - around to provide a consistent view to live iterators. - . - Each Version keeps track of a set of Table files per level. The - entire set of versions is maintained in a VersionSet. - . - Version,VersionSet are thread-compatible, but require external - synchronization on all accesses. - -Files: test/lint/lint-circular-dependencies.sh -Copyright: 2018 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Check for circular dependencies - -Files: test/functional/rpc_getblockstats.py -Copyright: 2017-2019 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Test getblockstats rpc call - -Files: src/leveldb/table/filter_block.h -Copyright: 2012 The LevelDB Authors. -License: __UNKNOWN__ - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. See the AUTHORS file for names of contributors. - . - A filter block is stored near the end of a Table file. It contains - filters (e.g., bloom filters) for all data blocks in the table combined - into a single filter block. - -Files: src/leveldb/port/port_posix_sse.cc -Copyright: 2016 The LevelDB Authors. -License: __UNKNOWN__ - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. See the AUTHORS file for names of contributors. - . - A portable implementation of crc32c, optimized to handle - four bytes at a time. - . - In a separate source file to allow this accelerated CRC32C function to be - compiled with the appropriate compiler flags to enable x86 SSE 4.2 - instructions. - -Files: .travis.yml -Copyright: __NO_COPYRIGHT__ in: .travis.yml -License: __UNKNOWN__ - Some builders use the dependency-generator in `./depends`, rather than using - apt-get to install build dependencies. This guarantees that the tester is - using the same versions as Gitian, so the build results are nearly identical - to what would be found in a final release. - . - In order to avoid rebuilding all dependencies for each build, the binaries - are cached and re-used when possible. Changes in the dependency-generator - will trigger cache-invalidation and rebuilds as necessary. - . - These caches can be manually removed if necessary. This is one of the very - few manual operations that is possible with Travis, and it can be done by a - BGL Core GitHub member via the Travis web interface [0]. - . - Travis CI uploads the cache after the script phase of the build [1]. - However, the build is terminated without saving the cache if it takes over - 50 minutes [2]. Thus, if we spent too much time in early build stages, fail - with an error and save the cache. - . - [0] https://travis-ci.org/BGL/BGL/caches - [1] https://docs.travis-ci.com/user/caching/#build-phases - [2] https://docs.travis-ci.com/user/customizing-the-build#build-timeouts - -Files: src/policy/policy.cpp -Copyright: 2009-2010 Satoshi Nakamoto - 2009-2018 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - NOTE: This file is intended to be customised by the end user, and includes only local node policy logic - -Files: contrib/verifybinaries/verify.sh -Copyright: 2016 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - This script attempts to download the signature file SHA256SUMS.asc from - BGLcore.org and BGL.org and compares them. - It first checks if the signature passes, and then downloads the files specified in - the file, and checks if the hashes of these files match those that are specified - in the signature file. - The script returns 0 if everything passes the checks. It returns 1 if either the - signature check or the hash check doesn't pass. If an error occurs the return value is 2 - -Files: src/secp256k1/contrib/lax_der_privatekey_parsing.h -Copyright: 2014-2015 Pieter Wuille Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Please do not link this file directly. It is not part of the libsecp256k1 - project and does not promise any stability in its API, functionality or - presence. Projects which use this code should instead copy this header - and its accompanying .c file directly into their codebase. - . - This file contains code snippets that parse DER private keys with - various errors and violations. This is not a part of the library - itself, because the allowed violations are chosen arbitrarily and - do not follow or establish any standard. - . - It also contains code to serialize private keys in a compatible - manner. - . - These functions are meant for compatibility with applications - that require BER encoded keys. When working with secp256k1-specific - code, the simple 32-byte private keys normally used by the - library are sufficient. - -Files: src/leveldb/include/leveldb/iterator.h -Copyright: 2011 The LevelDB Authors. -License: __UNKNOWN__ - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. See the AUTHORS file for names of contributors. - . - An iterator yields a sequence of key/value pairs from a source. - The following class defines the interface. Multiple implementations - are provided by this library. In particular, iterators are provided - to access the contents of a Table or a DB. - . - Multiple threads can invoke const methods on an Iterator without - external synchronization, but if any of the threads may call a - non-const method, all threads accessing the same Iterator must use - external synchronization. - -Files: src/leveldb/include/leveldb/write_batch.h -Copyright: 2011 The LevelDB Authors. -License: __UNKNOWN__ - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. See the AUTHORS file for names of contributors. - . - WriteBatch holds a collection of updates to apply atomically to a DB. - . - The updates are applied in the order in which they are added - to the WriteBatch. For example, the value of "key" will be "v3" - after the following batch is written: - . - batch.Put("key", "v1"); - batch.Delete("key"); - batch.Put("key", "v2"); - batch.Put("key", "v3"); - . - Multiple threads can invoke const methods on a WriteBatch without - external synchronization, but if any of the threads may call a - non-const method, all threads accessing the same WriteBatch must use - external synchronization. - -Files: src/leveldb/include/leveldb/cache.h -Copyright: 2011 The LevelDB Authors. -License: __UNKNOWN__ - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. See the AUTHORS file for names of contributors. - . - A Cache is an interface that maps keys to values. It has internal - synchronization and may be safely accessed concurrently from - multiple threads. It may automatically evict entries to make room - for new entries. Values have a specified charge against the cache - capacity. For example, a cache where the values are variable - length strings, may use the length of the string as the charge for - the string. - . - A builtin cache implementation with a least-recently-used eviction - policy is provided. Clients may use their own implementations if - they want something more sophisticated (like scan-resistance, a - custom eviction policy, variable cache sizing, etc.) - -Files: test/lint/lint-includes.sh -Copyright: 2018 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Check for duplicate includes. - Guard against accidental introduction of new Boost dependencies. - Check includes: Check for duplicate includes. Enforce bracket syntax includes. - -Files: test/lint/lint-logs.sh -Copyright: 2018 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Check that all logs are terminated with '\n' - . - Some logs are continued over multiple lines. They should be explicitly - commented with \* Continued *\ - . - There are some instances of LogPrintf() in comments. Those can be - ignored - -Files: src/leveldb/include/leveldb/slice.h -Copyright: 2011 The LevelDB Authors. -License: __UNKNOWN__ - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. See the AUTHORS file for names of contributors. - . - Slice is a simple structure containing a pointer into some external - storage and a size. The user of a Slice must ensure that the slice - is not used after the corresponding external storage has been - deallocated. - . - Multiple threads can invoke const methods on a Slice without - external synchronization, but if any of the threads may call a - non-const method, all threads accessing the same Slice must use - external synchronization. - -Files: src/leveldb/db/table_cache.h -Copyright: 2011 The LevelDB Authors. -License: __UNKNOWN__ - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. See the AUTHORS file for names of contributors. - . - Thread-safe (provides internal synchronization) - -Files: src/leveldb/port/port_example.h -Copyright: 2011 The LevelDB Authors. -License: __UNKNOWN__ - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. See the AUTHORS file for names of contributors. - . - This file contains the specification, but not the implementations, - of the types/operations/etc. that should be defined by a platform - -Files: contrib/devtools/clang-format-diff.py -Copyright: 2007-2015 University of Illinois at Urbana-Champaign. -License: __UNKNOWN__ - Developed by: - . - LLVM Team - . - University of Illinois at Urbana-Champaign - . - http://llvm.org - . - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal with - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - . - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimers. - . - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimers in the - documentation and/or other materials provided with the distribution. - . - * Neither the names of the LLVM Team, University of Illinois at - Urbana-Champaign, nor the names of its contributors may be used to - endorse or promote products derived from this Software without specific - prior written permission. - . - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE - SOFTWARE. - -Files: test/lint/extended-lint-all.sh -Copyright: 2019 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - This script runs all contrib/devtools/extended-lint-*.sh files, and fails if - any exit with a non-zero status code. - -Files: src/crypto/aes.h -Copyright: 2015-2018 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - C++ wrapper around ctaes, a constant-time AES implementation - -Files: src/crypto/sha256_shani.cpp -Copyright: 2018 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Based on https://github.com/noloader/SHA-Intrinsics/blob/master/sha256-x86.c, - Written and placed in public domain by Jeffrey Walton. - Based on code from Intel, and by Sean Gulley for the miTLS project. - -Files: test/lint/lint-shell.sh -Copyright: 2018-2019 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Check for shellcheck warnings in shell scripts. - -Files: src/leveldb/include/leveldb/status.h -Copyright: 2011 The LevelDB Authors. -License: __UNKNOWN__ - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. See the AUTHORS file for names of contributors. - . - A Status encapsulates the result of an operation. It may indicate success, - or it may indicate an error with an associated error message. - . - Multiple threads can invoke const methods on a Status without - external synchronization, but if any of the threads may call a - non-const method, all threads accessing the same Status must use - external synchronization. - -Files: src/leveldb/db/fault_injection_test.cc -Copyright: 2014 The LevelDB Authors. -License: __UNKNOWN__ - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. See the AUTHORS file for names of contributors. - . - This test uses a custom Env to keep track of the state of a filesystem as of - the last "sync". It then checks for data loss errors by purposely dropping - file data (or entire files) not protected by a "sync". - -Files: src/leveldb/issues/issue200_test.cc -Copyright: 2013 The LevelDB Authors. -License: __UNKNOWN__ - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. See the AUTHORS file for names of contributors. - . - Test for issue 200: when iterator switches direction from backward - to forward, the current key can be yielded unexpectedly if a new - mutation has been added just before the current key. - -Files: src/leveldb/include/leveldb/c.h -Copyright: 2011 The LevelDB Authors. -License: __UNKNOWN__ - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. See the AUTHORS file for names of contributors. - . - C bindings for leveldb. May be useful as a stable ABI that can be - used by programs that keep leveldb in a shared library, or for - a JNI api. - . - Does not support: - . getters for the option types - . custom comparators that implement key shortening - . custom iter, db, env, cache implementations using just the C bindings - . - Some conventions: - . - (1) We expose just opaque struct pointers and functions to clients. - This allows us to change internal representations without having to - recompile clients. - . - (2) For simplicity, there is no equivalent to the Slice type. Instead, - the caller has to pass the pointer and length as separate - arguments. - . - (3) Errors are represented by a null-terminated c string. NULL - means no error. All operations that can raise an error are passed - a "char** errptr" as the last argument. One of the following must - be true on entry: - -Files: test/lint/commit-script-check.sh -Copyright: 2017 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - This simple script checks for commits beginning with: scripted-diff: - If found, looks for a script between the lines -BEGIN VERIFY SCRIPT- and - -END VERIFY SCRIPT-. If no ending is found, it reads until the end of the - commit message. - . - The resulting script should exactly transform the previous commit into the current - one. Any remaining diff signals an error. - -Files: src/test/denialofservice_tests.cpp -Copyright: 2011-2019 The Bitcoin Core developers Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. -License: __UNKNOWN__ - Unit tests for denial-of-service detection/prevention code - -Files: src/leveldb/db/filename.h -Copyright: 2011 The LevelDB Authors. -License: __UNKNOWN__ - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. See the AUTHORS file for names of contributors. - . - File names used by DB code - -#---------------------------------------------------------------------------- -# xml and html files (skipped): -# share/qt/Info.plist.in -# src/qt/BGL_locale.qrc -# src/qt/BGL.qrc -# src/qt/res/src/clock_3.svg -# src/qt/res/src/connect-3.svg -# src/qt/res/src/hd_enabled.svg -# src/qt/res/src/clock_0.svg -# src/qt/res/src/connect-4.svg -# src/qt/res/src/transaction0.svg -# src/qt/res/src/clock_4.svg -# src/qt/res/src/connect-2.svg -# src/qt/res/src/proxy.svg -# src/qt/res/src/clock_1.svg -# src/qt/res/src/clock_2.svg -# src/qt/res/src/BGL.svg -# src/qt/res/src/connect-1.svg -# src/qt/res/src/connect-0.svg -# src/qt/res/src/qt.svg -# src/qt/res/src/tx_inout.svg -# src/qt/res/src/tx_in.svg -# src/qt/res/src/hd_disabled.svg -# src/qt/res/src/mine.svg -# src/qt/res/src/network_disabled.svg -# src/qt/locale/BGL_cs.ts -# src/qt/locale/BGL_en_GB.ts -# src/qt/locale/BGL_ca.ts -# src/qt/locale/BGL_cy.ts -# src/qt/locale/BGL_pt_BR.ts -# src/qt/locale/BGL_fil.ts -# src/qt/locale/BGL_sr@latin.ts -# src/qt/locale/BGL_ru.ts -# src/qt/locale/BGL_id_ID.ts -# src/qt/locale/BGL_ro_RO.ts -# src/qt/locale/BGL_th.ts -# src/qt/locale/BGL_hu_HU.ts -# src/qt/locale/BGL_es_CL.ts -# src/qt/locale/BGL_szl.ts -# src/qt/locale/BGL_et_EE.ts -# src/qt/locale/BGL_vi.ts -# src/qt/locale/BGL_lv_LV.ts -# src/qt/locale/BGL_nl_NL.ts -# src/qt/locale/BGL_fr_FR.ts -# src/qt/locale/BGL_fi.ts -# src/qt/locale/BGL_hu.ts -# src/qt/locale/BGL_pt.ts -# src/qt/locale/BGL_es_CO.ts -# src/qt/locale/BGL_uz@Cyrl.ts -# src/qt/locale/BGL_is.ts -# src/qt/locale/BGL_eo.ts -# src/qt/locale/BGL_zh_CN.ts -# src/qt/locale/BGL_ml.ts -# src/qt/locale/BGL_es_DO.ts -# src/qt/locale/BGL_da.ts -# src/qt/locale/BGL_sl_SI.ts -# src/qt/locale/BGL_lt.ts -# src/qt/locale/BGL_km.ts -# src/qt/locale/BGL_zh-Hans.ts -# src/qt/locale/BGL_sv.ts -# src/qt/locale/BGL_de.ts -# src/qt/locale/BGL_pl.ts -# src/qt/locale/BGL_ne.ts -# src/qt/locale/BGL_it_IT.ts -# src/qt/locale/BGL_id.ts -# src/qt/locale/BGL_si.ts -# src/qt/locale/BGL_he.ts -# src/qt/locale/BGL_fr.ts -# src/qt/locale/BGL_nl.ts -# src/qt/locale/BGL_vi_VN.ts -# src/qt/locale/BGL_ky.ts -# src/qt/locale/BGL_es.ts -# src/qt/locale/BGL_tr_TR.ts -# src/qt/locale/BGL_be_BY.ts -# src/qt/locale/BGL_el.ts -# src/qt/locale/BGL_zh_HK.ts -# src/qt/locale/BGL_lv.ts -# src/qt/locale/BGL_ka.ts -# src/qt/locale/BGL_ta.ts -# src/qt/locale/BGL_et.ts -# src/qt/locale/BGL_en_AU.ts -# src/qt/locale/BGL_hr.ts -# src/qt/locale/BGL_fr_CA.ts -# src/qt/locale/BGL_ku_IQ.ts -# src/qt/locale/BGL_it.ts -# src/qt/locale/BGL_sk.ts -# src/qt/locale/BGL_sn.ts -# src/qt/locale/BGL_en.ts -# src/qt/locale/BGL_ru_RU.ts -# src/qt/locale/BGL_ms_MY.ts -# src/qt/locale/BGL_ro.ts -# src/qt/locale/BGL_uk_UA.ts -# src/qt/locale/BGL_yo.ts -# src/qt/locale/BGL_ja.ts -# src/qt/locale/BGL_kk.ts -# src/qt/locale/BGL_mk.ts -# src/qt/locale/BGL_te.ts -# src/qt/locale/BGL_es_ES.ts -# src/qt/locale/BGL_ms.ts -# src/qt/locale/BGL_sl.ts -# src/qt/locale/BGL_mr_IN.ts -# src/qt/locale/BGL_ar.ts -# src/qt/locale/BGL_la.ts -# src/qt/locale/BGL_tr.ts -# src/qt/locale/BGL_zh_TW.ts -# src/qt/locale/BGL_ko.ts -# src/qt/locale/BGL_uk.ts -# src/qt/locale/BGL_sk_SK.ts -# src/qt/locale/BGL_el_GR.ts -# src/qt/locale/BGL_mn.ts -# src/qt/locale/BGL_nb.ts -# src/qt/locale/BGL_pam.ts -# src/qt/locale/BGL_cs_CZ.ts -# src/qt/locale/BGL_es_MX.ts -# src/qt/locale/BGL_sr.ts -# src/qt/locale/BGL_fa.ts -# src/qt/locale/BGL_ur.ts -# src/qt/locale/BGL_gl.ts -# src/qt/locale/BGL_es_VE.ts -# src/qt/locale/BGL_he_IL.ts -# src/qt/locale/BGL_pt_PT.ts -# src/qt/locale/BGL_hi.ts -# src/qt/locale/BGL_de_DE.ts -# src/qt/locale/BGL_eu.ts -# src/qt/forms/helpmessagedialog.ui -# src/qt/forms/receivecoinsdialog.ui -# src/qt/forms/askpassphrasedialog.ui -# src/qt/forms/openuridialog.ui -# src/qt/forms/receiverequestdialog.ui -# src/qt/forms/addressbookpage.ui -# src/qt/forms/optionsdialog.ui -# src/qt/forms/modaloverlay.ui -# src/qt/forms/createwalletdialog.ui -# src/qt/forms/sendcoinsdialog.ui -# src/qt/forms/signverifymessagedialog.ui -# src/qt/forms/overviewpage.ui -# src/qt/forms/debugwindow.ui -# src/qt/forms/transactiondescdialog.ui -# src/qt/forms/sendcoinsentry.ui -# src/qt/forms/intro.ui -# src/qt/forms/editaddressdialog.ui -# src/qt/forms/coincontroldialog.ui -# src/leveldb/doc/benchmark.html -# test/functional/combined_log_template.html -# contrib/macdeploy/background.svg -# build_msvc/libBGL_cli/libBGL_cli.vcxproj.in -# build_msvc/libBGL_crypto/libBGL_crypto.vcxproj.in -# build_msvc/libBGL_common/libBGL_common.vcxproj.in -# build_msvc/libBGL_util/libBGL_util.vcxproj.in -# build_msvc/bench_BGL/bench_BGL.vcxproj.in -# build_msvc/libBGL_wallet/libBGL_wallet.vcxproj.in -# build_msvc/libBGL_zmq/libBGL_zmq.vcxproj.in -# build_msvc/libBGL_wallet_tool/libBGL_wallet_tool.vcxproj.in -# build_msvc/msbuild/tasks/replaceinfile.targets -# build_msvc/msbuild/tasks/hexdump.targets -# build_msvc/libBGL_server/libBGL_server.vcxproj.in -# build_msvc/libtest_util/libtest_util.vcxproj.in - -#---------------------------------------------------------------------------- -# huge files (skipped): -# configure -# src/Makefile.in -# autom4te.cache/output.2 -# autom4te.cache/output.0 -# autom4te.cache/output.1 - -#---------------------------------------------------------------------------- -# Files marked as NO_LICENSE_TEXT_FOUND may be covered by the following -# license/copyright files. - -#---------------------------------------------------------------------------- -# License file: COPYING - The MIT License (MIT) - . - Copyright (c) 2009-2019 The Bitcoin Core developers - Copyright (c) 2009-2019 BGL Developers - . - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - . - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - . - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. diff --git a/debian.minimal/files b/debian.minimal/files deleted file mode 100644 index c57176ff0e..0000000000 --- a/debian.minimal/files +++ /dev/null @@ -1 +0,0 @@ -bitgesell_0.1.11_source.buildinfo misc optional diff --git a/debian.minimal/rules b/debian.minimal/rules deleted file mode 100755 index 2616d5b3f8..0000000000 --- a/debian.minimal/rules +++ /dev/null @@ -1,95 +0,0 @@ -#!/usr/bin/make -f - -builddir = $(shell pwd) -destdir = $(builddir)/debian/bitgesell - -CC = gcc-9 -CXX = g++-9 - -.PHONY: distrib download-distrib unpack-distrib berkeleydb libevent miniupnpc - -%: - dh $@ --with autoreconf - -build: distrib - -distrib: unpack-distrib boost berkeleydb libevent miniupnpc - -download-distrib: distrib/boost_1_74_0.tar.gz distrib/db-4.8.30.tar.gz distrib/libevent-2.1.12-stable.tar.gz distrib/miniupnpc-2.1.orig.tar.gz - -unpack-distrib: download-distrib - cd distrib/ && for i in *.tar.gz; do tar -xzf $$i && rm "$$i"; done - -distrib/boost_1_74_0.tar.gz: - mkdir -p distrib/ - wget -O$@ https://boostorg.jfrog.io/artifactory/main/release/1.74.0/source/boost_1_74_0.tar.gz - -distrib/db-4.8.30.tar.gz: - mkdir -p distrib/ - wget -O$@ http://ftp.linuxfoundation.org/pub/lsb/app-battery/packages/db-4.8.30.tar.gz - -distrib/libevent-2.1.12-stable.tar.gz: - mkdir -p distrib/ - wget -O$@ https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz - -distrib/miniupnpc-2.1.orig.tar.gz: - mkdir -p distrib/ - wget -O$@ https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/miniupnpc/2.1-1/miniupnpc_2.1.orig.tar.gz - -boost: - cd distrib/boost_1_74_0 && \ - ./bootstrap.sh CC=$(CC) CXX=$(CXX) --prefix=$(builddir)/distrib/tmp/libboost && \ - ./b2 install - -# --disable-atomicsupport slows things down, but that's necessary to compile (at least on on Ubuntu 20.04.1) -# TODO: Modify libdb to make it faster. -berkeleydb: - cd distrib/db-4.8.30/build_unix && \ - ../dist/configure CC=$(CC) CXX=$(CXX) --disable-static --with-pic --with-gnu-ld --enable-cxx --disable-atomicsupport \ - --prefix=$(builddir)/distrib/tmp/libdb --includedir=$(builddir)/distrib/tmp/libdb/include/db && \ - make clean && \ - make && \ - make install - -libevent: - cd distrib/libevent-2.1.12-stable && \ - ./configure CC=$(CC) CXX=$(CXX) --disable-debug-mode --disable-samples --with-gnu-ld --disable-static \ - --prefix=$(builddir)/distrib/tmp/libevent && \ - make clean && \ - make && \ - make install - -miniupnpc: - cd distrib/miniupnpc-2.1 && \ - make && \ - make DESTDIR=$(builddir)/distrib/tmp/miniupnpc install - -override_dh_autoreconf: - dh_autoreconf -- ./autogen.sh - -# Flags in CXX is an Ubuntu 18.04 hack. # TODO: Can the below be more "ordered"? -# TODO: Manual providing of -I and -L/-l should not be necessary, but it does not work without this -# (at least on Ubuntu 18.04). -override_dh_auto_configure: - dh_auto_configure -- \ - CC=$(CC) CXX="$(CXX) -I$(builddir)/distrib/tmp/libboost/include -I$(builddir)/distrib/tmp/libdb/include -DHAVE_CXX_STDHEADERS -DBOOST_ERROR_CODE_HEADER_ONLY -L$(builddir)/distrib/tmp/libdb/lib -L$(builddir)/distrib/tmp/libboost/lib -L$(builddir)/distrib/tmp/libevent/lib -levent -levent_pthreads -L$(builddir)/distrib/tmp/miniupnpc/usr/lib -lminiupnpc -ldb -ldb_cxx" \ - PKG_CONFIG_PATH="$(builddir)/distrib/tmp/libevent/lib/pkgconfig:$(builddir)/distrib/tmp/miniupnpc/usr/lib/pkgconfig" \ - LDFLAGS="-Wl,-rpath=/usr/lib/bitgesell" \ - BOOST_LDFLAGS="-L$(builddir)/distrib/tmp/libboost/lib" \ - --disable-tests --disable-bench --disable-debug --disable-fuzz-binary --with-gnu-ld \ - --with-gui=no \ - --with-boost="$(builddir)/distrib/tmp/libboost" - -override_dh_auto_test: - DEB_BUILD_OPTIONS=nocheck dh_auto_test - -override_dh_install: - dh_install - mkdir -p $(destdir)/usr/lib/bitgesell - cp -a distrib/tmp/libboost/lib/* $(destdir)/usr/lib/bitgesell/ - cp -a distrib/tmp/libdb/lib/* $(destdir)/usr/lib/bitgesell/ - cp -a distrib/tmp/libevent/lib/* $(destdir)/usr/lib/bitgesell/ - cp -a distrib/tmp/miniupnpc/usr/lib/* $(destdir)/usr/lib/bitgesell/ - -override_dh_shlibdeps: - dh_shlibdeps -l/usr/lib/bitgesell diff --git a/debian.minimal/source/format b/debian.minimal/source/format deleted file mode 100644 index 89ae9db8f8..0000000000 --- a/debian.minimal/source/format +++ /dev/null @@ -1 +0,0 @@ -3.0 (native) diff --git a/debian.minimal/source/local-options b/debian.minimal/source/local-options deleted file mode 100644 index 00131ee8c4..0000000000 --- a/debian.minimal/source/local-options +++ /dev/null @@ -1,2 +0,0 @@ -#abort-on-upstream-changes -#unapply-patches diff --git a/debian.minimal/test.sh b/debian.minimal/test.sh deleted file mode 100755 index 24f5f59697..0000000000 --- a/debian.minimal/test.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -#finish() { -# docker stop $container >/dev/null -# docker container rm $container >/dev/null -#} - -docker pull ubuntu:20.04 -container=`docker run -dit -e TZ='Etc/UTC' -e DEBIAN_FRONTEND='noninteractive' ubuntu:20.04` -#trap finish EXIT - -docker exec $container apt-get -y update -docker exec $container apt-get -y install apt-utils #dpkg-dev -docker exec $container mkdir /root/repo -docker cp ./bitgesell_0.1.11_amd64.deb $container:/root/repo -# docker exec -w /root/repo $container sh -c "dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz" -docker exec -w /root/repo $container sh -c "apt-ftparchive packages . > Packages" -docker exec $container sh -c "echo deb [trusted=yes] file:/root/repo ./ >> /etc/apt/sources.list" -# docker exec $container rm -rf /var/lib/apt/lists/ # Why is this needed? -# docker exec $container apt-get -y clean -docker exec $container apt-get -y -o APT::Sandbox::User=root update -docker exec $container apt-get -y install bitgesell -docker exec $container sh -c \ - "if { BGL-cli --help && BGLd --help && BGL-tx --help; } > /dev/null; then \ - echo 'Test passed.'; \ - else - echo 'Test failed.'; \ - fi" diff --git a/debian.minimal/watch b/debian.minimal/watch deleted file mode 100644 index 76575dc53b..0000000000 --- a/debian.minimal/watch +++ /dev/null @@ -1,2 +0,0 @@ -# You must remove unused comment lines for the released package. -version=3 diff --git a/debian.qt/README.Debian b/debian.qt/README.Debian deleted file mode 100644 index f3f72bf584..0000000000 --- a/debian.qt/README.Debian +++ /dev/null @@ -1,12 +0,0 @@ -To create the Debian package installable on multiple systems including -Ubuntu 20.04 (with Qt wallet), run: - -./debian/build-in-docker.sh - -Maintainers can run ./debian/test.sh to test if the generated Debian -package is correct. - -TODO: ./debian/build-in-docker.sh and ./debian/test.sh should not need to -be updated when the version of the package changes. - - -- Victor Porton Sat, 03 Oct 2020 06:04:48 +0300 diff --git a/debian.qt/build-in-docker.sh b/debian.qt/build-in-docker.sh deleted file mode 100755 index a9a1a381b5..0000000000 --- a/debian.qt/build-in-docker.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash - -set -e - -debuild -S - -finish() { - docker stop $container >/dev/null - docker container rm $container >/dev/null -} - -docker pull ubuntu:20.04 -container=`docker run -dit -e TZ='Etc/UTC' -e DEBIAN_FRONTEND='noninteractive' ubuntu:20.04 ` -trap finish EXIT - -#docker cp ./debian/updateunattended.sh $container:/root/ -#docker exec $container /root/updateunattended.sh -docker exec $container apt-get update -docker exec $container apt-get -y install apt-utils devscripts sudo #dpkg-dev -docker exec $container apt-get -y install libqrencode-dev qttools5-dev qttools5-dev-tools -docker exec $container mkdir -p /root/repo -docker exec $container useradd user -docker exec $container mkdir /home/user -docker exec $container chown user.user /home/user -docker exec $container sudo -u user mkdir /home/user/build -docker cp ../bitgesell-qt_0.1.11.dsc $container:/root/repo/ -docker cp ../bitgesell-qt_0.1.11.tar.xz $container:/root/repo/ -# docker exec -w /root/repo $container sh -c "dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz" - -docker exec -w /root/repo $container sh -c "apt-ftparchive sources . > Sources" -docker exec $container sh -c "echo deb-src [trusted=yes] file:/root/repo ./ >> /etc/apt/sources.list" -docker exec $container apt-get -y -o APT::Sandbox::User=root update -docker exec $container apt-get -y build-dep bitgesell-qt -docker exec $container chmod a+rX /root -docker exec $container chmod -R a+rX /root/repo -docker exec -w /home/user/build $container sudo -u user apt-get -y source bitgesell-qt -docker exec -w /home/user/build/bitgesell-qt-0.1.11 $container sudo -u user debuild -b -docker cp $container:/home/user/build/bitgesell-qt_0.1.11_amd64.deb bitgesell-qt_0.1.11_amd64.deb -docker cp $container:/home/user/build/bitgesell-qt-dbg_0.1.11_amd64.deb bitgesell-qt-dbg_0.1.11_amd64.deb diff --git a/debian.qt/changelog b/debian.qt/changelog deleted file mode 100644 index 75016b1b88..0000000000 --- a/debian.qt/changelog +++ /dev/null @@ -1,50 +0,0 @@ -bitgesell-qt (0.1.11) UNRELEASED; urgency=low - - * Bitcoin code synced - - -- Mathias van Orton Tue, 6 Feb 2024 15:35:00 +0000 - -bitgesell-qt (0.1.10) UNRELEASED; urgency=low - - * Bitcoin code synced - - -- Mathias van Orton Tue, 18 Apr 2023 10:30:15 +0000 - -bitgesell-qt (0.1.9) UNRELEASED; urgency=low - - * Bitcoin code synced - - -- Mathias van Orton Tue, 8 Nov 2022 10:00:00 +0000 - -bitgesell-qt (0.1.8) UNRELEASED; urgency=low - - * Bitcoin code synced - - -- Mathias van Orton Wed, 20 Apr 2022 10:20:00 +0000 - -bitgesell-qt (0.1.7) UNRELEASED; urgency=low - - * Taproot activation rescheduled with relaxed conditions - - -- Mathias van Orton Sun, 4 Jul 2021 14:40:01 +0000 - - -bitgesell-qt (0.1.6) UNRELEASED; urgency=low - - * Code synced with BTC up to April 2021, Taproot activation scheduled - - -- Mathias van Orton Mon, 24 May 2021 11:24:11 +0000 - - -bitgesell-qt (0.1.3) UNRELEASED; urgency=low - - * Updated all builds before testing BTC synced code. - - -- Mathias van Orton Thu, 26 Nov 2020 11:02:18 +0000 - - -bitgesell-qt (0.1.2) UNRELEASED; urgency=low - - * Initial release. - - -- Victor Porton Sat, 03 Oct 2020 06:04:48 +0300 diff --git a/debian.qt/compat b/debian.qt/compat deleted file mode 100644 index b4de394767..0000000000 --- a/debian.qt/compat +++ /dev/null @@ -1 +0,0 @@ -11 diff --git a/debian.qt/control b/debian.qt/control deleted file mode 100644 index 0e2ef4c3ee..0000000000 --- a/debian.qt/control +++ /dev/null @@ -1,29 +0,0 @@ -Source: bitgesell-qt -Section: misc -Priority: optional -Maintainer: Mathias van Orton -Build-Depends: debhelper (>=11~), g++-9, pkg-config, dh-autoreconf, libevent-dev, libssl-dev, fakeroot, wget -Standards-Version: 4.1.4 -Homepage: https://github.com/wu-emma/bitgesell - -Package: bitgesell-qt -Architecture: any -Depends: libc6 (>= 2.27), libstdc++6 (>= 8.4.0), libbz2-1.0 (>= 1.0.6), liblzma5 (>= 5.2.2), zlib1g (>= 1:1.1.4), - libqt5core5a (>= 5.9.5), libqt5dbus5 (>= 5.9.5), libqt5network5 (>= 5.9.5), libqt5gui5 (>= 5.9.5), libqrencode-dev, - openssl, perl-modules-5.26 | perl-modules-5.28 | perl-modules-5.30, ${misc:Depends} -Description: BGL is an experimental digital currency that enables instant payments to anyone, anywhere in the world - BGL is an experimental digital currency that enables instant payments to anyone, - anywhere in the world. BGL uses peer-to-peer technology to operate with no central authority: - managing transactions and issuing money are carried out collectively by the network. - BGL Core is the name of open source software which enables the use of this currency. - -Package: bitgesell-qt-dbg -Architecture: any -Depends: libc6 (>= 2.27), libstdc++6 (>= 8.4.0), libbz2-1.0 (>= 1.0.6), liblzma5 (>= 5.2.2), zlib1g (>= 1:1.1.4), - libqt5core5a (>= 5.9.5), libqt5dbus5 (>= 5.9.5), libqt5network5 (>= 5.9.5), libqt5gui5 (>= 5.9.5), libqrencode-dev, - openssl, ${misc:Depends} -Description: BGL is an experimental digital currency that enables instant payments to anyone, anywhere in the world - BGL is an experimental digital currency that enables instant payments to anyone, - anywhere in the world. BGL uses peer-to-peer technology to operate with no central authority: - managing transactions and issuing money are carried out collectively by the network. - BGL Core is the name of open source software which enables the use of this currency. diff --git a/debian.qt/files b/debian.qt/files deleted file mode 100644 index 7a52fffa9b..0000000000 --- a/debian.qt/files +++ /dev/null @@ -1 +0,0 @@ -bitgesell-qt_0.1.11_source.buildinfo misc optional diff --git a/debian.qt/rules b/debian.qt/rules deleted file mode 100755 index 785c4b2993..0000000000 --- a/debian.qt/rules +++ /dev/null @@ -1,103 +0,0 @@ -#!/usr/bin/make -f - -builddir = $(shell pwd) -destdir = $(builddir)/debian/bitgesell-qt - -CC = gcc-9 -CXX = g++-9 - -.PHONY: distrib download-distrib unpack-distrib berkeleydb libevent miniupnpc - -%: - dh $@ --with autoreconf - -build: distrib - -distrib: unpack-distrib boost berkeleydb libevent miniupnpc - -download-distrib: distrib/boost_1_74_0.tar.gz distrib/db-4.8.30.tar.gz distrib/libevent-2.1.11-stable.tar.gz distrib/miniupnpc-2.1.orig.tar.gz - -unpack-distrib: download-distrib - cd distrib/ && for i in *.tar.gz; do tar -xzf $$i && rm "$$i"; done - -distrib/boost_1_74_0.tar.gz: - mkdir -p distrib/ - wget -O$@ https://boostorg.jfrog.io/artifactory/main/release/1.74.0/source/boost_1_74_0.tar.gz - -distrib/db-4.8.30.tar.gz: - mkdir -p distrib/ - wget -O$@ http://ftp.linuxfoundation.org/pub/lsb/app-battery/packages/db-4.8.30.tar.gz - -distrib/libevent-2.1.11-stable.tar.gz: - mkdir -p distrib/ - wget -O$@ https://github.com/libevent/libevent/releases/download/release-2.1.11-stable/libevent-2.1.11-stable.tar.gz - -distrib/miniupnpc-2.1.orig.tar.gz: - mkdir -p distrib/ - wget -O$@ https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/miniupnpc/2.1-1/miniupnpc_2.1.orig.tar.gz - -boost: - cd distrib/boost_1_74_0 && \ - ./bootstrap.sh CC=$(CC) CXX=$(CXX) --prefix=$(builddir)/distrib/tmp/libboost && \ - ./b2 install - -# --disable-atomicsupport slows things down, but that's necessary to compile (at least on on Ubuntu 20.04.1) -# TODO: Modify libdb to make it faster. -berkeleydb: - cd distrib/db-4.8.30/build_unix && \ - ../dist/configure CC=$(CC) CXX=$(CXX) --disable-static --with-pic --with-gnu-ld --enable-cxx --disable-atomicsupport \ - --prefix=$(builddir)/distrib/tmp/libdb --includedir=$(builddir)/distrib/tmp/libdb/include/db && \ - make clean && \ - make && \ - make install - -libevent: - cd distrib/libevent-2.1.11-stable && \ - ./configure CC=$(CC) CXX=$(CXX) --disable-debug-mode --disable-samples --with-gnu-ld --disable-static \ - --prefix=$(builddir)/distrib/tmp/libevent && \ - make clean && \ - make && \ - make install - -miniupnpc: - cd distrib/miniupnpc-2.1 && \ - make && \ - make DESTDIR=$(builddir)/distrib/tmp/miniupnpc install - -override_dh_autoreconf: - dh_autoreconf -- ./autogen.sh - -# Flags in CXX is an Ubuntu 18.04 hack. # TODO: Can the below be more "ordered"? -# TODO: Manual providing of -I and -L/-l should not be necessary, but it does not work without this -# (at least on Ubuntu 18.04). -override_dh_auto_configure: - dh_auto_configure -- \ - CC=$(CC) CXX="$(CXX) -I$(builddir)/distrib/tmp/libboost/include -I$(builddir)/distrib/tmp/libdb/include -DHAVE_CXX_STDHEADERS -DBOOST_ERROR_CODE_HEADER_ONLY -L$(builddir)/distrib/tmp/libdb/lib -L$(builddir)/distrib/tmp/libboost/lib -L$(builddir)/distrib/tmp/libevent/lib -levent -levent_pthreads -L$(builddir)/distrib/tmp/miniupnpc/usr/lib -lminiupnpc -ldb -ldb_cxx" \ - PKG_CONFIG_PATH="$(builddir)/distrib/tmp/libevent/lib/pkgconfig:$(builddir)/distrib/tmp/miniupnpc/usr/lib/pkgconfig" \ - LDFLAGS="-Wl,-rpath=/usr/lib/bitgesell-qt" \ - BOOST_LDFLAGS="-L$(builddir)/distrib/tmp/libboost/lib" \ - --disable-tests --disable-bench --disable-debug --with-gnu-ld \ - --with-gui=yes \ - --with-boost="$(builddir)/distrib/tmp/libboost" - -#override dh_auto_install: -# make -j1 install DESTDIR=$(destdir) AM_UPDATE_INFO_DIR=no - -override_dh_auto_test: - DEB_BUILD_OPTIONS=nocheck dh_auto_test - -override_dh_install: - dh_install -# In compat 15 or later, dh_auto_install will use debian/tmp as the -# default --destdir and should be moved from there to the -# appropriate package build directory using dh_install(1) or -# similar tools/ - mkdir -p $(destdir)/usr/lib/bitgesell-qt - cp -r $(builddir)/debian/tmp/usr $(destdir) - cp -a distrib/tmp/libboost/lib/* $(destdir)/usr/lib/bitgesell-qt/ - cp -a distrib/tmp/libdb/lib/* $(destdir)/usr/lib/bitgesell-qt/ - cp -a distrib/tmp/libevent/lib/* $(destdir)/usr/lib/bitgesell-qt/ - cp -a distrib/tmp/miniupnpc/usr/lib/* $(destdir)/usr/lib/bitgesell-qt/ - -override_dh_shlibdeps: - dh_shlibdeps -l/usr/lib/bitgesell-qt diff --git a/debian.qt/source/format b/debian.qt/source/format deleted file mode 100644 index 89ae9db8f8..0000000000 --- a/debian.qt/source/format +++ /dev/null @@ -1 +0,0 @@ -3.0 (native) diff --git a/debian.qt/source/local-options b/debian.qt/source/local-options deleted file mode 100644 index 00131ee8c4..0000000000 --- a/debian.qt/source/local-options +++ /dev/null @@ -1,2 +0,0 @@ -#abort-on-upstream-changes -#unapply-patches diff --git a/debian.qt/test.sh b/debian.qt/test.sh deleted file mode 100755 index 43e3ab0cf2..0000000000 --- a/debian.qt/test.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -finish() { - docker stop $container >/dev/null - docker container rm $container >/dev/null -} - -docker pull ubuntu:20.04 -container=`docker run -dit -e TZ='Etc/UTC' -e DEBIAN_FRONTEND='noninteractive' ubuntu:20.04` -trap finish EXIT - -docker exec $container apt-get -y update -docker exec $container apt-get -y install apt-utils #dpkg-dev -docker exec $container mkdir /root/repo -docker cp ./bitgesell-qt_0.1.11_amd64.deb $container:/root/repo -# docker exec -w /root/repo $container sh -c "dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz" -docker exec -w /root/repo $container sh -c "apt-ftparchive packages . > Packages" -docker exec $container sh -c "echo deb [trusted=yes] file:/root/repo ./ >> /etc/apt/sources.list" -# docker exec $container rm -rf /var/lib/apt/lists/ # Why is this needed? -# docker exec $container apt-get -y clean -docker exec $container apt-get -y -o APT::Sandbox::User=root update -docker exec $container apt-get -y install bitgesell-qt -docker exec $container sh -c \ - "if { BGL-cli --help && BGLd --help && BGL-tx --help; } > /dev/null; then \ - echo 'Test passed.'; \ - else - echo 'Test failed.'; \ - fi" diff --git a/debian.qt/updateunattended.sh b/debian.qt/updateunattended.sh deleted file mode 100755 index 0078ab3d7b..0000000000 --- a/debian.qt/updateunattended.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -export DEBIAN_FRONTEND=noninteractive -export TZ=Etc/UTC -apt-get update && apt-get install -y tzdata -ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime -dpkg-reconfigure --frontend noninteractive tzdata -#apt-get -y update -apt-get -y install apt-utils devscripts sudo #dpkg-dev -apt-get -y install libqrencode-dev qt5-default qttools5-dev-tools diff --git a/debian.qt/watch b/debian.qt/watch deleted file mode 100644 index 76575dc53b..0000000000 --- a/debian.qt/watch +++ /dev/null @@ -1,2 +0,0 @@ -# You must remove unused comment lines for the released package. -version=3 diff --git a/debian/README.Debian b/debian/README.Debian deleted file mode 100644 index 78387562b6..0000000000 --- a/debian/README.Debian +++ /dev/null @@ -1,12 +0,0 @@ -To create the Debian package installable on multiple systems including -Ubuntu 20.04, run: - -./debian/build-in-docker.sh - -Maintainers can run ./debian/test.sh to test if the generated Debian -package is correct. - -TODO: ./debian/build-in-docker.sh and ./debian/test.sh should not need to -be updated when the version of the package changes. - - -- Victor Porton Sat, 03 Oct 2020 06:04:48 +0300 diff --git a/debian/build-in-docker.sh b/debian/build-in-docker.sh deleted file mode 100755 index 053035b476..0000000000 --- a/debian/build-in-docker.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash - -set -e - -debuild -S - -#finish() { -# docker stop $container >/dev/null -# docker container rm $container >/dev/null -#} - -docker pull ubuntu:20.04 -container=`docker run -dit ubuntu:20.04` -#trap finish EXIT - -docker cp ./debian/updateunattended.sh $container:/root/ -docker exec $container /root/updateunattended.sh -docker exec $container mkdir -p /root/repo -docker exec $container useradd user -docker exec $container mkdir /home/user -docker exec $container chown user.user /home/user -docker exec $container sudo -u user mkdir /home/user/build -docker cp ../bitgesell-qt_0.1.11.dsc $container:/root/repo/ -docker cp ../bitgesell-qt_0.1.11.tar.xz $container:/root/repo/ -# docker exec -w /root/repo $container sh -c "dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz" - -docker exec -w /root/repo $container sh -c "apt-ftparchive sources . > Sources" -docker exec $container sh -c "echo deb-src [trusted=yes] file:/root/repo ./ >> /etc/apt/sources.list" -docker exec $container apt-get -y -o APT::Sandbox::User=root update -docker exec $container apt-get -y build-dep bitgesell-qt -docker exec $container chmod a+rX /root -docker exec $container chmod -R a+rX /root/repo -docker exec -w /home/user/build $container sudo -u user apt-get -y source bitgesell-qt -docker exec -w /home/user/build/bitgesell-qt-0.1.11 $container sudo -u user debuild -b -docker cp $container:/home/user/build/bitgesell-qt_0.1.11_amd64.deb bitgesell-qt_0.1.11_amd64.deb -docker cp $container:/home/user/build/bitgesell-qt-dbg_0.1.11_amd64.deb bitgesell-qt-dbg_0.1.11_amd64.deb diff --git a/debian/changelog b/debian/changelog deleted file mode 100644 index 2b2bf6f18d..0000000000 --- a/debian/changelog +++ /dev/null @@ -1,44 +0,0 @@ -bitgesell-qt (0.1.10) UNRELEASED; urgency=low - - * Bitcoin code synced - - -- Mathias van Orton Tue, 18 Apr 2023 10:30:15 +0000 - -bitgesell-qt (0.1.9) UNRELEASED; urgency=low - - * Bitcoin code synced - - -- Mathias van Orton Tue, 8 Nov 2022 10:00:00 +0000 - -bitgesell-qt (0.1.8) UNRELEASED; urgency=low - - * Bitcoin code synced - - -- Mathias van Orton Wed, 20 Apr 2022 10:20:00 +0000 - -bitgesell-qt (0.1.7) UNRELEASED; urgency=low - - * Taproot activation rescheduled with relaxed conditions - - -- Mathias van Orton Sun, 4 Jul 2021 14:40:01 +0000 - - -bitgesell-qt (0.1.6) UNRELEASED; urgency=low - - * Code synced with BTC up to April 2021, Taproot activation scheduled - - -- Mathias van Orton Mon, 24 May 2021 11:24:11 +0000 - - -bitgesell-qt (0.1.3) UNRELEASED; urgency=low - - * Updated all builds before testing BTC synced code. - - -- Mathias van Orton Thu, 26 Nov 2020 11:02:18 +0000 - - -bitgesell-qt (0.1.2) UNRELEASED; urgency=low - - * Initial release. - - -- Victor Porton Sat, 03 Oct 2020 06:04:48 +0300 diff --git a/debian/compat b/debian/compat deleted file mode 100644 index b4de394767..0000000000 --- a/debian/compat +++ /dev/null @@ -1 +0,0 @@ -11 diff --git a/debian/control b/debian/control deleted file mode 100644 index 54c2843337..0000000000 --- a/debian/control +++ /dev/null @@ -1,29 +0,0 @@ -Source: bitgesell-qt -Section: misc -Priority: optional -Maintainer: Mathias van Orton -Build-Depends: debhelper (>=11~), g++-8, pkg-config, dh-autoreconf, libevent-dev, libssl-dev, fakeroot, wget -Standards-Version: 4.1.4 -Homepage: https://github.com/wu-emma/bitgesell - -Package: bitgesell-qt -Architecture: any -Depends: libc6 (>= 2.27), libstdc++6 (>= 8.4.0), libbz2-1.0 (>= 1.0.6), liblzma5 (>= 5.2.2), zlib1g (>= 1:1.1.4), - libqt5core5a (>= 5.11.0), libqt5dbus5 (>= 5.11.0), libqt5network5 (>= 5.11.0), libqt5gui5 (>= 5.11.0), - openssl, ${misc:Depends} -Description: BGL is an experimental digital currency that enables instant payments to anyone, anywhere in the world - BGL is an experimental digital currency that enables instant payments to anyone, - anywhere in the world. BGL uses peer-to-peer technology to operate with no central authority: - managing transactions and issuing money are carried out collectively by the network. - BGL Core is the name of open source software which enables the use of this currency. - -Package: bitgesell-qt-dbg -Architecture: any -Depends: libc6 (>= 2.27), libstdc++6 (>= 8.4.0), libbz2-1.0 (>= 1.0.6), liblzma5 (>= 5.2.2), zlib1g (>= 1:1.1.4), - libqt5core5a (>= 5.11.0), libqt5dbus5 (>= 5.11.0), libqt5network5 (>= 5.11.0), libqt5gui5 (>= 5.11.0), - openssl, ${misc:Depends} -Description: BGL is an experimental digital currency that enables instant payments to anyone, anywhere in the world - BGL is an experimental digital currency that enables instant payments to anyone, - anywhere in the world. BGL uses peer-to-peer technology to operate with no central authority: - managing transactions and issuing money are carried out collectively by the network. - BGL Core is the name of open source software which enables the use of this currency. diff --git a/debian/files b/debian/files deleted file mode 100644 index 7a52fffa9b..0000000000 --- a/debian/files +++ /dev/null @@ -1 +0,0 @@ -bitgesell-qt_0.1.11_source.buildinfo misc optional diff --git a/debian/rules b/debian/rules deleted file mode 100755 index 785c4b2993..0000000000 --- a/debian/rules +++ /dev/null @@ -1,103 +0,0 @@ -#!/usr/bin/make -f - -builddir = $(shell pwd) -destdir = $(builddir)/debian/bitgesell-qt - -CC = gcc-9 -CXX = g++-9 - -.PHONY: distrib download-distrib unpack-distrib berkeleydb libevent miniupnpc - -%: - dh $@ --with autoreconf - -build: distrib - -distrib: unpack-distrib boost berkeleydb libevent miniupnpc - -download-distrib: distrib/boost_1_74_0.tar.gz distrib/db-4.8.30.tar.gz distrib/libevent-2.1.11-stable.tar.gz distrib/miniupnpc-2.1.orig.tar.gz - -unpack-distrib: download-distrib - cd distrib/ && for i in *.tar.gz; do tar -xzf $$i && rm "$$i"; done - -distrib/boost_1_74_0.tar.gz: - mkdir -p distrib/ - wget -O$@ https://boostorg.jfrog.io/artifactory/main/release/1.74.0/source/boost_1_74_0.tar.gz - -distrib/db-4.8.30.tar.gz: - mkdir -p distrib/ - wget -O$@ http://ftp.linuxfoundation.org/pub/lsb/app-battery/packages/db-4.8.30.tar.gz - -distrib/libevent-2.1.11-stable.tar.gz: - mkdir -p distrib/ - wget -O$@ https://github.com/libevent/libevent/releases/download/release-2.1.11-stable/libevent-2.1.11-stable.tar.gz - -distrib/miniupnpc-2.1.orig.tar.gz: - mkdir -p distrib/ - wget -O$@ https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/miniupnpc/2.1-1/miniupnpc_2.1.orig.tar.gz - -boost: - cd distrib/boost_1_74_0 && \ - ./bootstrap.sh CC=$(CC) CXX=$(CXX) --prefix=$(builddir)/distrib/tmp/libboost && \ - ./b2 install - -# --disable-atomicsupport slows things down, but that's necessary to compile (at least on on Ubuntu 20.04.1) -# TODO: Modify libdb to make it faster. -berkeleydb: - cd distrib/db-4.8.30/build_unix && \ - ../dist/configure CC=$(CC) CXX=$(CXX) --disable-static --with-pic --with-gnu-ld --enable-cxx --disable-atomicsupport \ - --prefix=$(builddir)/distrib/tmp/libdb --includedir=$(builddir)/distrib/tmp/libdb/include/db && \ - make clean && \ - make && \ - make install - -libevent: - cd distrib/libevent-2.1.11-stable && \ - ./configure CC=$(CC) CXX=$(CXX) --disable-debug-mode --disable-samples --with-gnu-ld --disable-static \ - --prefix=$(builddir)/distrib/tmp/libevent && \ - make clean && \ - make && \ - make install - -miniupnpc: - cd distrib/miniupnpc-2.1 && \ - make && \ - make DESTDIR=$(builddir)/distrib/tmp/miniupnpc install - -override_dh_autoreconf: - dh_autoreconf -- ./autogen.sh - -# Flags in CXX is an Ubuntu 18.04 hack. # TODO: Can the below be more "ordered"? -# TODO: Manual providing of -I and -L/-l should not be necessary, but it does not work without this -# (at least on Ubuntu 18.04). -override_dh_auto_configure: - dh_auto_configure -- \ - CC=$(CC) CXX="$(CXX) -I$(builddir)/distrib/tmp/libboost/include -I$(builddir)/distrib/tmp/libdb/include -DHAVE_CXX_STDHEADERS -DBOOST_ERROR_CODE_HEADER_ONLY -L$(builddir)/distrib/tmp/libdb/lib -L$(builddir)/distrib/tmp/libboost/lib -L$(builddir)/distrib/tmp/libevent/lib -levent -levent_pthreads -L$(builddir)/distrib/tmp/miniupnpc/usr/lib -lminiupnpc -ldb -ldb_cxx" \ - PKG_CONFIG_PATH="$(builddir)/distrib/tmp/libevent/lib/pkgconfig:$(builddir)/distrib/tmp/miniupnpc/usr/lib/pkgconfig" \ - LDFLAGS="-Wl,-rpath=/usr/lib/bitgesell-qt" \ - BOOST_LDFLAGS="-L$(builddir)/distrib/tmp/libboost/lib" \ - --disable-tests --disable-bench --disable-debug --with-gnu-ld \ - --with-gui=yes \ - --with-boost="$(builddir)/distrib/tmp/libboost" - -#override dh_auto_install: -# make -j1 install DESTDIR=$(destdir) AM_UPDATE_INFO_DIR=no - -override_dh_auto_test: - DEB_BUILD_OPTIONS=nocheck dh_auto_test - -override_dh_install: - dh_install -# In compat 15 or later, dh_auto_install will use debian/tmp as the -# default --destdir and should be moved from there to the -# appropriate package build directory using dh_install(1) or -# similar tools/ - mkdir -p $(destdir)/usr/lib/bitgesell-qt - cp -r $(builddir)/debian/tmp/usr $(destdir) - cp -a distrib/tmp/libboost/lib/* $(destdir)/usr/lib/bitgesell-qt/ - cp -a distrib/tmp/libdb/lib/* $(destdir)/usr/lib/bitgesell-qt/ - cp -a distrib/tmp/libevent/lib/* $(destdir)/usr/lib/bitgesell-qt/ - cp -a distrib/tmp/miniupnpc/usr/lib/* $(destdir)/usr/lib/bitgesell-qt/ - -override_dh_shlibdeps: - dh_shlibdeps -l/usr/lib/bitgesell-qt diff --git a/debian/source/format b/debian/source/format deleted file mode 100644 index 89ae9db8f8..0000000000 --- a/debian/source/format +++ /dev/null @@ -1 +0,0 @@ -3.0 (native) diff --git a/debian/source/local-options b/debian/source/local-options deleted file mode 100644 index 00131ee8c4..0000000000 --- a/debian/source/local-options +++ /dev/null @@ -1,2 +0,0 @@ -#abort-on-upstream-changes -#unapply-patches diff --git a/debian/test.sh b/debian/test.sh deleted file mode 100755 index 3e04e11c3e..0000000000 --- a/debian/test.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -finish() { - docker stop $container >/dev/null - docker container rm $container >/dev/null -} - -docker pull ubuntu:20.04 -container=`docker run -dit ubuntu:20.04` -trap finish EXIT - -docker exec $container apt-get -y update -docker exec $container apt-get -y install apt-utils #dpkg-dev -docker exec $container mkdir /root/repo -docker cp ../bitgesell-qt_0.1.11_amd64.deb $container:/root/repo -# docker exec -w /root/repo $container sh -c "dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz" -docker exec -w /root/repo $container sh -c "apt-ftparchive packages . > Packages" -docker exec $container sh -c "echo deb [trusted=yes] file:/root/repo ./ >> /etc/apt/sources.list" -# docker exec $container rm -rf /var/lib/apt/lists/ # Why is this needed? -# docker exec $container apt-get -y clean -docker exec $container apt-get -y -o APT::Sandbox::User=root update -docker exec $container apt-get -y install bitgesell -docker exec $container sh -c \ - "if { BGL-cli --help && BGLd --help && BGL-tx --help; } > /dev/null; then \ - echo 'Test passed.'; \ - else - echo 'Test failed.'; \ - fi" diff --git a/debian/updateunattended.sh b/debian/updateunattended.sh deleted file mode 100755 index 0078ab3d7b..0000000000 --- a/debian/updateunattended.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -export DEBIAN_FRONTEND=noninteractive -export TZ=Etc/UTC -apt-get update && apt-get install -y tzdata -ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime -dpkg-reconfigure --frontend noninteractive tzdata -#apt-get -y update -apt-get -y install apt-utils devscripts sudo #dpkg-dev -apt-get -y install libqrencode-dev qt5-default qttools5-dev-tools diff --git a/debian/watch b/debian/watch deleted file mode 100644 index 76575dc53b..0000000000 --- a/debian/watch +++ /dev/null @@ -1,2 +0,0 @@ -# You must remove unused comment lines for the released package. -version=3 diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt deleted file mode 100644 index e2ea473008..0000000000 --- a/examples/CMakeLists.txt +++ /dev/null @@ -1,24 +0,0 @@ -add_library(example INTERFACE) -target_include_directories(example INTERFACE - ${PROJECT_SOURCE_DIR}/include -) -target_link_libraries(example INTERFACE - secp256k1 - $<$:bcrypt> -) - -add_executable(ecdsa_example ecdsa.c) -target_link_libraries(ecdsa_example example) -add_test(NAME ecdsa_example COMMAND ecdsa_example) - -if(SECP256K1_ENABLE_MODULE_ECDH) - add_executable(ecdh_example ecdh.c) - target_link_libraries(ecdh_example example) - add_test(NAME ecdh_example COMMAND ecdh_example) -endif() - -if(SECP256K1_ENABLE_MODULE_SCHNORRSIG) - add_executable(schnorr_example schnorr.c) - target_link_libraries(schnorr_example example) - add_test(NAME schnorr_example COMMAND schnorr_example) -endif() diff --git a/examples/EXAMPLES_COPYING b/examples/EXAMPLES_COPYING deleted file mode 100644 index 0e259d42c9..0000000000 --- a/examples/EXAMPLES_COPYING +++ /dev/null @@ -1,121 +0,0 @@ -Creative Commons Legal Code - -CC0 1.0 Universal - - CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE - LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN - ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS - INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES - REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS - PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM - THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED - HEREUNDER. - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator -and subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for -the purpose of contributing to a commons of creative, cultural and -scientific works ("Commons") that the public can reliably and without fear -of later claims of infringement build upon, modify, incorporate in other -works, reuse and redistribute as freely as possible in any form whatsoever -and for any purposes, including without limitation commercial purposes. -These owners may contribute to the Commons to promote the ideal of a free -culture and the further production of creative, cultural and scientific -works, or to gain reputation or greater distribution for their Work in -part through the use and efforts of others. - -For these and/or other purposes and motivations, and without any -expectation of additional consideration or compensation, the person -associating CC0 with a Work (the "Affirmer"), to the extent that he or she -is an owner of Copyright and Related Rights in the Work, voluntarily -elects to apply CC0 to the Work and publicly distribute the Work under its -terms, with knowledge of his or her Copyright and Related Rights in the -Work and the meaning and intended legal effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not -limited to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, - communicate, and translate a Work; - ii. moral rights retained by the original author(s) and/or performer(s); -iii. publicity and privacy rights pertaining to a person's image or - likeness depicted in a Work; - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - v. rights protecting the extraction, dissemination, use and reuse of data - in a Work; - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation - thereof, including any amended or successor version of such - directive); and -vii. other similar, equivalent or corresponding rights throughout the - world based on applicable law or treaty, and any national - implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention -of, applicable law, Affirmer hereby overtly, fully, permanently, -irrevocably and unconditionally waives, abandons, and surrenders all of -Affirmer's Copyright and Related Rights and associated claims and causes -of action, whether now known or unknown (including existing as well as -future claims and causes of action), in the Work (i) in all territories -worldwide, (ii) for the maximum duration provided by applicable law or -treaty (including future time extensions), (iii) in any current or future -medium and for any number of copies, and (iv) for any purpose whatsoever, -including without limitation commercial, advertising or promotional -purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each -member of the public at large and to the detriment of Affirmer's heirs and -successors, fully intending that such Waiver shall not be subject to -revocation, rescission, cancellation, termination, or any other legal or -equitable action to disrupt the quiet enjoyment of the Work by the public -as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason -be judged legally invalid or ineffective under applicable law, then the -Waiver shall be preserved to the maximum extent permitted taking into -account Affirmer's express Statement of Purpose. In addition, to the -extent the Waiver is so judged Affirmer hereby grants to each affected -person a royalty-free, non transferable, non sublicensable, non exclusive, -irrevocable and unconditional license to exercise Affirmer's Copyright and -Related Rights in the Work (i) in all territories worldwide, (ii) for the -maximum duration provided by applicable law or treaty (including future -time extensions), (iii) in any current or future medium and for any number -of copies, and (iv) for any purpose whatsoever, including without -limitation commercial, advertising or promotional purposes (the -"License"). The License shall be deemed effective as of the date CC0 was -applied by Affirmer to the Work. Should any part of the License for any -reason be judged legally invalid or ineffective under applicable law, such -partial invalidity or ineffectiveness shall not invalidate the remainder -of the License, and in such case Affirmer hereby affirms that he or she -will not (i) exercise any of his or her remaining Copyright and Related -Rights in the Work or (ii) assert any associated claims and causes of -action with respect to the Work, in either case contrary to Affirmer's -express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - b. Affirmer offers the Work as-is and makes no representations or - warranties of any kind concerning the Work, express, implied, - statutory or otherwise, including without limitation warranties of - title, merchantability, fitness for a particular purpose, non - infringement, or the absence of latent or other defects, accuracy, or - the present or absence of errors, whether or not discoverable, all to - the greatest extent permissible under applicable law. - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without - limitation any person's Copyright and Related Rights in the Work. - Further, Affirmer disclaims responsibility for obtaining any necessary - consents, permissions or other rights required for any use of the - Work. - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to - this CC0 or use of the Work. diff --git a/examples/ecdh.c b/examples/ecdh.c deleted file mode 100644 index b7eeaa8ebf..0000000000 --- a/examples/ecdh.c +++ /dev/null @@ -1,126 +0,0 @@ -/************************************************************************* - * Written in 2020-2022 by Elichai Turkel * - * To the extent possible under law, the author(s) have dedicated all * - * copyright and related and neighboring rights to the software in this * - * file to the public domain worldwide. This software is distributed * - * without any warranty. For the CC0 Public Domain Dedication, see * - * EXAMPLES_COPYING or https://creativecommons.org/publicdomain/zero/1.0 * - *************************************************************************/ - -#include -#include -#include - -#include -#include - -#include "examples_util.h" - -int main(void) { - unsigned char seckey1[32]; - unsigned char seckey2[32]; - unsigned char compressed_pubkey1[33]; - unsigned char compressed_pubkey2[33]; - unsigned char shared_secret1[32]; - unsigned char shared_secret2[32]; - unsigned char randomize[32]; - int return_val; - size_t len; - secp256k1_pubkey pubkey1; - secp256k1_pubkey pubkey2; - - /* The specification in secp256k1.h states that `secp256k1_ec_pubkey_create` - * needs a context object initialized for signing, which is why we create - * a context with the SECP256K1_CONTEXT_SIGN flag. - * (The docs for `secp256k1_ecdh` don't require any special context, just - * some initialized context) */ - secp256k1_context* ctx = secp256k1_context_create(SECP256K1_CONTEXT_SIGN); - if (!fill_random(randomize, sizeof(randomize))) { - printf("Failed to generate randomness\n"); - return 1; - } - /* Randomizing the context is recommended to protect against side-channel - * leakage See `secp256k1_context_randomize` in secp256k1.h for more - * information about it. This should never fail. */ - return_val = secp256k1_context_randomize(ctx, randomize); - assert(return_val); - - /*** Key Generation ***/ - - /* If the secret key is zero or out of range (bigger than secp256k1's - * order), we try to sample a new key. Note that the probability of this - * happening is negligible. */ - while (1) { - if (!fill_random(seckey1, sizeof(seckey1)) || !fill_random(seckey2, sizeof(seckey2))) { - printf("Failed to generate randomness\n"); - return 1; - } - if (secp256k1_ec_seckey_verify(ctx, seckey1) && secp256k1_ec_seckey_verify(ctx, seckey2)) { - break; - } - } - - /* Public key creation using a valid context with a verified secret key should never fail */ - return_val = secp256k1_ec_pubkey_create(ctx, &pubkey1, seckey1); - assert(return_val); - return_val = secp256k1_ec_pubkey_create(ctx, &pubkey2, seckey2); - assert(return_val); - - /* Serialize pubkey1 in a compressed form (33 bytes), should always return 1 */ - len = sizeof(compressed_pubkey1); - return_val = secp256k1_ec_pubkey_serialize(ctx, compressed_pubkey1, &len, &pubkey1, SECP256K1_EC_COMPRESSED); - assert(return_val); - /* Should be the same size as the size of the output, because we passed a 33 byte array. */ - assert(len == sizeof(compressed_pubkey1)); - - /* Serialize pubkey2 in a compressed form (33 bytes) */ - len = sizeof(compressed_pubkey2); - return_val = secp256k1_ec_pubkey_serialize(ctx, compressed_pubkey2, &len, &pubkey2, SECP256K1_EC_COMPRESSED); - assert(return_val); - /* Should be the same size as the size of the output, because we passed a 33 byte array. */ - assert(len == sizeof(compressed_pubkey2)); - - /*** Creating the shared secret ***/ - - /* Perform ECDH with seckey1 and pubkey2. Should never fail with a verified - * seckey and valid pubkey */ - return_val = secp256k1_ecdh(ctx, shared_secret1, &pubkey2, seckey1, NULL, NULL); - assert(return_val); - - /* Perform ECDH with seckey2 and pubkey1. Should never fail with a verified - * seckey and valid pubkey */ - return_val = secp256k1_ecdh(ctx, shared_secret2, &pubkey1, seckey2, NULL, NULL); - assert(return_val); - - /* Both parties should end up with the same shared secret */ - return_val = memcmp(shared_secret1, shared_secret2, sizeof(shared_secret1)); - assert(return_val == 0); - - printf("Secret Key1: "); - print_hex(seckey1, sizeof(seckey1)); - printf("Compressed Pubkey1: "); - print_hex(compressed_pubkey1, sizeof(compressed_pubkey1)); - printf("\nSecret Key2: "); - print_hex(seckey2, sizeof(seckey2)); - printf("Compressed Pubkey2: "); - print_hex(compressed_pubkey2, sizeof(compressed_pubkey2)); - printf("\nShared Secret: "); - print_hex(shared_secret1, sizeof(shared_secret1)); - - /* This will clear everything from the context and free the memory */ - secp256k1_context_destroy(ctx); - - /* It's best practice to try to clear secrets from memory after using them. - * This is done because some bugs can allow an attacker to leak memory, for - * example through "out of bounds" array access (see Heartbleed), Or the OS - * swapping them to disk. Hence, we overwrite the secret key buffer with zeros. - * - * Here we are preventing these writes from being optimized out, as any good compiler - * will remove any writes that aren't used. */ - secure_erase(seckey1, sizeof(seckey1)); - secure_erase(seckey2, sizeof(seckey2)); - secure_erase(shared_secret1, sizeof(shared_secret1)); - secure_erase(shared_secret2, sizeof(shared_secret2)); - - return 0; -} diff --git a/examples/ecdsa.c b/examples/ecdsa.c deleted file mode 100644 index d28cbdb496..0000000000 --- a/examples/ecdsa.c +++ /dev/null @@ -1,143 +0,0 @@ -/************************************************************************* - * Written in 2020-2022 by Elichai Turkel * - * To the extent possible under law, the author(s) have dedicated all * - * copyright and related and neighboring rights to the software in this * - * file to the public domain worldwide. This software is distributed * - * without any warranty. For the CC0 Public Domain Dedication, see * - * EXAMPLES_COPYING or https://creativecommons.org/publicdomain/zero/1.0 * - *************************************************************************/ - -#include -#include -#include - -#include - -#include "examples_util.h" - -int main(void) { - /* Instead of signing the message directly, we must sign a 32-byte hash. - * Here the message is "Hello, world!" and the hash function was SHA-256. - * An actual implementation should just call SHA-256, but this example - * hardcodes the output to avoid depending on an additional library. - * See https://bitcoin.stackexchange.com/questions/81115/if-someone-wanted-to-pretend-to-be-satoshi-by-posting-a-fake-signature-to-defrau/81116#81116 */ - unsigned char msg_hash[32] = { - 0x31, 0x5F, 0x5B, 0xDB, 0x76, 0xD0, 0x78, 0xC4, - 0x3B, 0x8A, 0xC0, 0x06, 0x4E, 0x4A, 0x01, 0x64, - 0x61, 0x2B, 0x1F, 0xCE, 0x77, 0xC8, 0x69, 0x34, - 0x5B, 0xFC, 0x94, 0xC7, 0x58, 0x94, 0xED, 0xD3, - }; - unsigned char seckey[32]; - unsigned char randomize[32]; - unsigned char compressed_pubkey[33]; - unsigned char serialized_signature[64]; - size_t len; - int is_signature_valid, is_signature_valid2; - int return_val; - secp256k1_pubkey pubkey; - secp256k1_ecdsa_signature sig; - /* The specification in secp256k1.h states that `secp256k1_ec_pubkey_create` needs - * a context object initialized for signing and `secp256k1_ecdsa_verify` needs - * a context initialized for verification, which is why we create a context - * for both signing and verification with the SECP256K1_CONTEXT_SIGN and - * SECP256K1_CONTEXT_VERIFY flags. */ - secp256k1_context* ctx = secp256k1_context_create(SECP256K1_CONTEXT_SIGN | SECP256K1_CONTEXT_VERIFY); - if (!fill_random(randomize, sizeof(randomize))) { - printf("Failed to generate randomness\n"); - return 1; - } - /* Randomizing the context is recommended to protect against side-channel - * leakage See `secp256k1_context_randomize` in secp256k1.h for more - * information about it. This should never fail. */ - return_val = secp256k1_context_randomize(ctx, randomize); - assert(return_val); - - /*** Key Generation ***/ - - /* If the secret key is zero or out of range (bigger than secp256k1's - * order), we try to sample a new key. Note that the probability of this - * happening is negligible. */ - while (1) { - if (!fill_random(seckey, sizeof(seckey))) { - printf("Failed to generate randomness\n"); - return 1; - } - if (secp256k1_ec_seckey_verify(ctx, seckey)) { - break; - } - } - - /* Public key creation using a valid context with a verified secret key should never fail */ - return_val = secp256k1_ec_pubkey_create(ctx, &pubkey, seckey); - assert(return_val); - - /* Serialize the pubkey in a compressed form(33 bytes). Should always return 1. */ - len = sizeof(compressed_pubkey); - return_val = secp256k1_ec_pubkey_serialize(ctx, compressed_pubkey, &len, &pubkey, SECP256K1_EC_COMPRESSED); - assert(return_val); - /* Should be the same size as the size of the output, because we passed a 33 byte array. */ - assert(len == sizeof(compressed_pubkey)); - - /*** Signing ***/ - - /* Generate an ECDSA signature `noncefp` and `ndata` allows you to pass a - * custom nonce function, passing `NULL` will use the RFC-6979 safe default. - * Signing with a valid context, verified secret key - * and the default nonce function should never fail. */ - return_val = secp256k1_ecdsa_sign(ctx, &sig, msg_hash, seckey, NULL, NULL); - assert(return_val); - - /* Serialize the signature in a compact form. Should always return 1 - * according to the documentation in secp256k1.h. */ - return_val = secp256k1_ecdsa_signature_serialize_compact(ctx, serialized_signature, &sig); - assert(return_val); - - - /*** Verification ***/ - - /* Deserialize the signature. This will return 0 if the signature can't be parsed correctly. */ - if (!secp256k1_ecdsa_signature_parse_compact(ctx, &sig, serialized_signature)) { - printf("Failed parsing the signature\n"); - return 1; - } - - /* Deserialize the public key. This will return 0 if the public key can't be parsed correctly. */ - if (!secp256k1_ec_pubkey_parse(ctx, &pubkey, compressed_pubkey, sizeof(compressed_pubkey))) { - printf("Failed parsing the public key\n"); - return 1; - } - - /* Verify a signature. This will return 1 if it's valid and 0 if it's not. */ - is_signature_valid = secp256k1_ecdsa_verify(ctx, &sig, msg_hash, &pubkey); - - printf("Is the signature valid? %s\n", is_signature_valid ? "true" : "false"); - printf("Secret Key: "); - print_hex(seckey, sizeof(seckey)); - printf("Public Key: "); - print_hex(compressed_pubkey, sizeof(compressed_pubkey)); - printf("Signature: "); - print_hex(serialized_signature, sizeof(serialized_signature)); - - /* This will clear everything from the context and free the memory */ - secp256k1_context_destroy(ctx); - - /* Bonus example: if all we need is signature verification (and no key - generation or signing), we don't need to use a context created via - secp256k1_context_create(). We can simply use the static (i.e., global) - context secp256k1_context_static. See its description in - include/secp256k1.h for details. */ - is_signature_valid2 = secp256k1_ecdsa_verify(secp256k1_context_static, - &sig, msg_hash, &pubkey); - assert(is_signature_valid2 == is_signature_valid); - - /* It's best practice to try to clear secrets from memory after using them. - * This is done because some bugs can allow an attacker to leak memory, for - * example through "out of bounds" array access (see Heartbleed), Or the OS - * swapping them to disk. Hence, we overwrite the secret key buffer with zeros. - * - * Here we are preventing these writes from being optimized out, as any good compiler - * will remove any writes that aren't used. */ - secure_erase(seckey, sizeof(seckey)); - - return 0; -} diff --git a/examples/examples_util.h b/examples/examples_util.h deleted file mode 100644 index 3293b64032..0000000000 --- a/examples/examples_util.h +++ /dev/null @@ -1,108 +0,0 @@ -/************************************************************************* - * Copyright (c) 2020-2021 Elichai Turkel * - * Distributed under the CC0 software license, see the accompanying file * - * EXAMPLES_COPYING or https://creativecommons.org/publicdomain/zero/1.0 * - *************************************************************************/ - -/* - * This file is an attempt at collecting best practice methods for obtaining randomness with different operating systems. - * It may be out-of-date. Consult the documentation of the operating system before considering to use the methods below. - * - * Platform randomness sources: - * Linux -> `getrandom(2)`(`sys/random.h`), if not available `/dev/urandom` should be used. http://man7.org/linux/man-pages/man2/getrandom.2.html, https://linux.die.net/man/4/urandom - * macOS -> `getentropy(2)`(`sys/random.h`), if not available `/dev/urandom` should be used. https://www.unix.com/man-page/mojave/2/getentropy, https://opensource.apple.com/source/xnu/xnu-517.12.7/bsd/man/man4/random.4.auto.html - * FreeBSD -> `getrandom(2)`(`sys/random.h`), if not available `kern.arandom` should be used. https://www.freebsd.org/cgi/man.cgi?query=getrandom, https://www.freebsd.org/cgi/man.cgi?query=random&sektion=4 - * OpenBSD -> `getentropy(2)`(`unistd.h`), if not available `/dev/urandom` should be used. https://man.openbsd.org/getentropy, https://man.openbsd.org/urandom - * Windows -> `BCryptGenRandom`(`bcrypt.h`). https://docs.microsoft.com/en-us/windows/win32/api/bcrypt/nf-bcrypt-bcryptgenrandom - */ - -#if defined(_WIN32) -/* - * The defined WIN32_NO_STATUS macro disables return code definitions in - * windows.h, which avoids "macro redefinition" MSVC warnings in ntstatus.h. - */ -#define WIN32_NO_STATUS -#include -#undef WIN32_NO_STATUS -#include -#include -#elif defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) -#include -#elif defined(__OpenBSD__) -#include -#else -#error "Couldn't identify the OS" -#endif - -#include -#include -#include - - -/* Returns 1 on success, and 0 on failure. */ -static int fill_random(unsigned char* data, size_t size) { -#if defined(_WIN32) - NTSTATUS res = BCryptGenRandom(NULL, data, size, BCRYPT_USE_SYSTEM_PREFERRED_RNG); - if (res != STATUS_SUCCESS || size > ULONG_MAX) { - return 0; - } else { - return 1; - } -#elif defined(__linux__) || defined(__FreeBSD__) - /* If `getrandom(2)` is not available you should fallback to /dev/urandom */ - ssize_t res = getrandom(data, size, 0); - if (res < 0 || (size_t)res != size ) { - return 0; - } else { - return 1; - } -#elif defined(__APPLE__) || defined(__OpenBSD__) - /* If `getentropy(2)` is not available you should fallback to either - * `SecRandomCopyBytes` or /dev/urandom */ - int res = getentropy(data, size); - if (res == 0) { - return 1; - } else { - return 0; - } -#endif - return 0; -} - -static void print_hex(unsigned char* data, size_t size) { - size_t i; - printf("0x"); - for (i = 0; i < size; i++) { - printf("%02x", data[i]); - } - printf("\n"); -} - -#if defined(_MSC_VER) -// For SecureZeroMemory -#include -#endif -/* Cleanses memory to prevent leaking sensitive info. Won't be optimized out. */ -static void secure_erase(void *ptr, size_t len) { -#if defined(_MSC_VER) - /* SecureZeroMemory is guaranteed not to be optimized out by MSVC. */ - SecureZeroMemory(ptr, len); -#elif defined(__GNUC__) - /* We use a memory barrier that scares the compiler away from optimizing out the memset. - * - * Quoting Adam Langley in commit ad1907fe73334d6c696c8539646c21b11178f20f - * in BoringSSL (ISC License): - * As best as we can tell, this is sufficient to break any optimisations that - * might try to eliminate "superfluous" memsets. - * This method used in memzero_explicit() the Linux kernel, too. Its advantage is that it is - * pretty efficient, because the compiler can still implement the memset() efficiently, - * just not remove it entirely. See "Dead Store Elimination (Still) Considered Harmful" by - * Yang et al. (USENIX Security 2017) for more background. - */ - memset(ptr, 0, len); - __asm__ __volatile__("" : : "r"(ptr) : "memory"); -#else - void *(*volatile const volatile_memset)(void *, int, size_t) = memset; - volatile_memset(ptr, 0, len); -#endif -} diff --git a/examples/schnorr.c b/examples/schnorr.c deleted file mode 100644 index bd9f8da463..0000000000 --- a/examples/schnorr.c +++ /dev/null @@ -1,160 +0,0 @@ -/************************************************************************* - * Written in 2020-2022 by Elichai Turkel * - * To the extent possible under law, the author(s) have dedicated all * - * copyright and related and neighboring rights to the software in this * - * file to the public domain worldwide. This software is distributed * - * without any warranty. For the CC0 Public Domain Dedication, see * - * EXAMPLES_COPYING or https://creativecommons.org/publicdomain/zero/1.0 * - *************************************************************************/ - -#include -#include -#include - -#include -#include -#include - -#include "examples_util.h" - -int main(void) { - unsigned char msg[12] = "Hello World!"; - unsigned char msg_hash[32]; - unsigned char tag[17] = "my_fancy_protocol"; - unsigned char seckey[32]; - unsigned char randomize[32]; - unsigned char auxiliary_rand[32]; - unsigned char serialized_pubkey[32]; - unsigned char signature[64]; - int is_signature_valid, is_signature_valid2; - int return_val; - secp256k1_xonly_pubkey pubkey; - secp256k1_keypair keypair; - /* The specification in secp256k1_extrakeys.h states that `secp256k1_keypair_create` - * needs a context object initialized for signing. And in secp256k1_schnorrsig.h - * they state that `secp256k1_schnorrsig_verify` needs a context initialized for - * verification, which is why we create a context for both signing and verification - * with the SECP256K1_CONTEXT_SIGN and SECP256K1_CONTEXT_VERIFY flags. */ - secp256k1_context* ctx = secp256k1_context_create(SECP256K1_CONTEXT_SIGN | SECP256K1_CONTEXT_VERIFY); - if (!fill_random(randomize, sizeof(randomize))) { - printf("Failed to generate randomness\n"); - return 1; - } - /* Randomizing the context is recommended to protect against side-channel - * leakage See `secp256k1_context_randomize` in secp256k1.h for more - * information about it. This should never fail. */ - return_val = secp256k1_context_randomize(ctx, randomize); - assert(return_val); - - /*** Key Generation ***/ - - /* If the secret key is zero or out of range (bigger than secp256k1's - * order), we try to sample a new key. Note that the probability of this - * happening is negligible. */ - while (1) { - if (!fill_random(seckey, sizeof(seckey))) { - printf("Failed to generate randomness\n"); - return 1; - } - /* Try to create a keypair with a valid context, it should only fail if - * the secret key is zero or out of range. */ - if (secp256k1_keypair_create(ctx, &keypair, seckey)) { - break; - } - } - - /* Extract the X-only public key from the keypair. We pass NULL for - * `pk_parity` as the parity isn't needed for signing or verification. - * `secp256k1_keypair_xonly_pub` supports returning the parity for - * other use cases such as tests or verifying Taproot tweaks. - * This should never fail with a valid context and public key. */ - return_val = secp256k1_keypair_xonly_pub(ctx, &pubkey, NULL, &keypair); - assert(return_val); - - /* Serialize the public key. Should always return 1 for a valid public key. */ - return_val = secp256k1_xonly_pubkey_serialize(ctx, serialized_pubkey, &pubkey); - assert(return_val); - - /*** Signing ***/ - - /* Instead of signing (possibly very long) messages directly, we sign a - * 32-byte hash of the message in this example. - * - * We use secp256k1_tagged_sha256 to create this hash. This function expects - * a context-specific "tag", which restricts the context in which the signed - * messages should be considered valid. For example, if protocol A mandates - * to use the tag "my_fancy_protocol" and protocol B mandates to use the tag - * "my_boring_protocol", then signed messages from protocol A will never be - * valid in protocol B (and vice versa), even if keys are reused across - * protocols. This implements "domain separation", which is considered good - * practice. It avoids attacks in which users are tricked into signing a - * message that has intended consequences in the intended context (e.g., - * protocol A) but would have unintended consequences if it were valid in - * some other context (e.g., protocol B). */ - return_val = secp256k1_tagged_sha256(ctx, msg_hash, tag, sizeof(tag), msg, sizeof(msg)); - assert(return_val); - - /* Generate 32 bytes of randomness to use with BIP-340 schnorr signing. */ - if (!fill_random(auxiliary_rand, sizeof(auxiliary_rand))) { - printf("Failed to generate randomness\n"); - return 1; - } - - /* Generate a Schnorr signature. - * - * We use the secp256k1_schnorrsig_sign32 function that provides a simple - * interface for signing 32-byte messages (which in our case is a hash of - * the actual message). BIP-340 recommends passing 32 bytes of randomness - * to the signing function to improve security against side-channel attacks. - * Signing with a valid context, a 32-byte message, a verified keypair, and - * any 32 bytes of auxiliary random data should never fail. */ - return_val = secp256k1_schnorrsig_sign32(ctx, signature, msg_hash, &keypair, auxiliary_rand); - assert(return_val); - - /*** Verification ***/ - - /* Deserialize the public key. This will return 0 if the public key can't - * be parsed correctly */ - if (!secp256k1_xonly_pubkey_parse(ctx, &pubkey, serialized_pubkey)) { - printf("Failed parsing the public key\n"); - return 1; - } - - /* Compute the tagged hash on the received messages using the same tag as the signer. */ - return_val = secp256k1_tagged_sha256(ctx, msg_hash, tag, sizeof(tag), msg, sizeof(msg)); - assert(return_val); - - /* Verify a signature. This will return 1 if it's valid and 0 if it's not. */ - is_signature_valid = secp256k1_schnorrsig_verify(ctx, signature, msg_hash, 32, &pubkey); - - - printf("Is the signature valid? %s\n", is_signature_valid ? "true" : "false"); - printf("Secret Key: "); - print_hex(seckey, sizeof(seckey)); - printf("Public Key: "); - print_hex(serialized_pubkey, sizeof(serialized_pubkey)); - printf("Signature: "); - print_hex(signature, sizeof(signature)); - - /* This will clear everything from the context and free the memory */ - secp256k1_context_destroy(ctx); - - /* Bonus example: if all we need is signature verification (and no key - generation or signing), we don't need to use a context created via - secp256k1_context_create(). We can simply use the static (i.e., global) - context secp256k1_context_static. See its description in - include/secp256k1.h for details. */ - is_signature_valid2 = secp256k1_schnorrsig_verify(secp256k1_context_static, - signature, msg_hash, 32, &pubkey); - assert(is_signature_valid2 == is_signature_valid); - - /* It's best practice to try to clear secrets from memory after using them. - * This is done because some bugs can allow an attacker to leak memory, for - * example through "out of bounds" array access (see Heartbleed), Or the OS - * swapping them to disk. Hence, we overwrite the secret key buffer with zeros. - * - * Here we are preventing these writes from being optimized out, as any good compiler - * will remove any writes that aren't used. */ - secure_erase(seckey, sizeof(seckey)); - return 0; -} diff --git a/include/minisketch.h b/include/minisketch.h deleted file mode 100644 index 24d6b4e1c0..0000000000 --- a/include/minisketch.h +++ /dev/null @@ -1,368 +0,0 @@ -#ifndef _MINISKETCH_H_ -#define _MINISKETCH_H_ 1 - -#include -#include - -#ifdef _MSC_VER -# include - typedef SSIZE_T ssize_t; -#else -# include -#endif - -#ifndef MINISKETCH_API -# if defined(_WIN32) -# ifdef MINISKETCH_BUILD -# define MINISKETCH_API __declspec(dllexport) -# else -# define MINISKETCH_API -# endif -# elif defined(__GNUC__) && (__GNUC__ >= 4) && defined(MINISKETCH_BUILD) -# define MINISKETCH_API __attribute__ ((visibility ("default"))) -# else -# define MINISKETCH_API -# endif -#endif - -#ifdef __cplusplus -# if __cplusplus >= 201103L -# include -# include -# include -# if __cplusplus >= 201703L -# include -# endif // __cplusplus >= 201703L -# endif // __cplusplus >= 201103L -extern "C" { -#endif // __cplusplus - -/** Opaque type for decoded sketches. */ -typedef struct minisketch minisketch; - -/** Determine whether support for elements of `bits` bits was compiled in. */ -MINISKETCH_API int minisketch_bits_supported(uint32_t bits); - -/** Determine the maximum number of implementations available. - * - * Multiple implementations may be available for a given element size, with - * different performance characteristics on different hardware. - * - * Each implementation is identified by a number from 0 to the output of this - * function call, inclusive. Note that not every combination of implementation - * and element size may exist (see further). -*/ -MINISKETCH_API uint32_t minisketch_implementation_max(void); - -/** Determine if the a combination of bits and implementation number is available. - * - * Returns 1 if it is, 0 otherwise. - */ -MINISKETCH_API int minisketch_implementation_supported(uint32_t bits, uint32_t implementation); - -/** Construct a sketch for a given element size, implementation and capacity. - * - * If the combination of `bits` and `implementation` is unavailable, or when - * OOM occurs, NULL is returned. If minisketch_implementation_supported - * returns 1 for the specified bits and implementation, this will always succeed - * (except when allocation fails). - * - * If the result is not NULL, it must be destroyed using minisketch_destroy. - */ -MINISKETCH_API minisketch* minisketch_create(uint32_t bits, uint32_t implementation, size_t capacity); - -/** Get the element size of a sketch in bits. */ -MINISKETCH_API uint32_t minisketch_bits(const minisketch* sketch); - -/** Get the capacity of a sketch. */ -MINISKETCH_API size_t minisketch_capacity(const minisketch* sketch); - -/** Get the implementation of a sketch. */ -MINISKETCH_API uint32_t minisketch_implementation(const minisketch* sketch); - -/** Set the seed for randomizing algorithm choices to a fixed value. - * - * By default, sketches are initialized with a random seed. This is important - * to avoid scenarios where an attacker could force worst-case behavior. - * - * This function initializes the seed to a user-provided value (any 64-bit - * integer is acceptable, regardless of field size). - * - * When seed is -1, a fixed internal value with predictable behavior is - * used. It is only intended for testing. - */ -MINISKETCH_API void minisketch_set_seed(minisketch* sketch, uint64_t seed); - -/** Clone a sketch. - * - * The result must be destroyed using minisketch_destroy. - */ -MINISKETCH_API minisketch* minisketch_clone(const minisketch* sketch); - -/** Destroy a sketch. - * - * The pointer that was passed in may not be used anymore afterwards. - */ -MINISKETCH_API void minisketch_destroy(minisketch* sketch); - -/** Compute the size in bytes for serializing a given sketch. */ -MINISKETCH_API size_t minisketch_serialized_size(const minisketch* sketch); - -/** Serialize a sketch to bytes. */ -MINISKETCH_API void minisketch_serialize(const minisketch* sketch, unsigned char* output); - -/** Deserialize a sketch from bytes. */ -MINISKETCH_API void minisketch_deserialize(minisketch* sketch, const unsigned char* input); - -/** Add an element to a sketch. - * - * If the element to be added is too large for the sketch, the most significant - * bits of the element are dropped. More precisely, if the element size of - * `sketch` is b bits, then this function adds the unsigned integer represented - * by the b least significant bits of `element` to `sketch`. - * - * If the element to be added is 0 (after potentially dropping the most significant - * bits), then this function is a no-op. Sketches cannot contain an element with - * the value 0. - * - * Note that adding the same element a second time removes it again. - */ -MINISKETCH_API void minisketch_add_uint64(minisketch* sketch, uint64_t element); - -/** Merge the elements of another sketch into this sketch. - * - * After merging, `sketch` will contain every element that existed in one but not - * both of the input sketches. It can be seen as an exclusive or operation on - * the set elements. If the capacity of `other_sketch` is lower than `sketch`'s, - * merging reduces the capacity of `sketch` to that of `other_sketch`. - * - * This function returns the capacity of `sketch` after merging has been performed - * (where this capacity is at least 1), or 0 to indicate that merging has failed because - * the two input sketches differ in their element size or implementation. If 0 is - * returned, `sketch` (and its capacity) have not been modified. - * - * It is also possible to perform this operation directly on the serializations - * of two sketches with the same element size and capacity by performing a bitwise XOR - * of the serializations. - */ -MINISKETCH_API size_t minisketch_merge(minisketch* sketch, const minisketch* other_sketch); - -/** Decode a sketch. - * - * `output` is a pointer to an array of `max_element` uint64_t's, which will be - * filled with the elements in this sketch. - * - * The return value is the number of decoded elements, or -1 if decoding failed. - */ -MINISKETCH_API ssize_t minisketch_decode(const minisketch* sketch, size_t max_elements, uint64_t* output); - -/** Compute the capacity needed to achieve a certain rate of false positives. - * - * A sketch with capacity c and no more than c elements can always be decoded - * correctly. However, if it has more than c elements, or contains just random - * bytes, it is possible that it will still decode, but the result will be - * nonsense. This can be counteracted by increasing the capacity slightly. - * - * Given a field size bits, an intended number of elements that can be decoded - * max_elements, and a false positive probability of 1 in 2**fpbits, this - * function computes the necessary capacity. It is only guaranteed to be - * accurate up to fpbits=256. - */ -MINISKETCH_API size_t minisketch_compute_capacity(uint32_t bits, size_t max_elements, uint32_t fpbits); - -/** Compute what max_elements can be decoded for a certain rate of false positives. - * - * This is the inverse operation of minisketch_compute_capacity. It determines, - * given a field size bits, a capacity of a sketch, and an acceptable false - * positive probability of 1 in 2**fpbits, what the maximum allowed - * max_elements value is. If no value of max_elements would give the desired - * false positive probability, 0 is returned. - * - * Note that this is not an exact inverse of minisketch_compute_capacity. For - * example, with bits=32, fpbits=16, and max_elements=8, - * minisketch_compute_capacity will return 9, as capacity 8 would only have a - * false positive chance of 1 in 2^15.3. Increasing the capacity to 9 however - * decreases the fp chance to 1 in 2^47.3, enough for max_elements=9 (with fp - * chance of 1 in 2^18.5). Therefore, minisketch_compute_max_elements with - * capacity=9 will return 9. - */ -MINISKETCH_API size_t minisketch_compute_max_elements(uint32_t bits, size_t capacity, uint32_t fpbits); - -#ifdef __cplusplus -} - -#if __cplusplus >= 201103L -/** Simple RAII C++11 wrapper around the minisketch API. */ -class Minisketch -{ - struct Deleter - { - void operator()(minisketch* ptr) const - { - minisketch_destroy(ptr); - } - }; - - std::unique_ptr m_minisketch; - -public: - /** Check whether the library supports fields of the given size. */ - static bool BitsSupported(uint32_t bits) noexcept { return minisketch_bits_supported(bits); } - - /** Get the highest supported implementation number. */ - static uint32_t MaxImplementation() noexcept { return minisketch_implementation_max(); } - - /** Check whether the library supports fields with a given size and implementation number. - * If a particular field size `bits` is supported, implementation 0 is always supported for it. - * Higher implementation numbers may or may not be available as well, up to MaxImplementation(). - */ - static bool ImplementationSupported(uint32_t bits, uint32_t implementation) noexcept { return minisketch_implementation_supported(bits, implementation); } - - /** Given field size and a maximum number of decodable elements n, compute what capacity c to - * use so that sketches with more elements than n have a chance no higher than 2^-fpbits of - * being decoded incorrectly (and will instead fail when decoding for up to n elements). - * - * See minisketch_compute_capacity for more details. */ - static size_t ComputeCapacity(uint32_t bits, size_t max_elements, uint32_t fpbits) noexcept { return minisketch_compute_capacity(bits, max_elements, fpbits); } - - /** Reverse operation of ComputeCapacity. See minisketch_compute_max_elements. */ - static size_t ComputeMaxElements(uint32_t bits, size_t capacity, uint32_t fpbits) noexcept { return minisketch_compute_max_elements(bits, capacity, fpbits); } - - /** Construct a clone of the specified sketch. */ - Minisketch(const Minisketch& sketch) noexcept - { - if (sketch.m_minisketch) { - m_minisketch = std::unique_ptr(minisketch_clone(sketch.m_minisketch.get())); - } - } - - /** Make this Minisketch a clone of the specified one. */ - Minisketch& operator=(const Minisketch& sketch) noexcept - { - if (sketch.m_minisketch) { - m_minisketch = std::unique_ptr(minisketch_clone(sketch.m_minisketch.get())); - } - return *this; - } - - /** Check whether this Minisketch object is valid. */ - explicit operator bool() const noexcept { return bool{m_minisketch}; } - - /** Construct an (invalid) Minisketch object. */ - Minisketch() noexcept = default; - - /** Move constructor. */ - Minisketch(Minisketch&&) noexcept = default; - - /** Move assignment. */ - Minisketch& operator=(Minisketch&&) noexcept = default; - - /** Construct a Minisketch object with the specified parameters. - * - * If bits is not BitsSupported(), or the combination of bits and capacity is not - * ImplementationSupported(), or OOM occurs internally, an invalid Minisketch - * object will be constructed. Use operator bool() to check that this isn't the - * case before performing any other operations. */ - Minisketch(uint32_t bits, uint32_t implementation, size_t capacity) noexcept - { - m_minisketch = std::unique_ptr(minisketch_create(bits, implementation, capacity)); - } - - /** Create a Minisketch object sufficiently large for the specified number of elements at given fpbits. - * It may construct an invalid object, which you may need to check for. */ - static Minisketch CreateFP(uint32_t bits, uint32_t implementation, size_t max_elements, uint32_t fpbits) noexcept - { - return Minisketch(bits, implementation, ComputeCapacity(bits, max_elements, fpbits)); - } - - /** Return the field size for a (valid) Minisketch object. */ - uint32_t GetBits() const noexcept { return minisketch_bits(m_minisketch.get()); } - - /** Return the capacity for a (valid) Minisketch object. */ - size_t GetCapacity() const noexcept { return minisketch_capacity(m_minisketch.get()); } - - /** Return the implementation number for a (valid) Minisketch object. */ - uint32_t GetImplementation() const noexcept { return minisketch_implementation(m_minisketch.get()); } - - /** Set the seed for a (valid) Minisketch object. See minisketch_set_seed(). */ - Minisketch& SetSeed(uint64_t seed) noexcept - { - minisketch_set_seed(m_minisketch.get(), seed); - return *this; - } - - /** Add (or remove, if already present) an element to a (valid) Minisketch object. - * See minisketch_add_uint64(). */ - Minisketch& Add(uint64_t element) noexcept - { - minisketch_add_uint64(m_minisketch.get(), element); - return *this; - } - - /** Merge sketch into *this; both have to be valid Minisketch objects. - * See minisketch_merge for details. */ - Minisketch& Merge(const Minisketch& sketch) noexcept - { - minisketch_merge(m_minisketch.get(), sketch.m_minisketch.get()); - return *this; - } - - /** Decode this (valid) Minisketch object into the result vector, up to as many elements as the - * vector's size permits. */ - bool Decode(std::vector& result) const - { - ssize_t ret = minisketch_decode(m_minisketch.get(), result.size(), result.data()); - if (ret == -1) return false; - result.resize(ret); - return true; - } - - /** Get the serialized size in bytes for this (valid) Minisketch object.. */ - size_t GetSerializedSize() const noexcept { return minisketch_serialized_size(m_minisketch.get()); } - - /** Serialize this (valid) Minisketch object as a byte vector. */ - std::vector Serialize() const - { - std::vector result(GetSerializedSize()); - minisketch_serialize(m_minisketch.get(), result.data()); - return result; - } - - /** Deserialize into this (valid) Minisketch from an object containing its bytes (which has data() - * and size() members). */ - template - Minisketch& Deserialize( - const T& obj, - typename std::enable_if< - std::is_convertible::type (*)[], const unsigned char (*)[]>::value && - std::is_convertible::value, - std::nullptr_t - >::type = nullptr) noexcept - { - assert(GetSerializedSize() == obj.size()); - minisketch_deserialize(m_minisketch.get(), obj.data()); - return *this; - } - -#if __cplusplus >= 201703L - /** C++17 only: like Decode(), but up to a specified number of elements into an optional vector. */ - std::optional> Decode(size_t max_elements) const - { - std::vector result(max_elements); - ssize_t ret = minisketch_decode(m_minisketch.get(), max_elements, result.data()); - if (ret == -1) return {}; - result.resize(ret); - return result; - } - - /** C++17 only: similar to Decode(), but with specified false positive probability. */ - std::optional> DecodeFP(uint32_t fpbits) const - { - return Decode(ComputeMaxElements(GetBits(), GetCapacity(), fpbits)); - } -#endif // __cplusplus >= 201703L -}; -#endif // __cplusplus >= 201103L -#endif // __cplusplus - -#endif // _MINISKETCH_H_ diff --git a/include/secp256k1_ellswift.h b/include/secp256k1_ellswift.h deleted file mode 100644 index f79bd88396..0000000000 --- a/include/secp256k1_ellswift.h +++ /dev/null @@ -1,200 +0,0 @@ -#ifndef SECP256K1_ELLSWIFT_H -#define SECP256K1_ELLSWIFT_H - -#include "secp256k1.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* This module provides an implementation of ElligatorSwift as well as a - * version of x-only ECDH using it (including compatibility with BIP324). - * - * ElligatorSwift is described in https://eprint.iacr.org/2022/759 by - * Chavez-Saab, Rodriguez-Henriquez, and Tibouchi. It permits encoding - * uniformly chosen public keys as 64-byte arrays which are indistinguishable - * from uniformly random arrays. - * - * Let f be the function from pairs of field elements to point X coordinates, - * defined as follows (all operations modulo p = 2^256 - 2^32 - 977) - * f(u,t): - * - Let C = 0xa2d2ba93507f1df233770c2a797962cc61f6d15da14ecd47d8d27ae1cd5f852, - * a square root of -3. - * - If u=0, set u=1 instead. - * - If t=0, set t=1 instead. - * - If u^3 + t^2 + 7 = 0, multiply t by 2. - * - Let X = (u^3 + 7 - t^2) / (2 * t) - * - Let Y = (X + t) / (C * u) - * - Return the first in [u + 4 * Y^2, (-X/Y - u) / 2, (X/Y - u) / 2] that is an - * X coordinate on the curve (at least one of them is, for any u and t). - * - * Then an ElligatorSwift encoding of x consists of the 32-byte big-endian - * encodings of field elements u and t concatenated, where f(u,t) = x. - * The encoding algorithm is described in the paper, and effectively picks a - * uniformly random pair (u,t) among those which encode x. - * - * If the Y coordinate is relevant, it is given the same parity as t. - * - * Changes w.r.t. the the paper: - * - The u=0, t=0, and u^3+t^2+7=0 conditions result in decoding to the point - * at infinity in the paper. Here they are remapped to finite points. - * - The paper uses an additional encoding bit for the parity of y. Here the - * parity of t is used (negating t does not affect the decoded x coordinate, - * so this is possible). - * - * For mathematical background about the scheme, see the doc/ellswift.md file. - */ - -/** A pointer to a function used by secp256k1_ellswift_xdh to hash the shared X - * coordinate along with the encoded public keys to a uniform shared secret. - * - * Returns: 1 if a shared secret was successfully computed. - * 0 will cause secp256k1_ellswift_xdh to fail and return 0. - * Other return values are not allowed, and the behaviour of - * secp256k1_ellswift_xdh is undefined for other return values. - * Out: output: pointer to an array to be filled by the function - * In: x32: pointer to the 32-byte serialized X coordinate - * of the resulting shared point (will not be NULL) - * ell_a64: pointer to the 64-byte encoded public key of party A - * (will not be NULL) - * ell_b64: pointer to the 64-byte encoded public key of party B - * (will not be NULL) - * data: arbitrary data pointer that is passed through - */ -typedef int (*secp256k1_ellswift_xdh_hash_function)( - unsigned char *output, - const unsigned char *x32, - const unsigned char *ell_a64, - const unsigned char *ell_b64, - void *data -); - -/** An implementation of an secp256k1_ellswift_xdh_hash_function which uses - * SHA256(prefix64 || ell_a64 || ell_b64 || x32), where prefix64 is the 64-byte - * array pointed to by data. */ -SECP256K1_API const secp256k1_ellswift_xdh_hash_function secp256k1_ellswift_xdh_hash_function_prefix; - -/** An implementation of an secp256k1_ellswift_xdh_hash_function compatible with - * BIP324. It returns H_tag(ell_a64 || ell_b64 || x32), where H_tag is the - * BIP340 tagged hash function with tag "bip324_ellswift_xonly_ecdh". Equivalent - * to secp256k1_ellswift_xdh_hash_function_prefix with prefix64 set to - * SHA256("bip324_ellswift_xonly_ecdh")||SHA256("bip324_ellswift_xonly_ecdh"). - * The data argument is ignored. */ -SECP256K1_API const secp256k1_ellswift_xdh_hash_function secp256k1_ellswift_xdh_hash_function_bip324; - -/** Construct a 64-byte ElligatorSwift encoding of a given pubkey. - * - * Returns: 1 always. - * Args: ctx: pointer to a context object - * Out: ell64: pointer to a 64-byte array to be filled - * In: pubkey: a pointer to a secp256k1_pubkey containing an - * initialized public key - * rnd32: pointer to 32 bytes of randomness - * - * It is recommended that rnd32 consists of 32 uniformly random bytes, not - * known to any adversary trying to detect whether public keys are being - * encoded, though 16 bytes of randomness (padded to an array of 32 bytes, - * e.g., with zeros) suffice to make the result indistinguishable from - * uniform. The randomness in rnd32 must not be a deterministic function of - * the pubkey (it can be derived from the private key, though). - * - * It is not guaranteed that the computed encoding is stable across versions - * of the library, even if all arguments to this function (including rnd32) - * are the same. - * - * This function runs in variable time. - */ -SECP256K1_API int secp256k1_ellswift_encode( - const secp256k1_context *ctx, - unsigned char *ell64, - const secp256k1_pubkey *pubkey, - const unsigned char *rnd32 -) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3) SECP256K1_ARG_NONNULL(4); - -/** Decode a 64-bytes ElligatorSwift encoded public key. - * - * Returns: always 1 - * Args: ctx: pointer to a context object - * Out: pubkey: pointer to a secp256k1_pubkey that will be filled - * In: ell64: pointer to a 64-byte array to decode - * - * This function runs in variable time. - */ -SECP256K1_API int secp256k1_ellswift_decode( - const secp256k1_context *ctx, - secp256k1_pubkey *pubkey, - const unsigned char *ell64 -) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3); - -/** Compute an ElligatorSwift public key for a secret key. - * - * Returns: 1: secret was valid, public key was stored. - * 0: secret was invalid, try again. - * Args: ctx: pointer to a context object - * Out: ell64: pointer to a 64-byte array to receive the ElligatorSwift - * public key - * In: seckey32: pointer to a 32-byte secret key - * auxrnd32: (optional) pointer to 32 bytes of randomness - * - * Constant time in seckey and auxrnd32, but not in the resulting public key. - * - * It is recommended that auxrnd32 contains 32 uniformly random bytes, though - * it is optional (and does result in encodings that are indistinguishable from - * uniform even without any auxrnd32). It differs from the (mandatory) rnd32 - * argument to secp256k1_ellswift_encode in this regard. - * - * This function can be used instead of calling secp256k1_ec_pubkey_create - * followed by secp256k1_ellswift_encode. It is safer, as it uses the secret - * key as entropy for the encoding (supplemented with auxrnd32, if provided). - * - * Like secp256k1_ellswift_encode, this function does not guarantee that the - * computed encoding is stable across versions of the library, even if all - * arguments (including auxrnd32) are the same. - */ -SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_ellswift_create( - const secp256k1_context *ctx, - unsigned char *ell64, - const unsigned char *seckey32, - const unsigned char *auxrnd32 -) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3); - -/** Given a private key, and ElligatorSwift public keys sent in both directions, - * compute a shared secret using x-only Elliptic Curve Diffie-Hellman (ECDH). - * - * Returns: 1: shared secret was successfully computed - * 0: secret was invalid or hashfp returned 0 - * Args: ctx: pointer to a context object. - * Out: output: pointer to an array to be filled by hashfp. - * In: ell_a64: pointer to the 64-byte encoded public key of party A - * (will not be NULL) - * ell_b64: pointer to the 64-byte encoded public key of party B - * (will not be NULL) - * seckey32: a pointer to our 32-byte secret key - * party: boolean indicating which party we are: zero if we are - * party A, non-zero if we are party B. seckey32 must be - * the private key corresponding to that party's ell_?64. - * This correspondence is not checked. - * hashfp: pointer to a hash function. - * data: arbitrary data pointer passed through to hashfp. - * - * Constant time in seckey32. - * - * This function is more efficient than decoding the public keys, and performing - * ECDH on them. - */ -SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_ellswift_xdh( - const secp256k1_context *ctx, - unsigned char *output, - const unsigned char *ell_a64, - const unsigned char *ell_b64, - const unsigned char *seckey32, - int party, - secp256k1_ellswift_xdh_hash_function hashfp, - void *data -) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3) SECP256K1_ARG_NONNULL(4) SECP256K1_ARG_NONNULL(5) SECP256K1_ARG_NONNULL(7); - -#ifdef __cplusplus -} -#endif - -#endif /* SECP256K1_ELLSWIFT_H */ diff --git a/sage/secp256k1_params.sage b/sage/secp256k1_params.sage deleted file mode 100644 index 68f95adec4..0000000000 --- a/sage/secp256k1_params.sage +++ /dev/null @@ -1,39 +0,0 @@ -"""Prime order of finite field underlying secp256k1 (2^256 - 2^32 - 977)""" -P = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F - -"""Finite field underlying secp256k1""" -F = FiniteField(P) - -"""Elliptic curve secp256k1: y^2 = x^3 + 7""" -C = EllipticCurve([F(0), F(7)]) - -"""Base point of secp256k1""" -G = C.lift_x(0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798) -if int(G[1]) & 1: - # G.y is even - G = -G - -"""Prime order of secp256k1""" -N = C.order() - -"""Finite field of scalars of secp256k1""" -Z = FiniteField(N) - -""" Beta value of secp256k1 non-trivial endomorphism: lambda * (x, y) = (beta * x, y)""" -BETA = F(2)^((P-1)/3) - -""" Lambda value of secp256k1 non-trivial endomorphism: lambda * (x, y) = (beta * x, y)""" -LAMBDA = Z(3)^((N-1)/3) - -assert is_prime(P) -assert is_prime(N) - -assert BETA != F(1) -assert BETA^3 == F(1) -assert BETA^2 + BETA + 1 == 0 - -assert LAMBDA != Z(1) -assert LAMBDA^3 == Z(1) -assert LAMBDA^2 + LAMBDA + 1 == 0 - -assert Integer(LAMBDA)*G == C(BETA*G[0], G[1])