All Projects → opentimestamps → Opentimestamps Server

opentimestamps / Opentimestamps Server

Licence: other
OpenTimestamps server component

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Opentimestamps Server

Brainflayer
A proof-of-concept cracker for cryptocurrency brainwallets and other low entropy key alogrithms.
Stars: ✭ 561 (+292.31%)
Mutual labels:  bitcoin, cryptography
Blockchain Papers
区块链相关的有价值的文献
Stars: ✭ 20 (-86.01%)
Mutual labels:  bitcoin, cryptography
Blockchain
Compilation of useful documents and scientific papers about Blockchain & cryptocurrencies.
Stars: ✭ 751 (+425.17%)
Mutual labels:  bitcoin, cryptography
Bitcoin
Bitcoin Core integration/staging tree
Stars: ✭ 60,211 (+42005.59%)
Mutual labels:  bitcoin, cryptography
Python Opentimestamps
Stars: ✭ 64 (-55.24%)
Mutual labels:  bitcoin, cryptography
Lightning Onion
Onion Routed Micropayments for the Lightning Network
Stars: ✭ 297 (+107.69%)
Mutual labels:  bitcoin, cryptography
Ipchain
IPChain Core Wallet
Stars: ✭ 26 (-81.82%)
Mutual labels:  bitcoin, cryptography
Lopp.net
Personal web site of Jameson Lopp
Stars: ✭ 174 (+21.68%)
Mutual labels:  bitcoin, cryptography
Qtum
Qtum Core Wallet
Stars: ✭ 1,080 (+655.24%)
Mutual labels:  bitcoin, cryptography
Merkle Tools
Tools for creating Merkle trees, generating merkle proofs, and verification of merkle proofs.
Stars: ✭ 54 (-62.24%)
Mutual labels:  bitcoin, cryptography
Go Bip39
The BIP39 library for Go.
Stars: ✭ 238 (+66.43%)
Mutual labels:  bitcoin, cryptography
Bitcoin Cryptography Library
Nayuki's implementation of cryptographic primitives used in Bitcoin.
Stars: ✭ 81 (-43.36%)
Mutual labels:  bitcoin, cryptography
Opentimestamps Client
OpenTimestamps client
Stars: ✭ 197 (+37.76%)
Mutual labels:  bitcoin, cryptography
Lnd
Lightning Network Daemon ⚡️
Stars: ✭ 5,623 (+3832.17%)
Mutual labels:  bitcoin, cryptography
Firmware
❄️ Firmware and simulator for Coldcard Hardware Wallet
Stars: ✭ 198 (+38.46%)
Mutual labels:  bitcoin, cryptography
Aeternity
æternity: solving scalability problems by making sense of state-channels
Stars: ✭ 923 (+545.45%)
Mutual labels:  bitcoin, cryptography
Bot18
Bot18 is a high-frequency cryptocurrency trading bot developed by Zenbot creator @carlos8f
Stars: ✭ 157 (+9.79%)
Mutual labels:  bitcoin, cryptography
Bitcoinecdsa.php
PHP library to generate BTC addresses and signatures from private keys.
Stars: ✭ 169 (+18.18%)
Mutual labels:  bitcoin, cryptography
Exonum
An extensible open-source framework for creating private/permissioned blockchain applications
Stars: ✭ 1,037 (+625.17%)
Mutual labels:  bitcoin, cryptography
Lightning Rfc
Lightning Network Specifications
Stars: ✭ 1,224 (+755.94%)
Mutual labels:  bitcoin, cryptography

OpenTimestamps Calendar Server

This package provides the otsd daemon, a calendar server which provides aggregation, Bitcoin timestamping, and remote calendar services for OpenTimestamps clients. You do not need to run a server to use the OpenTimestamps protocol - public servers exist that are free to use. That said, running a server locally can be useful for developers of OpenTimestamps protocol clients, particularly with a local Bitcoin node running in regtest mode.

Installation

You'll need a local Bitcoin node version 0.17.1 with a wallet with some funds in it; a pruned node is fine. While otsd is running the wallet should not be used for other purposes, as currently the Bitcoin timestamping functionality assumes that it has exclusive use of the wallet.

Install the requirements:

pip3 install -r requirements.txt

Create the calendar:

mkdir -p ~/.otsd/calendar/
echo "http://127.0.0.1:14788" > ~/.otsd/calendar/uri
dd if=/dev/random of=~/.otsd/calendar/hmac-key bs=32 count=1

The URI determines what is put into the URI field of pending attestations returned by this calendar server. For a server used for testing, the above is fine; for production usage the URI should be set to a stable URL that OpenTimestamps clients will be able to access indefinitely.

The HMAC key should be kept secret; it's meant to allow for last-ditch calendar recovery from untrusted sources, although only part of the functionality is implemented. See the source code for more details!

To actually run the server, run the otsd program. Proper daemonization isn't implemented yet, so otsd runs in the foreground. To run in testnet or regtest, use the --btc-testnet or --btc-regtest options. The OpenTimestamps protocol does not distinguish between mainnet, testnet, and regtest, so make sure you don't mix them up!

To use your calendar server, tell your OpenTimestamps client to connect to it:

ots stamp -c http://127.0.0.1:14788 -m 1 FILE

OpenTimestamps clients have a whitelist of calendars they'll connect to automatically; you'll need to manually add your new server to that whitelist to use it when upgrading or verifying:

ots -l http://127.0.0.1:14788 upgrade FILE.ots

If your server is running on testnet or regtest, make sure to tell your client what chain to use when verifying. For example, regtest:

ots --btc-regtest -l http://127.0.0.1:14788 upgrade FILE.ots

Tip: with regtest you can mine blocks on demand to make your timestamp confirm with the generate RPC command. For example, to mine ten blocks instantly:

bitcoin-cli generate 10

By default otsd binds to localhost; otsd is not designed to be exposed directly to the public and requires a reverse proxy for production usage. An example configuration for nginx is provided under contrib/nginx.

Bitcoin core

Bitcoin node must be version 0.17.1 and the following options are needed:

deprecatedrpc=signrawtransaction
deprecatedrpc=accounts
addresstype=bech32

Unit tests

python3 -m unittest discover -v

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].