mirror of
https://github.com/seigler/dash-docs
synced 2025-07-27 09:46:12 +00:00
Merge remote-tracking branch 'bitcoin.org/master' into generatingtxes
Conflicts: _includes/references.md
This commit is contained in:
commit
ba1a33e712
25 changed files with 928 additions and 94 deletions
|
@ -36,6 +36,7 @@ change output:
|
||||||
change outputs: change output
|
change outputs: change output
|
||||||
child key:
|
child key:
|
||||||
child keys: child key
|
child keys: child key
|
||||||
|
child private and public keys: child key
|
||||||
child public key:
|
child public key:
|
||||||
child public keys: child public key
|
child public keys: child public key
|
||||||
coinbase: coinbase transaction
|
coinbase: coinbase transaction
|
||||||
|
@ -122,7 +123,9 @@ p2pkh:
|
||||||
p2sh:
|
p2sh:
|
||||||
p2sh multisig:
|
p2sh multisig:
|
||||||
parent chain code:
|
parent chain code:
|
||||||
|
parent key:
|
||||||
parent private key:
|
parent private key:
|
||||||
|
parent private and public keys: parent key
|
||||||
parent public key:
|
parent public key:
|
||||||
payment protocol:
|
payment protocol:
|
||||||
"payment protocol's": payment protocol
|
"payment protocol's": payment protocol
|
||||||
|
|
|
@ -112,6 +112,13 @@ aliases:
|
||||||
--author=Satoshi Nakamoto: Satoshi Nakamoto
|
--author=Satoshi Nakamoto: Satoshi Nakamoto
|
||||||
gavinandresen: Gavin Andresen
|
gavinandresen: Gavin Andresen
|
||||||
tcatm: Nils Schneider
|
tcatm: Nils Schneider
|
||||||
|
gmaxwell: Gregory Maxwell
|
||||||
|
sipa: Pieter Wuille
|
||||||
|
jgarzik: Jeff Garzik
|
||||||
|
petertodd: Peter Todd
|
||||||
|
luke-jr: Luke-Jr
|
||||||
|
laanwj: Wladimir J. van der Laan
|
||||||
|
mikehearn: Mike Hearn
|
||||||
|
|
||||||
safe: false
|
safe: false
|
||||||
server_port: 4000
|
server_port: 4000
|
||||||
|
|
|
@ -3,12 +3,7 @@
|
||||||
|
|
||||||
## Example: ruby ./_contrib/comparelinks.rb master newbranch > ../diff
|
## Example: ruby ./_contrib/comparelinks.rb master newbranch > ../diff
|
||||||
|
|
||||||
WORKDIR = `mktemp -d`
|
require 'tmpdir'
|
||||||
WORKDIR.gsub!("\n",'')
|
|
||||||
|
|
||||||
at_exit {
|
|
||||||
`rm -fr "#{WORKDIR}"`
|
|
||||||
}
|
|
||||||
|
|
||||||
def prompt(*args)
|
def prompt(*args)
|
||||||
print(*args)
|
print(*args)
|
||||||
|
@ -52,14 +47,18 @@ def fetchlinks()
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# Copy current repository to a temporary directory
|
Dir.mktmpdir{|workdir|
|
||||||
`rsync -a ./ "#{WORKDIR}/"`
|
|
||||||
|
|
||||||
# Build both version of the website and fetch all links
|
WORKDIR=workdir.gsub("\n",'')
|
||||||
oldlinks = {}
|
|
||||||
newlinks = {}
|
|
||||||
|
|
||||||
Dir.chdir(WORKDIR) do
|
# Copy current repository to a temporary directory
|
||||||
|
`rsync -a ./ "#{WORKDIR}/"`
|
||||||
|
|
||||||
|
# Build both version of the website and fetch all links
|
||||||
|
oldlinks = {}
|
||||||
|
newlinks = {}
|
||||||
|
|
||||||
|
Dir.chdir(WORKDIR) do
|
||||||
|
|
||||||
`git checkout #{srcbr}`
|
`git checkout #{srcbr}`
|
||||||
`jekyll`
|
`jekyll`
|
||||||
|
@ -69,26 +68,28 @@ Dir.chdir(WORKDIR) do
|
||||||
`jekyll`
|
`jekyll`
|
||||||
newlinks = fetchlinks()
|
newlinks = fetchlinks()
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# Find added links, removed links
|
# Find added links, removed links
|
||||||
diffaddlinks = []
|
diffaddlinks = []
|
||||||
diffrmlinks = []
|
diffrmlinks = []
|
||||||
newlinks.each { |link, etag|
|
newlinks.each { |link, etag|
|
||||||
next if oldlinks.has_key?(link)
|
next if oldlinks.has_key?(link)
|
||||||
diffaddlinks.push(link)
|
diffaddlinks.push(link)
|
||||||
}
|
}
|
||||||
oldlinks.each { |link, etag|
|
oldlinks.each { |link, etag|
|
||||||
next if newlinks.has_key?(link)
|
next if newlinks.has_key?(link)
|
||||||
diffrmlinks.push(link)
|
diffrmlinks.push(link)
|
||||||
}
|
}
|
||||||
|
|
||||||
# Display resulting diff
|
# Display resulting diff
|
||||||
diff = ''
|
diff = ''
|
||||||
if diffaddlinks.length > 0
|
if diffaddlinks.length > 0
|
||||||
diff = diff + "## links added\n\n" + diffaddlinks.join("\n") + "\n\n"
|
diff = diff + "## links added\n\n" + diffaddlinks.join("\n") + "\n\n"
|
||||||
end
|
end
|
||||||
if diffrmlinks.length > 0
|
if diffrmlinks.length > 0
|
||||||
diff = diff + "## links removed\n\n" + diffrmlinks.join("\n") + "\n\n"
|
diff = diff + "## links removed\n\n" + diffrmlinks.join("\n") + "\n\n"
|
||||||
end
|
end
|
||||||
print diff
|
print diff
|
||||||
|
|
||||||
|
}
|
||||||
|
|
9
_events/2014-09-26-bitcoinconferencekiev.md
Normal file
9
_events/2014-09-26-bitcoinconferencekiev.md
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
---
|
||||||
|
date: 2014-09-26
|
||||||
|
title: "Bitcoin Conference Kiev 2014"
|
||||||
|
venue: "Kiev Loft"
|
||||||
|
address: "Degtiarivska, 5"
|
||||||
|
city: "Kiev"
|
||||||
|
country: "Ukraine"
|
||||||
|
link: "http://bitcoinconf.com.ua/en/"
|
||||||
|
---
|
9
_events/cryptolina
Normal file
9
_events/cryptolina
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
---
|
||||||
|
date: 2014-08-15
|
||||||
|
title: "Cryptolina Bitcoin Conference"
|
||||||
|
venue: "Raleigh Convention Center"
|
||||||
|
address: "500 S Salisbury Street"
|
||||||
|
city: "Raleigh, NC"
|
||||||
|
country: "United States"
|
||||||
|
link: "http://www.cryptolina.com/"
|
||||||
|
---
|
|
@ -2,11 +2,259 @@
|
||||||
|
|
||||||
{% autocrossref %}
|
{% autocrossref %}
|
||||||
|
|
||||||
Bitcoin wallets at their core are a collection of private keys. These collections are stored digitally in a file, or can even be physically stored on pieces of paper.
|
A Bitcoin wallet can refer to either a wallet program or a wallet file.
|
||||||
|
Wallet programs create public keys to receive satoshis and use the
|
||||||
|
corresponding private keys to spend those satoshis. Wallet files
|
||||||
|
store private keys and (optionally) other information related to
|
||||||
|
transactions for the wallet program.
|
||||||
|
|
||||||
|
Wallet programs and wallet files are addressed below in separate
|
||||||
|
subsections, and this document attempts to always make it clear whether
|
||||||
|
we're talking about wallet programs or wallet files.
|
||||||
|
|
||||||
{% endautocrossref %}
|
{% endautocrossref %}
|
||||||
|
|
||||||
### Private Key Formats
|
### Wallet Programs
|
||||||
|
|
||||||
|
{% autocrossref %}
|
||||||
|
|
||||||
|
Permitting receiving and spending of satoshis is the only essential
|
||||||
|
feature of wallet software---but a particular wallet program doesn't
|
||||||
|
need to do both things. Two wallet programs can work together, one
|
||||||
|
program distributing public keys in order to receive satoshis and
|
||||||
|
another program signing transactions spending those satoshis.
|
||||||
|
|
||||||
|
Wallet programs also need to interact with the peer-to-peer network to
|
||||||
|
get information from the block chain and to broadcast new transactions.
|
||||||
|
However, the programs which distribute public keys or sign transactions
|
||||||
|
don't need to interact with the peer-to-peer network themselves.
|
||||||
|
|
||||||
|
This leaves us with three necessary, but separable, parts of a wallet
|
||||||
|
system: a public key distribution program, a signing program, and a
|
||||||
|
networked program. In the subsections below, we will describe common
|
||||||
|
combinations of these parts.
|
||||||
|
|
||||||
|
Note: we speak about distributing public keys generically. In many
|
||||||
|
cases, P2PKH or P2SH hashes will be distributed instead of public keys,
|
||||||
|
with the actual public keys only being distributed when the outputs
|
||||||
|
they control are spent.
|
||||||
|
|
||||||
|
{% endautocrossref %}
|
||||||
|
|
||||||
|
#### Full-Service Wallets
|
||||||
|
|
||||||
|
{% autocrossref %}
|
||||||
|
|
||||||
|
The simplest wallet is a program which performs all three functions: it
|
||||||
|
generates private keys, derives the corresponding public keys, helps
|
||||||
|
distribute those public keys as necessary, monitors for outputs spent to
|
||||||
|
those public keys, creates and signs transactions spending those
|
||||||
|
outputs, and broadcasts the signed transactions.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
As of this writing, almost all popular wallets can be used as
|
||||||
|
full-service wallets.
|
||||||
|
|
||||||
|
The main advantage of full-service wallets is that they are easy to use.
|
||||||
|
A single program does everything the user needs to receive and spend
|
||||||
|
satoshis.
|
||||||
|
|
||||||
|
The main disadvantage of full-service wallets is that they store the
|
||||||
|
private keys on a device connected to the Internet. The compromise of
|
||||||
|
such devices is a common occurrence, and an Internet connection makes it
|
||||||
|
easy to transmit private keys from a compromised device to an attacker.
|
||||||
|
|
||||||
|
To help protect against theft, many wallet programs offer users the
|
||||||
|
option of encrypting the wallet files which contain the private keys.
|
||||||
|
This protects the private keys when they aren't being used, but it
|
||||||
|
cannot protect against an attack designed to capture the encryption
|
||||||
|
key or to read the decrypted keys from memory.
|
||||||
|
|
||||||
|
{% endautocrossref %}
|
||||||
|
|
||||||
|
|
||||||
|
#### Signing-Only Wallets
|
||||||
|
|
||||||
|
{% autocrossref %}
|
||||||
|
|
||||||
|
To increase security, private keys can be generated and stored by a
|
||||||
|
separate wallet program operating in a more secure environment. These
|
||||||
|
signing-only wallets work in conjunction with a networked wallet which
|
||||||
|
interacts with the peer-to-peer network.
|
||||||
|
|
||||||
|
Signing-only wallets programs typically use deterministic key creation
|
||||||
|
(described in a later subsection) to create parent private and public
|
||||||
|
keys which can create child private and public keys.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
When first run, the signing-only wallet creates a parent private key and
|
||||||
|
transfers the corresponding parent public key to the networked wallet.
|
||||||
|
|
||||||
|
The networked wallet uses the parent public key to derive child public
|
||||||
|
keys, optionally helps distribute them, monitors for outputs spent to
|
||||||
|
those public keys, creates unsigned transactions spending those outputs,
|
||||||
|
and transfers the unsigned transactions to the signing-only wallet.
|
||||||
|
|
||||||
|
Often, users are given a chance to review the unsigned transactions' details
|
||||||
|
(particularly the output details) using the signing-only wallet.
|
||||||
|
|
||||||
|
After the optional review step, the offline wallet uses the parent
|
||||||
|
private key to derive the appropriate child private keys and signs the
|
||||||
|
transactions, giving the signed transactions back to the networked wallet.
|
||||||
|
|
||||||
|
The networked wallet then broadcasts the signed transactions to the
|
||||||
|
peer-to-peer network.
|
||||||
|
|
||||||
|
The following subsections describe the two most common variants of
|
||||||
|
signing-only wallets: offline wallets and hardware wallets.
|
||||||
|
|
||||||
|
{% endautocrossref %}
|
||||||
|
|
||||||
|
##### Offline Wallets
|
||||||
|
|
||||||
|
{% autocrossref %}
|
||||||
|
|
||||||
|
Several full-service wallets programs will also operate as two separate
|
||||||
|
wallets: one program instance acting as a signing-only wallet (often called an
|
||||||
|
"offline wallet") and the other program instance acting as the networked
|
||||||
|
wallet (often called an "online wallet" or "watching-only wallet").
|
||||||
|
|
||||||
|
The offline wallet is so named because it is intended to be run on a
|
||||||
|
device which does not connect to any network, greatly reducing the
|
||||||
|
number of attack vectors. If this is the case, it is usually up to the
|
||||||
|
user to handle all data transfer using removable media such as USB
|
||||||
|
drives. The user's workflow is something like:
|
||||||
|
|
||||||
|
1. (Offline) Disable all network connections on a device and install the wallet
|
||||||
|
software. Start the wallet software in offline mode to create the
|
||||||
|
parent private and public keys. Copy the parent public key to
|
||||||
|
removable media.
|
||||||
|
|
||||||
|
2. (Online) Install the wallet software on another device, this one
|
||||||
|
connected to the Internet, and import the parent public key from the
|
||||||
|
removable media. As you would with a full-service wallet, distribute
|
||||||
|
public keys to receive payment. When ready to spend satoshis, fill in
|
||||||
|
the output details and save the unsigned transaction generated by the
|
||||||
|
wallet to removable media.
|
||||||
|
|
||||||
|
3. (Offline) Open the unsigned transaction in the offline instance,
|
||||||
|
review the output details to make sure they spend the correct
|
||||||
|
amount to the correct address. This prevents malware on the online
|
||||||
|
wallet from tricking the user into signing a transaction which pays
|
||||||
|
an attacker. After review, sign the transaction and save it to
|
||||||
|
removable media.
|
||||||
|
|
||||||
|
4. (Online) Open the signed transaction in the online instance so it can
|
||||||
|
broadcast it to the peer-to-peer network.
|
||||||
|
|
||||||
|
The primary advantage of offline wallets is their possibility for
|
||||||
|
greatly improved security over full-service wallets. As long as the
|
||||||
|
offline wallet is not compromised (or flawed) and the user reviews all outgoing
|
||||||
|
transactions before signing, the user's satoshis are safe even if the
|
||||||
|
online wallet is compromised.
|
||||||
|
|
||||||
|
The primary disadvantage of offline wallets is hassle. For maximum
|
||||||
|
security, they require the user dedicate a device to only offline tasks.
|
||||||
|
The offline device must be booted up whenever funds are to be spent, and
|
||||||
|
the user must physically copy data from the online device to the offline
|
||||||
|
device and back.
|
||||||
|
|
||||||
|
{% endautocrossref %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### Hardware Wallets
|
||||||
|
|
||||||
|
{% autocrossref %}
|
||||||
|
|
||||||
|
Hardware wallets are devices dedicated to running a signing-only wallet.
|
||||||
|
Their dedication lets them eliminate many of the vulnerabilities
|
||||||
|
present in operating systems designed for general use, allowing them
|
||||||
|
to safely communicate directly with other devices so users don't need to
|
||||||
|
transfer data manually. The user's workflow is something like:
|
||||||
|
|
||||||
|
1. (Hardware) Create parent private and public keys. Connect hardware
|
||||||
|
wallet to a networked device so it can get the parent public key.
|
||||||
|
|
||||||
|
2. (Networked) As you would with a full-service wallet, distribute
|
||||||
|
public keys to receive payment. When ready to spend satoshis, fill in
|
||||||
|
the transaction details, connect the hardware wallet, and click
|
||||||
|
Spend. The networked wallet will automatically send the transaction
|
||||||
|
details to the hardware wallet.
|
||||||
|
|
||||||
|
3. (Hardware) Review the transaction details on the hardware wallet's
|
||||||
|
screen. Some hardware wallets may prompt for a passphrase or PIN
|
||||||
|
number. The hardware wallet signs the transaction and uploads it to
|
||||||
|
the networked wallet.
|
||||||
|
|
||||||
|
4. (Networked) The networked wallet receives the signed transaction from
|
||||||
|
the hardware wallet and broadcasts it to the network.
|
||||||
|
|
||||||
|
The primary advantage of hardware wallets is their possibility for
|
||||||
|
greatly improved security over full-service wallets with much less
|
||||||
|
hassle than offline wallets.
|
||||||
|
|
||||||
|
The primary disadvantage of hardware wallets is their hassle. Even
|
||||||
|
though the hassle is less than that of offline wallets, the user must
|
||||||
|
still purchase a hardware wallet device and carry it with them whenever
|
||||||
|
they need to make a transaction using the signing-only wallet.
|
||||||
|
|
||||||
|
An additional (hopefully temporary) disadvantage is that, as of this
|
||||||
|
writing, very few popular wallet programs support hardware
|
||||||
|
wallets---although almost all popular wallet programs have announced
|
||||||
|
their intention to support at least one model of hardware wallet.
|
||||||
|
|
||||||
|
{% endautocrossref %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#### Distributing-Only Wallets
|
||||||
|
|
||||||
|
{% autocrossref %}
|
||||||
|
|
||||||
|
Wallet programs which run in difficult-to-secure environments, such as
|
||||||
|
webservers, can be designed to distribute public keys (including P2PKH
|
||||||
|
or P2SH addresses) and nothing more. There are two common ways to
|
||||||
|
design these minimalist wallets:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
* Pre-populate a database with a number of public keys or addresses, and
|
||||||
|
then distribute on request an output script or address using one of
|
||||||
|
the database entries. To [avoid key reuse][devguide avoiding key
|
||||||
|
reuse], webservers should keep track
|
||||||
|
of used keys and never run out of public keys. This can be made easier
|
||||||
|
by using parent public keys as suggested in the next method.
|
||||||
|
|
||||||
|
* Use a parent public key to create child public keys. To avoid key
|
||||||
|
reuse, a method must be used to ensure the same public key isn't
|
||||||
|
distributed twice. This can be a database entry for each key
|
||||||
|
distributed or an incrementing pointer to the current child key
|
||||||
|
index number.
|
||||||
|
|
||||||
|
Neither method adds a significant amount of overhead, especially if a
|
||||||
|
database is used anyway to associate each incoming payment with a
|
||||||
|
separate public key for payment tracking. See the [Payment
|
||||||
|
Processing][devguide payment processing] section for details.
|
||||||
|
|
||||||
|
{% endautocrossref %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Wallet Files
|
||||||
|
|
||||||
|
{% autocrossref %}
|
||||||
|
|
||||||
|
Bitcoin wallets at their core are a collection of private keys. These
|
||||||
|
collections are stored digitally in a file, or can even be physically
|
||||||
|
stored on pieces of paper.
|
||||||
|
|
||||||
|
{% endautocrossref %}
|
||||||
|
|
||||||
|
#### Private Key Formats
|
||||||
|
|
||||||
{% autocrossref %}
|
{% autocrossref %}
|
||||||
|
|
||||||
|
@ -16,7 +264,7 @@ Private keys are what are used to unlock satoshis from a particular address. In
|
||||||
|
|
||||||
{% endautocrossref %}
|
{% endautocrossref %}
|
||||||
|
|
||||||
#### Wallet Import Format (WIF)
|
##### Wallet Import Format (WIF)
|
||||||
|
|
||||||
{% autocrossref %}
|
{% autocrossref %}
|
||||||
|
|
||||||
|
@ -40,7 +288,7 @@ The process is easily reversible, using the Base58 decoding function, and removi
|
||||||
|
|
||||||
{% endautocrossref %}
|
{% endautocrossref %}
|
||||||
|
|
||||||
#### Mini Private Key Format
|
##### Mini Private Key Format
|
||||||
|
|
||||||
{% autocrossref %}
|
{% autocrossref %}
|
||||||
|
|
||||||
|
@ -62,7 +310,7 @@ address utility].
|
||||||
{% endautocrossref %}
|
{% endautocrossref %}
|
||||||
|
|
||||||
|
|
||||||
### Hierarchical Deterministic Key Creation
|
#### Hierarchical Deterministic Key Creation
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
For consistent word ordering:
|
For consistent word ordering:
|
||||||
|
@ -109,7 +357,7 @@ sum divided by a global constant used by all Bitcoin software (*G*):
|
||||||
|
|
||||||
This means that two or more independent programs which agree on a
|
This means that two or more independent programs which agree on a
|
||||||
sequence of integers can create a series of unique [child key][]{:#term-child-key}{:.term} pairs from
|
sequence of integers can create a series of unique [child key][]{:#term-child-key}{:.term} pairs from
|
||||||
a single parent key pair without any further communication.
|
a single [parent key][]{:#term-parent-key}{:.term} pair without any further communication.
|
||||||
Moreover, the program which distributes new public keys for receiving
|
Moreover, the program which distributes new public keys for receiving
|
||||||
payment can do so without any access to the private keys, allowing the
|
payment can do so without any access to the private keys, allowing the
|
||||||
public key distribution program to run on a possibly-insecure platform such as
|
public key distribution program to run on a possibly-insecure platform such as
|
||||||
|
@ -211,7 +459,7 @@ which makes them special.
|
||||||
|
|
||||||
{% endautocrossref %}
|
{% endautocrossref %}
|
||||||
|
|
||||||
#### Hardened Keys
|
##### Hardened Keys
|
||||||
|
|
||||||
{% autocrossref %}
|
{% autocrossref %}
|
||||||
|
|
||||||
|
@ -300,7 +548,7 @@ for the full HD protocol specification.
|
||||||
|
|
||||||
{% endautocrossref %}
|
{% endautocrossref %}
|
||||||
|
|
||||||
#### Storing Root Seeds
|
##### Storing Root Seeds
|
||||||
|
|
||||||
{% autocrossref %}
|
{% autocrossref %}
|
||||||
|
|
||||||
|
@ -335,7 +583,7 @@ For implementation details, please see BIP39.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Loose-Key Wallets
|
#### Loose-Key Wallets
|
||||||
|
|
||||||
{% autocrossref %}
|
{% autocrossref %}
|
||||||
|
|
||||||
|
|
|
@ -86,6 +86,7 @@
|
||||||
[P2SH]: /en/developer-guide#term-p2sh "A script which Pays To Script Hashes (P2SH), allowing convenient spending of satoshis to an address referencing a script"
|
[P2SH]: /en/developer-guide#term-p2sh "A script which Pays To Script Hashes (P2SH), allowing convenient spending of satoshis to an address referencing a script"
|
||||||
[P2SH multisig]: /en/developer-guide#term-p2sh-multisig "A multisig script embedded in the redeemScript of a pay-to-script-hash (P2SH) transaction"
|
[P2SH multisig]: /en/developer-guide#term-p2sh-multisig "A multisig script embedded in the redeemScript of a pay-to-script-hash (P2SH) transaction"
|
||||||
[parent chain code]: /en/developer-guide#term-parent-chain-code "A chain code which has helped create child public or private keys"
|
[parent chain code]: /en/developer-guide#term-parent-chain-code "A chain code which has helped create child public or private keys"
|
||||||
|
[parent key]: /en/developer-guide#term-parent-key "In HD wallets, a key capable of deriving child keys"
|
||||||
[parent private key]: /en/developer-guide#term-parent-private-key "A private key which has created child private keys"
|
[parent private key]: /en/developer-guide#term-parent-private-key "A private key which has created child private keys"
|
||||||
[parent public key]: /en/developer-guide#term-parent-public-key "A public key corresponding to a parent private key which has child private keys"
|
[parent public key]: /en/developer-guide#term-parent-public-key "A public key corresponding to a parent private key which has child private keys"
|
||||||
[payment protocol]: /en/developer-guide#term-payment-protocol "The protocol defined in BIP70 which lets spenders get signed payment details from receivers"
|
[payment protocol]: /en/developer-guide#term-payment-protocol "The protocol defined in BIP70 which lets spenders get signed payment details from receivers"
|
||||||
|
@ -100,7 +101,6 @@
|
||||||
[private keys]: /en/developer-guide#term-private-key "The private portion of a keypair which can create signatures which other people can verify using the public key"
|
[private keys]: /en/developer-guide#term-private-key "The private portion of a keypair which can create signatures which other people can verify using the public key"
|
||||||
[pubkey hash]: /en/developer-guide#term-pubkey-hash "The hash of a public key which can be included in a P2PKH output"
|
[pubkey hash]: /en/developer-guide#term-pubkey-hash "The hash of a public key which can be included in a P2PKH output"
|
||||||
[public key]: /en/developer-guide#term-public-key "The public portion of a keypair which can be safely distributed to other people so they can verify a signature created with the corresponding private key"
|
[public key]: /en/developer-guide#term-public-key "The public portion of a keypair which can be safely distributed to other people so they can verify a signature created with the corresponding private key"
|
||||||
[public keys]: /en/developer-guide#term-public-key "The public portion of a keypair which can be safely distributed to other people so they can verify a signature created with the corresponding private key"
|
|
||||||
[pp amount]: /en/developer-examples#term-pp-amount "Part of the Output part of the PaymentDetails part of a payment protocol where receivers can specify the amount of satoshis they want paid to a particular output script"
|
[pp amount]: /en/developer-examples#term-pp-amount "Part of the Output part of the PaymentDetails part of a payment protocol where receivers can specify the amount of satoshis they want paid to a particular output script"
|
||||||
[pp expires]: /en/developer-examples#term-pp-expires "The expires field of a PaymentDetails where the receiver tells the spender when the PaymentDetails expires"
|
[pp expires]: /en/developer-examples#term-pp-expires "The expires field of a PaymentDetails where the receiver tells the spender when the PaymentDetails expires"
|
||||||
[pp memo]: /en/developer-examples#term-pp-memo "The memo fields of PaymentDetails, Payment, and PaymentACK which allow spenders and receivers to send each other memos"
|
[pp memo]: /en/developer-examples#term-pp-memo "The memo fields of PaymentDetails, Payment, and PaymentACK which allow spenders and receivers to send each other memos"
|
||||||
|
@ -179,6 +179,8 @@
|
||||||
[DER]: https://en.wikipedia.org/wiki/Abstract_Syntax_Notation_One
|
[DER]: https://en.wikipedia.org/wiki/Abstract_Syntax_Notation_One
|
||||||
[devex payment protocol]: /en/developer-examples#payment-protocol
|
[devex payment protocol]: /en/developer-examples#payment-protocol
|
||||||
[devguide]: /en/developer-guide
|
[devguide]: /en/developer-guide
|
||||||
|
[devguide avoiding key reuse]: /en/developer-guide#avoiding-key-reuse
|
||||||
|
[devguide payment processing]: /en/developer-guide#payment-processing
|
||||||
[devguide wallets]: /en/developer-guide#wallets
|
[devguide wallets]: /en/developer-guide#wallets
|
||||||
[devref wallets]: /en/developer-reference#wallets
|
[devref wallets]: /en/developer-reference#wallets
|
||||||
[docs issue]: https://github.com/bitcoin/bitcoin.org/issues
|
[docs issue]: https://github.com/bitcoin/bitcoin.org/issues
|
||||||
|
|
|
@ -224,7 +224,7 @@ body{
|
||||||
display:inline;
|
display:inline;
|
||||||
}
|
}
|
||||||
|
|
||||||
.eventtable div div{
|
.listtable div div{
|
||||||
zoom:1;
|
zoom:1;
|
||||||
display:inline;
|
display:inline;
|
||||||
}
|
}
|
||||||
|
|
|
@ -184,6 +184,12 @@ h2 .rssicon{
|
||||||
border-right:1px solid #e0e0e0;
|
border-right:1px solid #e0e0e0;
|
||||||
margin-right:-1px
|
margin-right:-1px
|
||||||
}
|
}
|
||||||
|
.start div div div a,
|
||||||
|
.start div div div a:link,
|
||||||
|
.start div div div a:active,
|
||||||
|
.start div div div a:visited{
|
||||||
|
padding:0 8px;
|
||||||
|
}
|
||||||
|
|
||||||
.foundation-banner a,
|
.foundation-banner a,
|
||||||
.foundation-banner a:link,
|
.foundation-banner a:link,
|
||||||
|
|
|
@ -977,10 +977,11 @@ table td,table th{
|
||||||
font-size:80%;
|
font-size:80%;
|
||||||
}
|
}
|
||||||
.contributors span{
|
.contributors span{
|
||||||
padding:6px 0;
|
padding:8px 0;
|
||||||
width:170px;
|
width:170px;
|
||||||
overflow:hidden;
|
overflow:hidden;
|
||||||
display:inline-block;
|
display:inline-block;
|
||||||
|
vertical-align:top;
|
||||||
}
|
}
|
||||||
|
|
||||||
.resources{
|
.resources{
|
||||||
|
|
|
@ -4,56 +4,83 @@
|
||||||
|
|
||||||
require 'open-uri'
|
require 'open-uri'
|
||||||
require 'json'
|
require 'json'
|
||||||
require 'yaml'
|
|
||||||
|
|
||||||
module Jekyll
|
module Jekyll
|
||||||
|
|
||||||
class CategoryGenerator < Generator
|
class CategoryGenerator < Generator
|
||||||
def fetch_contributors
|
|
||||||
page = 1
|
def contributors(aliases)
|
||||||
contributors = []
|
contributors = []
|
||||||
|
# Call GitHub API with 100 results per page
|
||||||
|
page = 1
|
||||||
|
data = []
|
||||||
while page < 10 do
|
while page < 10 do
|
||||||
begin
|
begin
|
||||||
ar = JSON.parse(open("https://api.github.com/repos/bitcoin/bitcoin/contributors?page=#{page}&per_page=100","User-Agent"=>"Ruby/#{RUBY_VERSION}").read)
|
ar = JSON.parse(open("https://api.github.com/repos/bitcoin/bitcoin/contributors?page=#{page}&per_page=100","User-Agent"=>"Ruby/#{RUBY_VERSION}").read)
|
||||||
|
# Prevent any error to stop the build process, return an empty array instead
|
||||||
rescue
|
rescue
|
||||||
print 'GitHub API Call Failed!'
|
print 'GitHub API Call Failed!'
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
|
if !ar.is_a?(Array)
|
||||||
|
print 'GitHub API Call Failed!'
|
||||||
|
return contributors
|
||||||
|
end
|
||||||
|
if ar.length > 100
|
||||||
|
print 'GitHub API exceeding the 100 results limit!'
|
||||||
|
return contributors
|
||||||
|
end
|
||||||
|
# Stop calling GitHub API when no new results are returned
|
||||||
break if (ar.length == 0)
|
break if (ar.length == 0)
|
||||||
contributors.push(*ar)
|
# Merge contributors into a single array
|
||||||
|
data.push(*ar)
|
||||||
page += 1
|
page += 1
|
||||||
end
|
end
|
||||||
|
# Loop in returned results array
|
||||||
contributors.map do |x|
|
result = {}
|
||||||
x['name'] = x['login'] unless x.has_key?('name')
|
for c in data
|
||||||
x['name'] = x['login'] if x['name'] == ""
|
# Skip incomplete / invalid data and set contributor's name
|
||||||
|
next if !c.is_a?(Hash)
|
||||||
x
|
next if !c.has_key?('contributions') or !c['contributions'].is_a?(Integer) or c['contributions'] > 1000000
|
||||||
|
if c.has_key?('name') and c['name'].is_a?(String) and /^[A-Za-z0-9\-]{1,150}$/.match(c['name'])
|
||||||
|
name = c['name']
|
||||||
|
elsif c.has_key?('login') and c['login'].is_a?(String) and /^[A-Za-z0-9\-]{1,150}$/.match(c['login'])
|
||||||
|
name = c['login']
|
||||||
|
else
|
||||||
|
next
|
||||||
|
end
|
||||||
|
# Replace name by its corresponding alias if defined in _config.yml
|
||||||
|
name = aliases[name] if aliases.has_key?(name)
|
||||||
|
# Assign variables
|
||||||
|
x = {}
|
||||||
|
x['name'] = name
|
||||||
|
x['contributions'] = c['contributions']
|
||||||
|
# Set gravatar_id when available
|
||||||
|
if c.has_key?('gravatar_id') and c['gravatar_id'].is_a?(String) and /^[A-Za-z0-9\-]{1,150}$/.match(c['gravatar_id'])
|
||||||
|
x['gravatar_id'] = c['gravatar_id']
|
||||||
|
end
|
||||||
|
# Set login when available
|
||||||
|
if c.has_key?('login') and c['login'].is_a?(String) and /^[A-Za-z0-9\-]{1,150}$/.match(c['login'])
|
||||||
|
x['login'] = c['login']
|
||||||
|
end
|
||||||
|
# Add new contributor to the array, or increase contributions if it already exists
|
||||||
|
if result.has_key?(name)
|
||||||
|
result[name]['contributions'] += x['contributions']
|
||||||
|
else
|
||||||
|
result[name] = x
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
# Generate final ordered contributors array
|
||||||
def merge_contributors(contributors, aliases)
|
result.each do |key, value|
|
||||||
contributors = contributors.map do |c|
|
contributors.push(value)
|
||||||
c['name'] = aliases[c['name']] if aliases.has_key?(c['name'])
|
|
||||||
|
|
||||||
c
|
|
||||||
end
|
end
|
||||||
|
contributors.sort_by{|c| - c['contributions']}
|
||||||
hoaoh = contributors.reduce({}) do |result, item|
|
|
||||||
result.merge({ item['name'] => [item] }) { |key, old, new| old[0]['contributions'] += new[0]['contributions']; old }
|
|
||||||
end
|
|
||||||
|
|
||||||
hoaoh.values.map { |sublist|
|
|
||||||
sublist.reduce({}) do |merged,h|
|
|
||||||
merged.merge(h) do |key,old,new| (key=='name' ? old : old+new) end
|
|
||||||
end
|
|
||||||
}.flatten
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def generate(site)
|
def generate(site)
|
||||||
|
# Set site.contributors global variables for liquid/jekyll
|
||||||
class << site
|
class << site
|
||||||
attr_accessor :contributors
|
attr_accessor :contributors
|
||||||
|
|
||||||
alias contrib_site_payload site_payload
|
alias contrib_site_payload site_payload
|
||||||
def site_payload
|
def site_payload
|
||||||
h = contrib_site_payload
|
h = contrib_site_payload
|
||||||
|
@ -63,8 +90,8 @@ module Jekyll
|
||||||
h
|
h
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
# Populate site.contributors array
|
||||||
site.contributors = merge_contributors(fetch_contributors(), site.config['aliases']).sort_by{|c| - c['contributions']}
|
site.contributors = contributors(site.config['aliases'])
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -30,6 +30,21 @@ id: choose-your-wallet
|
||||||
<a href="#" onclick="return false;"><img src="/img/clients/lo-bitcoinwallet.png" alt="bitcoin wallet" />Bitcoin<br>Wallet</a>
|
<a href="#" onclick="return false;"><img src="/img/clients/lo-bitcoinwallet.png" alt="bitcoin wallet" />Bitcoin<br>Wallet</a>
|
||||||
</div>
|
</div>
|
||||||
{% case page.lang %}
|
{% case page.lang %}
|
||||||
|
{% when 'ar' or 'bg' or 'de' or 'es' or 'fa' or 'fr' or 'hu' or 'id' or 'it' or 'nl' or 'pl' or 'pt_BR' or 'ro' or 'ru' or 'sv' or 'tr' or 'zh_CN' or 'zh_TW' %}
|
||||||
|
{% else %}
|
||||||
|
<div>
|
||||||
|
<div>
|
||||||
|
<div>
|
||||||
|
<h2>Hive Android</h2>
|
||||||
|
<span><img src="/img/os/android.png" alt="Android" title="Android" /></span>
|
||||||
|
<p>{% translate wallethive-android %}</p>
|
||||||
|
<p><a href="https://www.hivewallet.com">{% translate walletvisit %}</a></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a href="#" onclick="return false;"><img src="/img/clients/lo-hive.png" alt="hive" />Hive<br>Android</a>
|
||||||
|
</div>
|
||||||
|
{% endcase %}
|
||||||
|
{% case page.lang %}
|
||||||
{% when 'ar' or 'fa' or 'id' or 'nl' or 'pl' or 'tr' or 'zh_TW' %}
|
{% when 'ar' or 'fa' or 'id' or 'nl' or 'pl' or 'tr' or 'zh_TW' %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<div data-id="mycelium">
|
<div data-id="mycelium">
|
||||||
|
@ -76,13 +91,13 @@ id: choose-your-wallet
|
||||||
<div>
|
<div>
|
||||||
<div>
|
<div>
|
||||||
<div>
|
<div>
|
||||||
<h2>Hive</h2>
|
<h2>Hive OS X</h2>
|
||||||
<span><img src="/img/os/osx-uni.png" alt="Mac OS X" title="Mac OS X" /></span>
|
<span><img src="/img/os/osx-uni.png" alt="Mac OS X" title="Mac OS X" /></span>
|
||||||
<p>{% translate wallethive %}</p>
|
<p>{% translate wallethive %}</p>
|
||||||
<p><a href="https://www.hivewallet.com">{% translate walletvisit %}</a></p>
|
<p><a href="https://www.hivewallet.com">{% translate walletvisit %}</a></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<a href="#" onclick="return false;"><img src="/img/clients/lo-hive.png" alt="hive" />Hive</a>
|
<a href="#" onclick="return false;"><img src="/img/clients/lo-hive.png" alt="hive" />Hive OS X</a>
|
||||||
</div>
|
</div>
|
||||||
{% endcase %}
|
{% endcase %}
|
||||||
<div>
|
<div>
|
||||||
|
@ -251,14 +266,14 @@ id: choose-your-wallet
|
||||||
<div>
|
<div>
|
||||||
<div class="b1"></div>
|
<div class="b1"></div>
|
||||||
<div class="b2">
|
<div class="b2">
|
||||||
<h2>Hive</h2>
|
<h2>Hive OS X</h2>
|
||||||
<span><img src="/img/os/osx-uni.png" alt="Mac OS X" title="Mac OS X" /></span>
|
<span><img src="/img/os/osx-uni.png" alt="Mac OS X" title="Mac OS X" /></span>
|
||||||
<p class="hyphenate">{% translate wallethive %}</p>
|
<p class="hyphenate">{% translate wallethive %}</p>
|
||||||
<p><a href="https://www.hivewallet.com">{% translate walletvisit %}</a></p>
|
<p><a href="https://www.hivewallet.com">{% translate walletvisit %}</a></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="b3"></div>
|
<div class="b3"></div>
|
||||||
</div>
|
</div>
|
||||||
<a href="#" onclick="return false;"><img src="/img/clients/lo-hive.png" alt="hive" />Hive</a>
|
<a href="#" onclick="return false;"><img src="/img/clients/lo-hive.png" alt="hive" />Hive OS X</a>
|
||||||
</div>
|
</div>
|
||||||
{% endcase %}
|
{% endcase %}
|
||||||
<div>
|
<div>
|
||||||
|
@ -304,6 +319,23 @@ id: choose-your-wallet
|
||||||
<a href="#" onclick="return false;"><img src="/img/clients/lo-bitcoinwallet.png" alt="bitcoin wallet" />Bitcoin<br>Wallet</a>
|
<a href="#" onclick="return false;"><img src="/img/clients/lo-bitcoinwallet.png" alt="bitcoin wallet" />Bitcoin<br>Wallet</a>
|
||||||
</div>
|
</div>
|
||||||
{% case page.lang %}
|
{% case page.lang %}
|
||||||
|
{% when 'ar' or 'bg' or 'de' or 'es' or 'fa' or 'fr' or 'hu' or 'id' or 'it' or 'nl' or 'pl' or 'pt_BR' or 'ro' or 'ru' or 'sv' or 'tr' or 'zh_CN' or 'zh_TW' %}
|
||||||
|
{% else %}
|
||||||
|
<div>
|
||||||
|
<div>
|
||||||
|
<div class="b1"></div>
|
||||||
|
<div class="b2">
|
||||||
|
<h2>Hive Android</h2>
|
||||||
|
<span><img src="/img/os/android.png" alt="Android" title="Android" /></span>
|
||||||
|
<p class="hyphenate">{% translate wallethive-android %}</p>
|
||||||
|
<p><a href="https://www.hivewallet.com">{% translate walletvisit %}</a></p>
|
||||||
|
</div>
|
||||||
|
<div class="b3"></div>
|
||||||
|
</div>
|
||||||
|
<a href="#" onclick="return false;"><img src="/img/clients/lo-hive.png" alt="hive" />Hive<br>Android</a>
|
||||||
|
</div>
|
||||||
|
{% endcase %}
|
||||||
|
{% case page.lang %}
|
||||||
{% when 'ar' or 'fa' or 'id' or 'nl' or 'pl' or 'tr' or 'zh_TW' %}
|
{% when 'ar' or 'fa' or 'id' or 'nl' or 'pl' or 'tr' or 'zh_TW' %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<div data-id="mycelium">
|
<div data-id="mycelium">
|
||||||
|
|
|
@ -9,6 +9,7 @@ id: community
|
||||||
<div>
|
<div>
|
||||||
<div>
|
<div>
|
||||||
<h2><img src="/img/ico_invoice.svg" class="titleicon" alt="Icon">{% translate forums %}</h2>
|
<h2><img src="/img/ico_invoice.svg" class="titleicon" alt="Icon">{% translate forums %}</h2>
|
||||||
|
{% if page.lang == 'bg' %}<p><a href="http://bitcoinbg.eu/forum/">BitcoinBG.eu</a></p>{% endif %}
|
||||||
{% if page.lang == 'bg' %}<p><a href="http://hash.bg/forum/">Hash.bg</a></p>{% endif %}
|
{% if page.lang == 'bg' %}<p><a href="http://hash.bg/forum/">Hash.bg</a></p>{% endif %}
|
||||||
{% if page.lang == 'es' %}<p><a href="http://forobitco.in/">ForoBitco.in en Español</a></p>{% endif %}
|
{% if page.lang == 'es' %}<p><a href="http://forobitco.in/">ForoBitco.in en Español</a></p>{% endif %}
|
||||||
{% if page.lang == 'es' %}<p><a href="http://www.forobtc.com/">Foro Bitcoin en Español</a></p>{% endif %}
|
{% if page.lang == 'es' %}<p><a href="http://www.forobtc.com/">Foro Bitcoin en Español</a></p>{% endif %}
|
||||||
|
|
|
@ -77,7 +77,7 @@ id: development
|
||||||
<div class="contributors">{% for c in site.contributors %}
|
<div class="contributors">{% for c in site.contributors %}
|
||||||
<span>
|
<span>
|
||||||
{% if c.gravatar_id %}<img class="icon" height="16" width="16" src="https://secure.gravatar.com/avatar/{{c.gravatar_id}}?s=140&d=mm" alt="icon" />{% else %}<img class="icon" height="16" width="16" alt="icon" />{% endif %}
|
{% if c.gravatar_id %}<img class="icon" height="16" width="16" src="https://secure.gravatar.com/avatar/{{c.gravatar_id}}?s=140&d=mm" alt="icon" />{% else %}<img class="icon" height="16" width="16" alt="icon" />{% endif %}
|
||||||
{% if c.login %}<a href="https://github.com/{{c.login}}">{{ c.name }} ({{ c.contributions }})</a>{% else %}{{ c.name }} ({{ c.contributions }}){% endif %}
|
{% if c.login %}<a href="https://github.com/{{c.login}}">{{ c.name | htmlescape }} ({{ c.contributions }})</a>{% else %}<a>{{ c.name | htmlescape }} ({{ c.contributions }})</a>{% endif %}
|
||||||
</span>{% endfor %}
|
</span>{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
|
@ -218,7 +218,7 @@ de:
|
||||||
scaletxt1: "Das Bitcoin Netzwerk kann bereits eine größere Anzahl von Transaktionen pro Sekunde verarbeiten, als es es im Moment der Fall ist. Trotzdem ist es noch nicht so weit, dass es das Niveau großer Kreditkartennetzwerke erreicht. An der Aufhebung aktueller Einschränkungen wird bereits gearbeitet und zukünftige Anforderungen sind bekannt. Seit der Einführung befindet sich alles im Bitcoinnetzwerk in einem ständigen Reife-, Verbesserungs- und Spezialisierungsprozess, und es muss davon ausgegangen werden, dass dieser noch einige Jahre andauert. Mit steigenden Wachstum werden mehr und mehr Nutzer leichtgewichtigere Clients nutzen und größere Netzwerkknoten werden eher zu spezialisierten Diensten. Weitere Informationen finden Sie im Wiki auf der Seite zur <a href=\"https://en.bitcoin.it/wiki/Scalability\">Skalierbarkeit</a>."
|
scaletxt1: "Das Bitcoin Netzwerk kann bereits eine größere Anzahl von Transaktionen pro Sekunde verarbeiten, als es es im Moment der Fall ist. Trotzdem ist es noch nicht so weit, dass es das Niveau großer Kreditkartennetzwerke erreicht. An der Aufhebung aktueller Einschränkungen wird bereits gearbeitet und zukünftige Anforderungen sind bekannt. Seit der Einführung befindet sich alles im Bitcoinnetzwerk in einem ständigen Reife-, Verbesserungs- und Spezialisierungsprozess, und es muss davon ausgegangen werden, dass dieser noch einige Jahre andauert. Mit steigenden Wachstum werden mehr und mehr Nutzer leichtgewichtigere Clients nutzen und größere Netzwerkknoten werden eher zu spezialisierten Diensten. Weitere Informationen finden Sie im Wiki auf der Seite zur <a href=\"https://en.bitcoin.it/wiki/Scalability\">Skalierbarkeit</a>."
|
||||||
legal: "Rechtliches"
|
legal: "Rechtliches"
|
||||||
islegal: "Ist Bitcoin legal?"
|
islegal: "Ist Bitcoin legal?"
|
||||||
islegaltxt1: "Unserem besten Wissen nach ist Bitcoin, dem Gesetz nach, <a href=\"http://www.bitlegal.io/\">in keinem Gerichtsstand illegal</a>. Manche Gerichtsstände (wie Argentinien und Russland) jedoch beschränken oder verbieten Fremdwährungen komplett. Andere Gerichtsstände (wie Thailand) können die Lizensierung bestimmer Unternehmen wie Bitcoinbörsen begrenzen."
|
islegaltxt1: "Unserem besten Wissen nach ist Bitcoin, dem Gesetz nach, <a href=\"http://bitlegal.io/\">in fast keinem Gerichtsstand illegal</a>. Manche Gerichtsstände (wie Argentinien und Russland) jedoch beschränken oder verbieten Fremdwährungen komplett. Andere Gerichtsstände (wie Thailand) können die Lizensierung bestimmter Unternehmen wie Bitcoinbörsen begrenzen."
|
||||||
islegaltxt2: "Aufsichtsbehörden verschiedener Länder unternehmen Schritte, um Einzelpersonen und Firmen Regeln zur Verfügung zu stellen, wie diese neue Technologie in das formelle, regulierte Finanzsystem zu integrieren ist. Zum Beispiel hat das Financial Crimes Enforcement Network (FinCEN), eine Abteilung des Finanzministeriums der Vereinigten Staaten, unverbindliche Leitlinien herausgegeben, wie es bestimmte Aktivitäten virtuelle Währungen betreffend charakterisiert."
|
islegaltxt2: "Aufsichtsbehörden verschiedener Länder unternehmen Schritte, um Einzelpersonen und Firmen Regeln zur Verfügung zu stellen, wie diese neue Technologie in das formelle, regulierte Finanzsystem zu integrieren ist. Zum Beispiel hat das Financial Crimes Enforcement Network (FinCEN), eine Abteilung des Finanzministeriums der Vereinigten Staaten, unverbindliche Leitlinien herausgegeben, wie es bestimmte Aktivitäten virtuelle Währungen betreffend charakterisiert."
|
||||||
illegalactivities: "Ist Bitcoin nützlich für illegale Aktivitäten?"
|
illegalactivities: "Ist Bitcoin nützlich für illegale Aktivitäten?"
|
||||||
illegalactivitiestxt1: "Bitcoin ist Geld, und Geld wurde schon immer für legale und illegale Zwecke genutzt. Bargeld, Kreditkarten und das gewöhnliche Bankensystem übertreffen Bitcoin bei weitem, wenn es um den Nutzen, kriminelle Geschäfte zu finanzieren, geht. Bitcoin könnte den Zahlungsverkehr revolutionieren und es wird häufig angenommen, dass die Vorteile solcher Innovationen ihre möglichen Nachteile in den Schatten stellen."
|
illegalactivitiestxt1: "Bitcoin ist Geld, und Geld wurde schon immer für legale und illegale Zwecke genutzt. Bargeld, Kreditkarten und das gewöhnliche Bankensystem übertreffen Bitcoin bei weitem, wenn es um den Nutzen, kriminelle Geschäfte zu finanzieren, geht. Bitcoin könnte den Zahlungsverkehr revolutionieren und es wird häufig angenommen, dass die Vorteile solcher Innovationen ihre möglichen Nachteile in den Schatten stellen."
|
||||||
|
@ -228,9 +228,9 @@ de:
|
||||||
regulatedtxt1: "Das Bitcoin-Protokoll selbst kann nicht modifiziert werden ohne das Zusammenwirken fast all seiner Nutzer, die wählen welche Software sie verwenden. Der Versuch, einer lokalen Authorität spezielle Rechte im globalen Bitcoin-Netzwerk zuzuweisen, wäre nicht praktikabel. Jede wohlhabende Organisation könnte in \"Mining\" Hardware investieren um so die Kontrolle über die Hälfte der Rechenleistung des Netzwerks zu erlangen und in der Lage zu sein neue Transaktionen zu blockieren oder rückgängig zu machen. Jedoch gibt es keine Garantie, dass sie diese Macht behalten könnten, da es nötig wäre ebensoviel wie alle anderen Miner auf der Welt zu investieren."
|
regulatedtxt1: "Das Bitcoin-Protokoll selbst kann nicht modifiziert werden ohne das Zusammenwirken fast all seiner Nutzer, die wählen welche Software sie verwenden. Der Versuch, einer lokalen Authorität spezielle Rechte im globalen Bitcoin-Netzwerk zuzuweisen, wäre nicht praktikabel. Jede wohlhabende Organisation könnte in \"Mining\" Hardware investieren um so die Kontrolle über die Hälfte der Rechenleistung des Netzwerks zu erlangen und in der Lage zu sein neue Transaktionen zu blockieren oder rückgängig zu machen. Jedoch gibt es keine Garantie, dass sie diese Macht behalten könnten, da es nötig wäre ebensoviel wie alle anderen Miner auf der Welt zu investieren."
|
||||||
regulatedtxt2: "Es ist jedoch möglich, die Nutzung von Bitcoin in ähnlicher Weise zu regulieren, wie bei jedem anderen Finanzinstrument. Wie der Dollar kann Bitcoin für eine Vielzahl von Zwecken benutzt werden, von denen einige je nach Rechtslage der Länder, entweder als rechtskonform oder nicht rechtskonform angesehen werden können. In dieser Hisicht ist Bitcoin nicht anders als jedes andere Instrument und kann in jedem Land anderen Regelungen unterworfen sein. Die Nutzung von Bitcoin könnte durch restriktive Regelungen auch stark eingeschränkt sein, wodurch es schwer ist vorherzusagen, wie viele Nutzer die Technologie weiter nutzen würden. Eine Regierung, die sich entschließt Bitcoin zu verbieten, würde die Entwicklung von inländischen Unternehmen und Märkten verhindern und die Innovationen in andere Länder verschieben. Die Herausforderung für die Regulatoren ist es, wie immer, effiziente Lösungen zu finden ohne das Wachstum neuer aufstrebender Märkte und Unternehmen zu beeinträchtigen."
|
regulatedtxt2: "Es ist jedoch möglich, die Nutzung von Bitcoin in ähnlicher Weise zu regulieren, wie bei jedem anderen Finanzinstrument. Wie der Dollar kann Bitcoin für eine Vielzahl von Zwecken benutzt werden, von denen einige je nach Rechtslage der Länder, entweder als rechtskonform oder nicht rechtskonform angesehen werden können. In dieser Hisicht ist Bitcoin nicht anders als jedes andere Instrument und kann in jedem Land anderen Regelungen unterworfen sein. Die Nutzung von Bitcoin könnte durch restriktive Regelungen auch stark eingeschränkt sein, wodurch es schwer ist vorherzusagen, wie viele Nutzer die Technologie weiter nutzen würden. Eine Regierung, die sich entschließt Bitcoin zu verbieten, würde die Entwicklung von inländischen Unternehmen und Märkten verhindern und die Innovationen in andere Länder verschieben. Die Herausforderung für die Regulatoren ist es, wie immer, effiziente Lösungen zu finden ohne das Wachstum neuer aufstrebender Märkte und Unternehmen zu beeinträchtigen."
|
||||||
taxes: "Was ist mit Bitcoin und Steuern?"
|
taxes: "Was ist mit Bitcoin und Steuern?"
|
||||||
taxestxt1: "Bitcoin ist in keinem Land ein anerkanntes gesetzliches Zahlungsmittel, aber oft können Steuerschulden unabhängig vom verwendeten Medium auflaufen. Es gibt eine große Bandbreite von Vorschriften in vielen verschiedenen Ländern, die Einkommens-, Umsatz-, Lohn-, Kapitalertrags-, oder eine andere Form der Steuerschuld bei der Nutzung von Bitcoin hervorrufen können."
|
taxestxt1: "Bitcoin ist in keinem Gerichtstand als Fiatgeld, das den Status als anerkanntes gesetzliches Zahlungsmittel hat, anerkannt, aber oft können Steuerschulden unabhängig vom verwendeten Medium auflaufen. Es gibt eine große Bandbreite von Vorschriften in vielen verschiedenen Ländern, die Einkommens-, Umsatz-, Lohn-, Kapitalertrags-, oder eine andere Form der Steuerschuld bei der Nutzung von Bitcoin hervorrufen können."
|
||||||
consumer: "Was ist mit Bitcoin und Verbraucherschutz?"
|
consumer: "Was ist mit Bitcoin und Verbraucherschutz?"
|
||||||
consumertxt1: "Bitcoin ermöglicht es Personen, Transaktionen unter ihren eigenen Bedingungen durchzuführen. Jeder Nutzer kann Zahlungen in einer ähnlichen Weise wie bei Bargeld senden und empfangen, aber man kann auch an komplexeren Verträgen teilhaben.\nMehrfache Signaturen ermöglichen es, dass Transaktionen erst dann vom Netzwerk akzeptiert werden, wenn eine bestimmte Anzahl von einer definierten Gruppe von Personen die Transaktion signieren. Dies ermöglicht zukünftig die Entwicklung von innovativen Vermittlungsdiensleistungen. Solche Dienste könnten es Dritten ermöglichen, eine Transaktion zu bestätigen oder abzulehnen im Falle einer Meinungsverschiedenheit zwischen den anderen Parteien, ohne Kontrolle über das Geld zu haben. Im Gegensatz zu Bargeld oder anderen Zahlungsmethoden hinterlässt Bitcoin immer einen öffentlichen Beweis, dass eine Transaktion stattgefunden hat, was unter Umständen in einem Regress gegen Geschäfte mit betrügerischen Praktiken verwendet werden kann.\n "
|
consumertxt1: "Bitcoin ermöglicht es Personen, Transaktionen unter ihren eigenen Bedingungen durchzuführen. Jeder Nutzer kann Zahlungen in einer ähnlichen Weise wie bei Bargeld senden und empfangen, aber man kann auch an komplexeren Verträgen teilhaben.\nMehrfache Signaturen ermöglichen es, dass Transaktionen erst dann vom Netzwerk akzeptiert werden, wenn eine bestimmte Anzahl von einer definierten Gruppe von Personen die Transaktion signieren. Dies ermöglicht zukünftig die Entwicklung von innovativen Vermittlungsdienstleistungen. Solche Dienste könnten es Dritten ermöglichen, eine Transaktion zu bestätigen oder abzulehnen im Falle einer Meinungsverschiedenheit zwischen den anderen Parteien, ohne Kontrolle über das Geld zu haben. Im Gegensatz zu Bargeld oder anderen Zahlungsmethoden hinterlässt Bitcoin immer einen öffentlichen Beweis, dass eine Transaktion stattgefunden hat, was unter Umständen in einem Regress gegen Geschäfte mit betrügerischen Praktiken verwendet werden kann.\n "
|
||||||
consumertxt2: "Normalerweise sind Händler von ihrem Ruf in der Öffentlichkeit abhängig, wenn sie ihre Geschäftstätigkeit fortführen und ihre Mitarbeiter bezahlen wollen, gleichzeitig haben Händler keinen Zugriff auf ähnlich umfangreiche Informationen, wenn diese mit Kunden zu tun haben. Die Art und Weise, wie Bitcoin funktioniert, garantiert sowohl Einzelpersonen und als auch Unternehmen den Schutz vor Rückbuchungsbetrug. Der Kunde hat hingegen die Möglichkeit, nach mehr Absicherung zu verlangen, wenn er einem bestimmten Verkäufer nicht vertraut."
|
consumertxt2: "Normalerweise sind Händler von ihrem Ruf in der Öffentlichkeit abhängig, wenn sie ihre Geschäftstätigkeit fortführen und ihre Mitarbeiter bezahlen wollen, gleichzeitig haben Händler keinen Zugriff auf ähnlich umfangreiche Informationen, wenn diese mit Kunden zu tun haben. Die Art und Weise, wie Bitcoin funktioniert, garantiert sowohl Einzelpersonen und als auch Unternehmen den Schutz vor Rückbuchungsbetrug. Der Kunde hat hingegen die Möglichkeit, nach mehr Absicherung zu verlangen, wenn er einem bestimmten Verkäufer nicht vertraut."
|
||||||
economy: "Ökonomie"
|
economy: "Ökonomie"
|
||||||
bitcoinscreated: "Wie werden Bitcoins erzeugt?"
|
bitcoinscreated: "Wie werden Bitcoins erzeugt?"
|
||||||
|
@ -266,7 +266,7 @@ de:
|
||||||
bettercurrencytxt1: "Das kann passieren. Vorläufig bleibt Bitcoin die bei weitem populärste dezentralisierte virtuelle Währung, aber es gibt keine Garantie, dass es an dieser Position verbleibt. Es gibt mittlerweile einige andere alternative Währungen, die von Bitcoin inspiriert sind. Es ist jedoch sicher richtig, anzunehmen, dass signifikante Verbesserungen für eine neue Währung nötig wären, um Bitcoin in Bezug auf einen etablierten Markt zu überholen, obwohl dies unvorhersehbar ist. Auch könnte Bitcoin möglicherweise Verbesserungen einer konkurrierenden Währung übernehmen, solange dies keine grundlegenden Teile des Protokolls verändert. "
|
bettercurrencytxt1: "Das kann passieren. Vorläufig bleibt Bitcoin die bei weitem populärste dezentralisierte virtuelle Währung, aber es gibt keine Garantie, dass es an dieser Position verbleibt. Es gibt mittlerweile einige andere alternative Währungen, die von Bitcoin inspiriert sind. Es ist jedoch sicher richtig, anzunehmen, dass signifikante Verbesserungen für eine neue Währung nötig wären, um Bitcoin in Bezug auf einen etablierten Markt zu überholen, obwohl dies unvorhersehbar ist. Auch könnte Bitcoin möglicherweise Verbesserungen einer konkurrierenden Währung übernehmen, solange dies keine grundlegenden Teile des Protokolls verändert. "
|
||||||
transactions: "Transaktionen"
|
transactions: "Transaktionen"
|
||||||
tenminutes: "Wieso muss ich 10 Minuten warten?"
|
tenminutes: "Wieso muss ich 10 Minuten warten?"
|
||||||
tenminutestxt1: "Mit Bitcoin erhält man eine Zahlung nahezu unverzüglich. Es gibt jedoch eine im Durchschnitt 10-minütige Verzögerung bevor das Netzwerk ihre Transaktion bestätigt, indem sie sie in einen Block einschließt und bevor Sie die erhaltenen Bitcoins ausgeben können. Eine Bestätigung bedeutet, dass es im Netzwerk eine Übereinkunft darüber gibt, dass die Bitcoins, die Sie erhalten haben nicht an jemand anderem gesendet wurden und als ihr Eigentum angesehen werden können. Sobald ihre Transaktion in einem Block eingeschlossen wurde, wird diese fortlaufend von jedem neuen darauf folgenden Block begraben, was die Übereinkunft exponentiell verstärkt und das Risiko verkleinert, dass eine Transaktion rückgängig gemacht werden kann. Jeder Nutzer kann frei bestimmern an welchem Punkt er eine Transaktion als bestätigt betrachtet, aber 6 Bestätigungen werden oft als so sicher angesehen wie das 6-monatige Warten auf eine Kreditkarten-Transaktion"
|
tenminutestxt1: "Mit Bitcoin erhält man eine Zahlung nahezu unverzüglich. Es gibt jedoch eine im Durchschnitt 10-minütige Verzögerung bevor das Netzwerk ihre Transaktion bestätigt, indem sie sie in einen Block einschließt und bevor Sie die erhaltenen Bitcoins ausgeben können. Eine Bestätigung bedeutet, dass es im Netzwerk eine Übereinkunft darüber gibt, dass die Bitcoins, die Sie erhalten haben nicht an jemand anderem gesendet wurden und als ihr Eigentum angesehen werden können. Sobald ihre Transaktion in einem Block eingeschlossen wurde, wird diese fortlaufend von jedem neuen darauf folgenden Block begraben, was die Übereinkunft exponentiell verstärkt und das Risiko verkleinert, dass eine Transaktion rückgängig gemacht werden kann. Jeder Nutzer kann frei bestimmen an welchem Punkt er eine Transaktion als bestätigt betrachtet, aber 6 Bestätigungen werden oft als so sicher angesehen wie das 6-monatige Warten auf eine Kreditkarten-Transaktion"
|
||||||
fee: "Wie groß wird die Transaktionsgebühr sein?"
|
fee: "Wie groß wird die Transaktionsgebühr sein?"
|
||||||
feetxt1: "Die meisten Transaktionen können ohne Gebühren vorgenommen werden, aber die Nutzer sind angehalten, eine kleine freiwillige Gebühr zu bezahlen, um eine schnellere Bestätigung ihrer Transaktionen zu erhalten und die Miner zu entlohnen. Falls Gebühren notwendig sind, dann überschreiten sie generell nicht den Gegenwert von ein paar Cent. Falls notwendig, wird normalerweise Ihr Bitcoin Client versuchen, eine angemessene Gebühr zu schätzen."
|
feetxt1: "Die meisten Transaktionen können ohne Gebühren vorgenommen werden, aber die Nutzer sind angehalten, eine kleine freiwillige Gebühr zu bezahlen, um eine schnellere Bestätigung ihrer Transaktionen zu erhalten und die Miner zu entlohnen. Falls Gebühren notwendig sind, dann überschreiten sie generell nicht den Gegenwert von ein paar Cent. Falls notwendig, wird normalerweise Ihr Bitcoin Client versuchen, eine angemessene Gebühr zu schätzen."
|
||||||
feetxt2: "Transaktionsgebühren dienen als Schutz gegen Nutzer, die Transaktionen senden, um das Netzwerk zu überlasten. Die genaue Methode, nach der Gebühren funktionieren, wird noch entwickelt und sich über die Zeit ändern. Da die Gebühr in keinen Bezug zur Summe der gesendeten Bitcoins steht, kann sie entweder sehr niedrig (0.0005 BTC für eine Übertragung von 1000 BTC) oder unverhältnismäßig hoch(0.004 BTC für eine Zahlung von 0.02 BTC) sein. Die Gebühr wird durch Eigenschaften wie den Daten der Transaktion und Transaktion-Wiederholung festgelegt. Wenn sie zum Beispiel eine große Zahl von kleinen Summen erhalten, werden Gebühren für das Senden höher sein. Solche Zahlungen sind vergleichbar mit dem Zahlen einer Restaurantrechnung nur mit Cents. Das zügige Ausgeben von kleinen Mengen ihrer Bitcoins kann ebenso eine Gebühr erfordern. Wenn ihre Aktivität dem Muster normaler Transaktionen folgt, sollten die Gebühren sehr niedrig bleiben."
|
feetxt2: "Transaktionsgebühren dienen als Schutz gegen Nutzer, die Transaktionen senden, um das Netzwerk zu überlasten. Die genaue Methode, nach der Gebühren funktionieren, wird noch entwickelt und sich über die Zeit ändern. Da die Gebühr in keinen Bezug zur Summe der gesendeten Bitcoins steht, kann sie entweder sehr niedrig (0.0005 BTC für eine Übertragung von 1000 BTC) oder unverhältnismäßig hoch(0.004 BTC für eine Zahlung von 0.02 BTC) sein. Die Gebühr wird durch Eigenschaften wie den Daten der Transaktion und Transaktion-Wiederholung festgelegt. Wenn sie zum Beispiel eine große Zahl von kleinen Summen erhalten, werden Gebühren für das Senden höher sein. Solche Zahlungen sind vergleichbar mit dem Zahlen einer Restaurantrechnung nur mit Cents. Das zügige Ausgeben von kleinen Mengen ihrer Bitcoins kann ebenso eine Gebühr erfordern. Wenn ihre Aktivität dem Muster normaler Transaktionen folgt, sollten die Gebühren sehr niedrig bleiben."
|
||||||
|
@ -342,7 +342,7 @@ de:
|
||||||
balances: "Kontostände<a class=\"titlelight\"> - Blockkette</a>"
|
balances: "Kontostände<a class=\"titlelight\"> - Blockkette</a>"
|
||||||
balancestxt: "Die Blockkette ist ein gemeinsames <b>öffentliches Buchungssystem</b>, auf dem das gesamte Bitcoinnetzwerk basiert. Alle bestätigten Buchungen werden in der Blockkette gespeichert. Auf diese Art können Bitcoin Wallets ihren Kontostand berechnen und neue Transaktionen können nur ausgeführt werden, wenn die Bitcoins dem Sender tatsächlich gehören. Die Integrität und die chronologische Reihenfolge der Blockkette werden durch <a href=\"#vocabulary##[vocabulary.cryptography]\">Kryptographie</a> sichergestellt."
|
balancestxt: "Die Blockkette ist ein gemeinsames <b>öffentliches Buchungssystem</b>, auf dem das gesamte Bitcoinnetzwerk basiert. Alle bestätigten Buchungen werden in der Blockkette gespeichert. Auf diese Art können Bitcoin Wallets ihren Kontostand berechnen und neue Transaktionen können nur ausgeführt werden, wenn die Bitcoins dem Sender tatsächlich gehören. Die Integrität und die chronologische Reihenfolge der Blockkette werden durch <a href=\"#vocabulary##[vocabulary.cryptography]\">Kryptographie</a> sichergestellt."
|
||||||
transactions: "Transaktionen<a class=\"titlelight\"> - privater Schlüssel</a>"
|
transactions: "Transaktionen<a class=\"titlelight\"> - privater Schlüssel</a>"
|
||||||
transactionstxt: "Eine Transaktion ist <b>ein Transfer eines Betrags zwischen Bitcoin-Wallets</b>, der in die Blockkette eingetragen wird. Bitcoin-Wallets haben einen geheimen Datenblock der <a href=\"#vocabulary##[vocabulary.privatekey]\"><i>privater Schlüssel</i></a> oder \"Seed\" genannt wird, welcher verwendet wird, um Transaktionen zu signieren, indem ein mathematischer Beweis erbracht wird, dass sie vom Eigentümer der Wallet kommen. Die <a href=\"#vocabulary##[vocabulary.signature]\"><i>Signatur</i></a> verhindert auch, dass die Transaktion nach dem Absenden von jemandem modifiziert werden kann. Alle Transaktionen werden unter den Nutzern verbreitet und in den folgenden 10 Minuten vom Netzwerk durch einen Prozess namens <a href=\"#vocabulary##[vocabulary.mining]\"><i>Mining</i></a> bestätigt."
|
transactionstxt: "Eine Transaktion ist <b>ein Transfer eines Betrags zwischen Bitcoin-Wallets</b>, der in die Blockkette eingetragen wird. Bitcoin-Wallets haben einen geheimen Datenblock der <a href=\"#vocabulary##[vocabulary.privatekey]\"><i>privater Schlüssel</i></a> oder \"Seed\" genannt wird, welcher verwendet wird, um Transaktionen zu signieren, indem ein mathematischer Beweis erbracht wird, dass sie vom Eigentümer der Wallet kommen. Die <a href=\"#vocabulary##[vocabulary.signature]\"><i>Signatur</i></a> verhindert auch, dass die Transaktion nach dem Absenden von jemandem modifiziert werden kann. Alle Transaktionen werden unter den Nutzern verbreitet und innerhalb von 10 Minuten beginnt die Bestätigung durch das Netzwerk mit Hilfe einens Prozess, genannt <a href=\"#vocabulary##[vocabulary.mining]\"><i>Mining</i></a> ."
|
||||||
processing: "Verarbeitung<a class=\"titlelight\"> - Mining</a>"
|
processing: "Verarbeitung<a class=\"titlelight\"> - Mining</a>"
|
||||||
processingtxt: "Mining ist ein <b>verteiltes Konsens-System</b> das verwendet wird, um wartende Transaktionen zu <a href=\"#vocabulary##[vocabulary.confirmation]\"><i>bestätigen</i></a>, indem sie in die Blockkette aufgenommen werden. Es erzwingt eine chronologische Reihenfolge der Blockkette, schützt die Neutralität des Netzwerks und ermöglicht verschiedenen Computern, sich über den Status des Systems einig zu sein. Um bestätigt zu werden, müssen Transaktionen in einen <a href=\"#vocabulary##[vocabulary.block]\"><i>Block</i></a> gepackt werden. Dieser muss sehr strengen kryptographischen Regeln enstprechen, die durch das Netzwerk verifiziert werden. Diese Regeln verhindern, dass vorherige Blöcke modifiziert werden können, denn eine Änderung würde alle folgenden Blöcke ungültig machen. Mining erzeugt auch das Equivalent einer Lotterie mit starker Konkurrenz, die verhindert, dass eine Einzelperson einfach neue aufeinanderfolgende Blöcke in die Blockkette einfügen kann. Auf diese Weise wird sichergestellt, dass keine Einzelpersonen kontrollieren können was in die Blockkette eingefügt wird, oder Teile der Blockkette modifizieren können, um eigene Ausgaben rückgängig zu machen."
|
processingtxt: "Mining ist ein <b>verteiltes Konsens-System</b> das verwendet wird, um wartende Transaktionen zu <a href=\"#vocabulary##[vocabulary.confirmation]\"><i>bestätigen</i></a>, indem sie in die Blockkette aufgenommen werden. Es erzwingt eine chronologische Reihenfolge der Blockkette, schützt die Neutralität des Netzwerks und ermöglicht verschiedenen Computern, sich über den Status des Systems einig zu sein. Um bestätigt zu werden, müssen Transaktionen in einen <a href=\"#vocabulary##[vocabulary.block]\"><i>Block</i></a> gepackt werden. Dieser muss sehr strengen kryptographischen Regeln enstprechen, die durch das Netzwerk verifiziert werden. Diese Regeln verhindern, dass vorherige Blöcke modifiziert werden können, denn eine Änderung würde alle folgenden Blöcke ungültig machen. Mining erzeugt auch das Equivalent einer Lotterie mit starker Konkurrenz, die verhindert, dass eine Einzelperson einfach neue aufeinanderfolgende Blöcke in die Blockkette einfügen kann. Auf diese Weise wird sichergestellt, dass keine Einzelpersonen kontrollieren können was in die Blockkette eingefügt wird, oder Teile der Blockkette modifizieren können, um eigene Ausgaben rückgängig zu machen."
|
||||||
readmore: "Hinunter in den Kaninchenbau"
|
readmore: "Hinunter in den Kaninchenbau"
|
||||||
|
@ -533,9 +533,9 @@ de:
|
||||||
irreversible: "Bitcoin-Zahlungen sind nicht umkehrbar"
|
irreversible: "Bitcoin-Zahlungen sind nicht umkehrbar"
|
||||||
irreversibletxt: "Zahlungen mit Bitcoin können nicht rückgängig gemacht werden, sie können nur durch den Empfänger zurückgezahlt werden. Daher sollten Sie nur mit Personen und Organisationen handeln, die Sie kennen und denen Sie vertrauen. Der Part der Unternehmen besteht darin, die Kontrolle über die Zahlungsaufforderungen zu behalten, die sie ihren Kunden anzeigen. Aber keine Sorge, Bitcoin kann Tippfehler erkennen und in der Regel können Sie kein Geld an eine ungültige Adresse senden. In der Zukunft könnten zusätzliche Dienste vorhanden sein, die mehr Wahlmöglichkeiten und Schutz für Kunden bieten."
|
irreversibletxt: "Zahlungen mit Bitcoin können nicht rückgängig gemacht werden, sie können nur durch den Empfänger zurückgezahlt werden. Daher sollten Sie nur mit Personen und Organisationen handeln, die Sie kennen und denen Sie vertrauen. Der Part der Unternehmen besteht darin, die Kontrolle über die Zahlungsaufforderungen zu behalten, die sie ihren Kunden anzeigen. Aber keine Sorge, Bitcoin kann Tippfehler erkennen und in der Regel können Sie kein Geld an eine ungültige Adresse senden. In der Zukunft könnten zusätzliche Dienste vorhanden sein, die mehr Wahlmöglichkeiten und Schutz für Kunden bieten."
|
||||||
anonymous: "Bitcoin ist nicht anonym"
|
anonymous: "Bitcoin ist nicht anonym"
|
||||||
anonymoustxt: "Wenn Sie Ihre Privatsphäre mit Bitcoin schützen wollen, ist ein wenig Aufwand erforderlich. Alle Bitcoin-Transkationen sind öffentlich und dauerhaft im Netzwerk gespeichert, was bedeutet, dass jeder den Kontostand und die Transaktionen jeder Bitcoin-Adresse einsehen kann. Die Identität des Besitzers kann aber nicht mit der Bitcoin-Adresse in Verbindung gebracht werden, solange der Besitzer im Rahmen eines Tauschs keine persönlichen Informationen preisgibt. Daher sollte man Bitcoin Adressen nur einmalig verwenden. Denken Sie immer daran, dass es in ihrer Verwantwortung liegt, sich gute Praktiken anzueignen um ihre Privatsphäre schützen zu können. <a href=\"#protect-your-privacy#\"><b>Lesen Sie mehr über den Schutz ihrer Privatsphäre</b></a>."
|
anonymoustxt: "Wenn Sie Ihre Privatsphäre mit Bitcoin schützen wollen, ist ein wenig Aufwand erforderlich. Alle Bitcoin-Transkationen sind öffentlich und dauerhaft im Netzwerk gespeichert, was bedeutet, dass jeder den Kontostand und die Transaktionen jeder Bitcoin-Adresse einsehen kann. Die Identität des Besitzers kann aber nicht mit der Bitcoin-Adresse in Verbindung gebracht werden, solange bis der Besitzer Informationen im Rahmen einer Transaktion oder anderweitig preisgibt. Daher sollte man Bitcoin Adressen nur einmalig verwenden. Denken Sie immer daran, dass es in ihrer Verwantwortung liegt, sich gute Praktiken anzueignen um ihre Privatsphäre schützen zu können. <a href=\"#protect-your-privacy#\"><b>Lesen Sie mehr über den Schutz ihrer Privatsphäre</b></a>."
|
||||||
instant: "Sofort-Transaktionen sind weniger sicher"
|
instant: "Sofort-Transaktionen sind weniger sicher"
|
||||||
instanttxt: "Eine Bitcoin-Transaktion ist in der Regel innerhalb weniger Sekunden verteilt und innerhalb von 10 Minuten bestätigt. Innerhalb dieser Zeit gilt die Transaktion als glaubwürdig, aber umkehrbar. Unehrliche Nutzer könnten versuchen zu schummeln. Falls Sie nicht zu lange warten wollen, sollten Sie eine kleine Transaktionsgebühr ansetzen, oder ein System verwenden, welches unsichere Transaktionen erkennt, um die Sicherheit zu erhöhen. Für größere Summen ab 1000€ empfiehlt es sich auf 6 Bestätigungen oder mehr zu warten. Jede Bestätigung verringert das Risiko einer umkehrbaren Bestätigung <i>exponentiell</i>."
|
instanttxt: "Eine Bitcoin-Transaktion ist in der Regel innerhalb weniger Sekunden verteilt und in den darauf folgenden 10 Minuten beginnt die Bestätigung. Innerhalb dieser Zeit gilt die Transaktion als glaubwürdig, aber umkehrbar. Unehrliche Nutzer könnten versuchen zu schummeln. Falls Sie nicht zu lange warten wollen, sollten Sie eine kleine Transaktionsgebühr ansetzen, oder ein System verwenden, welches unsichere Transaktionen erkennt, um die Sicherheit zu erhöhen. Für größere Summen ab 1000€ empfiehlt es sich auf 6 Bestätigungen oder mehr zu warten. Jede Bestätigung verringert das Risiko einer umkehrbaren Bestätigung <i>exponentiell</i>."
|
||||||
experimental: "Bitcoin ist noch experimentell"
|
experimental: "Bitcoin ist noch experimentell"
|
||||||
experimentaltxt: "Bitcoin ist eine experimentelle neue Währung, und wird aktiv weiterentwickelt. Auch wenn es mit steigender Nutzung immer weniger experimentell wird, sollten Sie bedenken, dass Bitcoin eine neue Erfindung ist, die Ideen verfolgt, die vorher nie ausprobiert wurden. Daher kann die Zukunft von niemandem vorhergesagt werden."
|
experimentaltxt: "Bitcoin ist eine experimentelle neue Währung, und wird aktiv weiterentwickelt. Auch wenn es mit steigender Nutzung immer weniger experimentell wird, sollten Sie bedenken, dass Bitcoin eine neue Erfindung ist, die Ideen verfolgt, die vorher nie ausprobiert wurden. Daher kann die Zukunft von niemandem vorhergesagt werden."
|
||||||
tax: "Steuern und Regulierung"
|
tax: "Steuern und Regulierung"
|
||||||
|
|
|
@ -111,6 +111,7 @@ en:
|
||||||
walletbitcoinqt: "Bitcoin Core is a full Bitcoin client and builds the backbone of the network. It offers the highest levels of security, privacy, and stability. However, it has fewer features and it takes a lot of space and memory."
|
walletbitcoinqt: "Bitcoin Core is a full Bitcoin client and builds the backbone of the network. It offers the highest levels of security, privacy, and stability. However, it has fewer features and it takes a lot of space and memory."
|
||||||
walletmultibit: "MultiBit is a lightweight client that focuses on being fast and easy to use. It synchronizes with the network and is ready to use in minutes. MultiBit also supports many languages. It is a good choice for non-technical users."
|
walletmultibit: "MultiBit is a lightweight client that focuses on being fast and easy to use. It synchronizes with the network and is ready to use in minutes. MultiBit also supports many languages. It is a good choice for non-technical users."
|
||||||
wallethive: "Hive is a fast, integrated, user-friendly Bitcoin wallet for Mac OS X. With a focus on usability, Hive is translated into many languages and has apps, making it easy to interact with your favorite Bitcoin services and merchants."
|
wallethive: "Hive is a fast, integrated, user-friendly Bitcoin wallet for Mac OS X. With a focus on usability, Hive is translated into many languages and has apps, making it easy to interact with your favorite Bitcoin services and merchants."
|
||||||
|
wallethive-android: "Hive is a standalone wallet for Android, which requires no external server or account. It focuses on usability, yet provides a range of advanced features, such as touch-to-pay via NFC or reliable payments via Bluetooth. Hive Android is extensible through plugins."
|
||||||
walletarmory: "Armory is an advanced Bitcoin client that expands its features for Bitcoin power users. It offers many backup and encryption features, and it allows secure cold-storage on offline computers."
|
walletarmory: "Armory is an advanced Bitcoin client that expands its features for Bitcoin power users. It offers many backup and encryption features, and it allows secure cold-storage on offline computers."
|
||||||
walletelectrum: "Electrum's focus is speed and simplicity, with low resource usage. It uses remote servers that handle the most complicated parts of the Bitcoin system, and it allows you to recover your wallet from a secret phrase."
|
walletelectrum: "Electrum's focus is speed and simplicity, with low resource usage. It uses remote servers that handle the most complicated parts of the Bitcoin system, and it allows you to recover your wallet from a secret phrase."
|
||||||
walletbitcoinwallet: "Bitcoin Wallet for Android is easy to use and reliable, while also being secure and fast. Its vision is de-centralization and zero trust: No central service is needed for Bitcoin-related operations. The app is a good choice for non-technical people. It is also available for BlackBerry OS."
|
walletbitcoinwallet: "Bitcoin Wallet for Android is easy to use and reliable, while also being secure and fast. Its vision is de-centralization and zero trust: No central service is needed for Bitcoin-related operations. The app is a good choice for non-technical people. It is also available for BlackBerry OS."
|
||||||
|
|
50
img/dev/en-wallets-distributing-only.dot
Normal file
50
img/dev/en-wallets-distributing-only.dot
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
digraph wallet_program {
|
||||||
|
size="6.25";
|
||||||
|
rankdir=LR;
|
||||||
|
//ratio=fill;
|
||||||
|
splines=true;
|
||||||
|
fontname=Sans
|
||||||
|
ranksep=0.3;
|
||||||
|
penwidth=1.75;
|
||||||
|
|
||||||
|
overlap = false;
|
||||||
|
|
||||||
|
edge [ fontname=Sans, penwidth=1.75, style = "invis" ];
|
||||||
|
node [ fontname=Sans, shape = box, penwidth=1.75 ];
|
||||||
|
|
||||||
|
subgraph cluster_distributing {
|
||||||
|
penwidth=0;
|
||||||
|
|
||||||
|
distributing_priv [ label = "Create\nParent\nPrivate\nKey", style="invis" ];
|
||||||
|
distributing_pub [ label = "Derive\nChild\nPublic\nKeys" ];
|
||||||
|
distributing_distribute [ label = "Distribute\nPublic\nKeys" ];
|
||||||
|
distributing_monitor [ label = "Monitor\nFor\nOutputs", style="invis" ];
|
||||||
|
distributing_create [ label = "Create\nUnsigned\nTxes", style="invis" ];
|
||||||
|
distributing_sign [ label = "Sign\nTxes", style="invis" ];
|
||||||
|
distributing_broadcast [ label = "Broadcast\nTxes", style="invis" ];
|
||||||
|
|
||||||
|
distributing_priv -> distributing_pub -> distributing_distribute -> distributing_monitor -> distributing_create -> distributing_sign -> distributing_broadcast;
|
||||||
|
label = "Distributing-Only Wallet"
|
||||||
|
}
|
||||||
|
|
||||||
|
subgraph cluster_networked {
|
||||||
|
penwidth=0;
|
||||||
|
|
||||||
|
networked_priv [ label = "Create\nParent\nPrivate\nKey" ];
|
||||||
|
networked_pub [ label = "Derive\nParent\nPublic\nKey" ];
|
||||||
|
networked_distribute [ label = "Distribute\nPublic\nKeys", style="invis" ];
|
||||||
|
networked_monitor [ label = "Monitor\nFor\nOutputs" ];
|
||||||
|
networked_create [ label = "Create\nUnsigned\nTxes" ];
|
||||||
|
networked_sign [ label = "Sign\nTxes" ];
|
||||||
|
networked_broadcast [ label = "Broadcast\nTxes" ];
|
||||||
|
|
||||||
|
networked_priv -> networked_pub -> networked_distribute -> networked_monitor -> networked_create -> networked_sign -> networked_broadcast;
|
||||||
|
label = " Other Wallet(s)"
|
||||||
|
}
|
||||||
|
|
||||||
|
networked_priv -> networked_pub [style=""];
|
||||||
|
networked_pub -> distributing_pub [ constraint = false, style = ""];
|
||||||
|
distributing_pub -> distributing_distribute -> networked_monitor -> networked_create -> networked_sign -> networked_broadcast [style=""];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
BIN
img/dev/en-wallets-distributing-only.png
Normal file
BIN
img/dev/en-wallets-distributing-only.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.9 KiB |
131
img/dev/en-wallets-distributing-only.svg
Normal file
131
img/dev/en-wallets-distributing-only.svg
Normal file
|
@ -0,0 +1,131 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||||
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<!-- Generated by graphviz version 2.26.3 (20100126.1600)
|
||||||
|
-->
|
||||||
|
<!-- Title: wallet_program Pages: 1 -->
|
||||||
|
<svg width="450pt" height="176pt"
|
||||||
|
viewBox="0.00 0.00 450.00 176.03" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<g id="graph1" class="graph" transform="scale(0.661765 0.661765) rotate(0) translate(4 262)">
|
||||||
|
<title>wallet_program</title>
|
||||||
|
<polygon fill="white" stroke="white" points="-4,5 -4,-262 677,-262 677,5 -4,5"/>
|
||||||
|
<g id="graph2" class="cluster"><title>cluster_distributing</title>
|
||||||
|
<polygon fill="none" stroke="black" stroke-width="0" points="8,-133 8,-250 664,-250 664,-133 8,-133"/>
|
||||||
|
<text text-anchor="middle" x="336" y="-233.4" font-family="Sans" font-size="14.00">Distributing-Only Wallet</text>
|
||||||
|
</g>
|
||||||
|
<g id="graph3" class="cluster"><title>cluster_networked</title>
|
||||||
|
<polygon fill="none" stroke="black" stroke-width="0" points="8,-8 8,-125 664,-125 664,-8 8,-8"/>
|
||||||
|
<text text-anchor="middle" x="336" y="-108.4" font-family="Sans" font-size="14.00">       Other Wallet(s)</text>
|
||||||
|
</g>
|
||||||
|
<!-- distributing_priv -->
|
||||||
|
<!-- distributing_pub -->
|
||||||
|
<g id="node3" class="node"><title>distributing_pub</title>
|
||||||
|
<polygon fill="none" stroke="black" stroke-width="1.75" points="166,-217 104,-217 104,-141 166,-141 166,-217"/>
|
||||||
|
<text text-anchor="middle" x="135" y="-200.4" font-family="Sans" font-size="14.00">Derive</text>
|
||||||
|
<text text-anchor="middle" x="135" y="-183.4" font-family="Sans" font-size="14.00">Child</text>
|
||||||
|
<text text-anchor="middle" x="135" y="-166.4" font-family="Sans" font-size="14.00">Public</text>
|
||||||
|
<text text-anchor="middle" x="135" y="-149.4" font-family="Sans" font-size="14.00">Keys</text>
|
||||||
|
</g>
|
||||||
|
<!-- distributing_priv->distributing_pub -->
|
||||||
|
<!-- distributing_distribute -->
|
||||||
|
<g id="node4" class="node"><title>distributing_distribute</title>
|
||||||
|
<polygon fill="none" stroke="black" stroke-width="1.75" points="274,-208.5 188,-208.5 188,-149.5 274,-149.5 274,-208.5"/>
|
||||||
|
<text text-anchor="middle" x="231" y="-191.9" font-family="Sans" font-size="14.00">Distribute</text>
|
||||||
|
<text text-anchor="middle" x="231" y="-174.9" font-family="Sans" font-size="14.00">Public</text>
|
||||||
|
<text text-anchor="middle" x="231" y="-157.9" font-family="Sans" font-size="14.00">Keys</text>
|
||||||
|
</g>
|
||||||
|
<!-- distributing_pub->distributing_distribute -->
|
||||||
|
<!-- distributing_pub->distributing_distribute -->
|
||||||
|
<g id="edge22" class="edge"><title>distributing_pub->distributing_distribute</title>
|
||||||
|
<path fill="none" stroke="black" stroke-width="1.75" d="M166.168,-185.367C169.833,-185.54 173.648,-185.655 177.51,-185.711"/>
|
||||||
|
<polygon fill="black" stroke="black" points="177.774,-189.211 187.778,-185.72 177.781,-182.211 177.774,-189.211"/>
|
||||||
|
</g>
|
||||||
|
<!-- distributing_monitor -->
|
||||||
|
<!-- distributing_distribute->distributing_monitor -->
|
||||||
|
<!-- networked_monitor -->
|
||||||
|
<g id="node14" class="node"><title>networked_monitor</title>
|
||||||
|
<polygon fill="none" stroke="black" stroke-width="1.75" points="369,-89.5 297,-89.5 297,-30.5 369,-30.5 369,-89.5"/>
|
||||||
|
<text text-anchor="middle" x="333" y="-72.9" font-family="Sans" font-size="14.00">Monitor</text>
|
||||||
|
<text text-anchor="middle" x="333" y="-55.9" font-family="Sans" font-size="14.00">For</text>
|
||||||
|
<text text-anchor="middle" x="333" y="-38.9" font-family="Sans" font-size="14.00">Outputs</text>
|
||||||
|
</g>
|
||||||
|
<!-- distributing_distribute->networked_monitor -->
|
||||||
|
<g id="edge23" class="edge"><title>distributing_distribute->networked_monitor</title>
|
||||||
|
<path fill="none" stroke="black" stroke-width="1.75" d="M256.025,-149.929C261.924,-143.069 268.187,-135.779 274,-129 282.912,-118.608 292.568,-107.324 301.438,-96.9504"/>
|
||||||
|
<polygon fill="black" stroke="black" points="304.205,-99.1003 308.042,-89.2249 298.884,-94.5518 304.205,-99.1003"/>
|
||||||
|
</g>
|
||||||
|
<!-- distributing_create -->
|
||||||
|
<!-- distributing_monitor->distributing_create -->
|
||||||
|
<!-- distributing_sign -->
|
||||||
|
<!-- distributing_create->distributing_sign -->
|
||||||
|
<!-- distributing_broadcast -->
|
||||||
|
<!-- distributing_sign->distributing_broadcast -->
|
||||||
|
<!-- networked_priv -->
|
||||||
|
<g id="node11" class="node"><title>networked_priv</title>
|
||||||
|
<polygon fill="none" stroke="black" stroke-width="1.75" points="82,-92 16,-92 16,-16 82,-16 82,-92"/>
|
||||||
|
<text text-anchor="middle" x="49" y="-75.4" font-family="Sans" font-size="14.00">Create</text>
|
||||||
|
<text text-anchor="middle" x="49" y="-58.4" font-family="Sans" font-size="14.00">Parent</text>
|
||||||
|
<text text-anchor="middle" x="49" y="-41.4" font-family="Sans" font-size="14.00">Private</text>
|
||||||
|
<text text-anchor="middle" x="49" y="-24.4" font-family="Sans" font-size="14.00">Key</text>
|
||||||
|
</g>
|
||||||
|
<!-- networked_pub -->
|
||||||
|
<g id="node12" class="node"><title>networked_pub</title>
|
||||||
|
<polygon fill="none" stroke="black" stroke-width="1.75" points="166,-92 104,-92 104,-16 166,-16 166,-92"/>
|
||||||
|
<text text-anchor="middle" x="135" y="-75.4" font-family="Sans" font-size="14.00">Derive</text>
|
||||||
|
<text text-anchor="middle" x="135" y="-58.4" font-family="Sans" font-size="14.00">Parent</text>
|
||||||
|
<text text-anchor="middle" x="135" y="-41.4" font-family="Sans" font-size="14.00">Public</text>
|
||||||
|
<text text-anchor="middle" x="135" y="-24.4" font-family="Sans" font-size="14.00">Key</text>
|
||||||
|
</g>
|
||||||
|
<!-- networked_priv->networked_pub -->
|
||||||
|
<g id="edge18" class="edge"><title>networked_priv->networked_pub</title>
|
||||||
|
<path fill="none" stroke="black" stroke-width="1.75" d="M82.0039,-47.4148C85.8289,-47.2866 89.7655,-47.2332 93.6836,-47.2546"/>
|
||||||
|
<polygon fill="black" stroke="black" points="93.845,-50.7591 103.922,-47.4861 94.0033,-43.7608 93.845,-50.7591"/>
|
||||||
|
</g>
|
||||||
|
<!-- networked_priv->networked_pub -->
|
||||||
|
<!-- networked_pub->distributing_pub -->
|
||||||
|
<g id="edge20" class="edge"><title>networked_pub->distributing_pub</title>
|
||||||
|
<path fill="none" stroke="black" stroke-width="1.75" d="M135,-92.0859C135,-104.945 135,-117.804 135,-130.663"/>
|
||||||
|
<polygon fill="black" stroke="black" points="131.5,-130.975 135,-140.975 138.5,-130.975 131.5,-130.975"/>
|
||||||
|
</g>
|
||||||
|
<!-- networked_distribute -->
|
||||||
|
<!-- networked_pub->networked_distribute -->
|
||||||
|
<!-- networked_distribute->networked_monitor -->
|
||||||
|
<!-- networked_create -->
|
||||||
|
<g id="node15" class="node"><title>networked_create</title>
|
||||||
|
<polygon fill="none" stroke="black" stroke-width="1.75" points="472,-89.5 392,-89.5 392,-30.5 472,-30.5 472,-89.5"/>
|
||||||
|
<text text-anchor="middle" x="432" y="-72.9" font-family="Sans" font-size="14.00">Create</text>
|
||||||
|
<text text-anchor="middle" x="432" y="-55.9" font-family="Sans" font-size="14.00">Unsigned</text>
|
||||||
|
<text text-anchor="middle" x="432" y="-38.9" font-family="Sans" font-size="14.00">Txes</text>
|
||||||
|
</g>
|
||||||
|
<!-- networked_monitor->networked_create -->
|
||||||
|
<g id="edge24" class="edge"><title>networked_monitor->networked_create</title>
|
||||||
|
<path fill="none" stroke="black" stroke-width="1.75" d="M369.583,-53.4586C373.559,-53.3274 377.655,-53.2581 381.757,-53.2507"/>
|
||||||
|
<polygon fill="black" stroke="black" points="381.868,-56.752 391.905,-53.3595 381.943,-49.7524 381.868,-56.752"/>
|
||||||
|
</g>
|
||||||
|
<!-- networked_monitor->networked_create -->
|
||||||
|
<!-- networked_sign -->
|
||||||
|
<g id="node16" class="node"><title>networked_sign</title>
|
||||||
|
<polygon fill="none" stroke="black" stroke-width="1.75" points="548,-81 494,-81 494,-39 548,-39 548,-81"/>
|
||||||
|
<text text-anchor="middle" x="521" y="-64.4" font-family="Sans" font-size="14.00">Sign</text>
|
||||||
|
<text text-anchor="middle" x="521" y="-47.4" font-family="Sans" font-size="14.00">Txes</text>
|
||||||
|
</g>
|
||||||
|
<!-- networked_create->networked_sign -->
|
||||||
|
<!-- networked_create->networked_sign -->
|
||||||
|
<g id="edge25" class="edge"><title>networked_create->networked_sign</title>
|
||||||
|
<path fill="none" stroke="black" stroke-width="1.75" d="M472.074,-66.7202C475.996,-66.7731 479.964,-66.7555 483.855,-66.6674"/>
|
||||||
|
<polygon fill="black" stroke="black" points="484.036,-70.163 493.889,-66.2694 483.758,-63.1685 484.036,-70.163"/>
|
||||||
|
</g>
|
||||||
|
<!-- networked_broadcast -->
|
||||||
|
<g id="node17" class="node"><title>networked_broadcast</title>
|
||||||
|
<polygon fill="none" stroke="black" stroke-width="1.75" points="655,-81 571,-81 571,-39 655,-39 655,-81"/>
|
||||||
|
<text text-anchor="middle" x="613" y="-64.4" font-family="Sans" font-size="14.00">Broadcast</text>
|
||||||
|
<text text-anchor="middle" x="613" y="-47.4" font-family="Sans" font-size="14.00">Txes</text>
|
||||||
|
</g>
|
||||||
|
<!-- networked_sign->networked_broadcast -->
|
||||||
|
<!-- networked_sign->networked_broadcast -->
|
||||||
|
<g id="edge26" class="edge"><title>networked_sign->networked_broadcast</title>
|
||||||
|
<path fill="none" stroke="black" stroke-width="1.75" d="M548.105,-66.2161C551.932,-66.4447 555.969,-66.5999 560.082,-66.6817"/>
|
||||||
|
<polygon fill="black" stroke="black" points="560.366,-70.1831 570.383,-66.7337 560.401,-63.1832 560.366,-70.1831"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 8.6 KiB |
30
img/dev/en-wallets-full-service.dot
Normal file
30
img/dev/en-wallets-full-service.dot
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
digraph wallet_program {
|
||||||
|
size="6.25";
|
||||||
|
rankdir=LR;
|
||||||
|
//ratio=fill;
|
||||||
|
splines=true;
|
||||||
|
fontname=Sans
|
||||||
|
ranksep=0.3;
|
||||||
|
penwidth=1.75;
|
||||||
|
|
||||||
|
overlap = false;
|
||||||
|
|
||||||
|
edge [ fontname=Sans, penwidth=1.75, style = "invis" ];
|
||||||
|
node [ fontname=Sans, shape = box, penwidth=1.75 ];
|
||||||
|
|
||||||
|
subgraph cluster_networked {
|
||||||
|
penwidth=0;
|
||||||
|
networked_priv [ label = "Create\nPrivate\nKeys" ];
|
||||||
|
networked_pub [ label = "Derive\nPublic\nKeys" ];
|
||||||
|
networked_distribute [ label = "Distribute\nPublic\nKeys" ];
|
||||||
|
networked_monitor [ label = "Monitor\nFor\nOutputs" ];
|
||||||
|
networked_create [ label = "Create\nUnsigned\nTxes" ];
|
||||||
|
networked_sign [ label = "Sign\nTxes" ];
|
||||||
|
networked_broadcast [ label = "Broadcast\nTxes" ];
|
||||||
|
|
||||||
|
networked_priv -> networked_pub -> networked_distribute -> networked_monitor -> networked_create -> networked_sign -> networked_broadcast [ style = "" ];
|
||||||
|
label = " \nFull-Service Wallet"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
BIN
img/dev/en-wallets-full-service.png
Normal file
BIN
img/dev/en-wallets-full-service.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.7 KiB |
95
img/dev/en-wallets-full-service.svg
Normal file
95
img/dev/en-wallets-full-service.svg
Normal file
|
@ -0,0 +1,95 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||||
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<!-- Generated by graphviz version 2.26.3 (20100126.1600)
|
||||||
|
-->
|
||||||
|
<!-- Title: wallet_program Pages: 1 -->
|
||||||
|
<svg width="450pt" height="93pt"
|
||||||
|
viewBox="0.00 0.00 450.00 92.65" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<g id="graph1" class="graph" transform="scale(0.661765 0.661765) rotate(0) translate(4 136)">
|
||||||
|
<title>wallet_program</title>
|
||||||
|
<polygon fill="white" stroke="white" points="-4,5 -4,-136 677,-136 677,5 -4,5"/>
|
||||||
|
<g id="graph2" class="cluster"><title>cluster_networked</title>
|
||||||
|
<polygon fill="none" stroke="black" stroke-width="0" points="8,-8 8,-124 664,-124 664,-8 8,-8"/>
|
||||||
|
<text text-anchor="middle" x="336" y="-107.4" font-family="Sans" font-size="14.00"> </text>
|
||||||
|
<text text-anchor="middle" x="336" y="-90.4" font-family="Sans" font-size="14.00">Full-Service Wallet</text>
|
||||||
|
</g>
|
||||||
|
<!-- networked_priv -->
|
||||||
|
<g id="node2" class="node"><title>networked_priv</title>
|
||||||
|
<polygon fill="none" stroke="black" stroke-width="1.75" points="82,-74.5 16,-74.5 16,-15.5 82,-15.5 82,-74.5"/>
|
||||||
|
<text text-anchor="middle" x="49" y="-57.9" font-family="Sans" font-size="14.00">Create</text>
|
||||||
|
<text text-anchor="middle" x="49" y="-40.9" font-family="Sans" font-size="14.00">Private</text>
|
||||||
|
<text text-anchor="middle" x="49" y="-23.9" font-family="Sans" font-size="14.00">Keys</text>
|
||||||
|
</g>
|
||||||
|
<!-- networked_pub -->
|
||||||
|
<g id="node3" class="node"><title>networked_pub</title>
|
||||||
|
<polygon fill="none" stroke="black" stroke-width="1.75" points="166,-74.5 104,-74.5 104,-15.5 166,-15.5 166,-74.5"/>
|
||||||
|
<text text-anchor="middle" x="135" y="-57.9" font-family="Sans" font-size="14.00">Derive</text>
|
||||||
|
<text text-anchor="middle" x="135" y="-40.9" font-family="Sans" font-size="14.00">Public</text>
|
||||||
|
<text text-anchor="middle" x="135" y="-23.9" font-family="Sans" font-size="14.00">Keys</text>
|
||||||
|
</g>
|
||||||
|
<!-- networked_priv->networked_pub -->
|
||||||
|
<g id="edge3" class="edge"><title>networked_priv->networked_pub</title>
|
||||||
|
<path fill="none" stroke="black" stroke-width="1.75" d="M82.0039,-45C85.8289,-45 89.7655,-45 93.6836,-45"/>
|
||||||
|
<polygon fill="black" stroke="black" points="93.9217,-48.5001 103.922,-45 93.9216,-41.5001 93.9217,-48.5001"/>
|
||||||
|
</g>
|
||||||
|
<!-- networked_distribute -->
|
||||||
|
<g id="node4" class="node"><title>networked_distribute</title>
|
||||||
|
<polygon fill="none" stroke="black" stroke-width="1.75" points="274,-74.5 188,-74.5 188,-15.5 274,-15.5 274,-74.5"/>
|
||||||
|
<text text-anchor="middle" x="231" y="-57.9" font-family="Sans" font-size="14.00">Distribute</text>
|
||||||
|
<text text-anchor="middle" x="231" y="-40.9" font-family="Sans" font-size="14.00">Public</text>
|
||||||
|
<text text-anchor="middle" x="231" y="-23.9" font-family="Sans" font-size="14.00">Keys</text>
|
||||||
|
</g>
|
||||||
|
<!-- networked_pub->networked_distribute -->
|
||||||
|
<g id="edge4" class="edge"><title>networked_pub->networked_distribute</title>
|
||||||
|
<path fill="none" stroke="black" stroke-width="1.75" d="M166.168,-45C169.833,-45 173.648,-45 177.51,-45"/>
|
||||||
|
<polygon fill="black" stroke="black" points="177.778,-48.5001 187.778,-45 177.777,-41.5001 177.778,-48.5001"/>
|
||||||
|
</g>
|
||||||
|
<!-- networked_monitor -->
|
||||||
|
<g id="node5" class="node"><title>networked_monitor</title>
|
||||||
|
<polygon fill="none" stroke="black" stroke-width="1.75" points="369,-74.5 297,-74.5 297,-15.5 369,-15.5 369,-74.5"/>
|
||||||
|
<text text-anchor="middle" x="333" y="-57.9" font-family="Sans" font-size="14.00">Monitor</text>
|
||||||
|
<text text-anchor="middle" x="333" y="-40.9" font-family="Sans" font-size="14.00">For</text>
|
||||||
|
<text text-anchor="middle" x="333" y="-23.9" font-family="Sans" font-size="14.00">Outputs</text>
|
||||||
|
</g>
|
||||||
|
<!-- networked_distribute->networked_monitor -->
|
||||||
|
<g id="edge5" class="edge"><title>networked_distribute->networked_monitor</title>
|
||||||
|
<path fill="none" stroke="black" stroke-width="1.75" d="M274.257,-45C278.18,-45 282.166,-45 286.118,-45"/>
|
||||||
|
<polygon fill="black" stroke="black" points="286.437,-48.5001 296.437,-45 286.437,-41.5001 286.437,-48.5001"/>
|
||||||
|
</g>
|
||||||
|
<!-- networked_create -->
|
||||||
|
<g id="node6" class="node"><title>networked_create</title>
|
||||||
|
<polygon fill="none" stroke="black" stroke-width="1.75" points="472,-74.5 392,-74.5 392,-15.5 472,-15.5 472,-74.5"/>
|
||||||
|
<text text-anchor="middle" x="432" y="-57.9" font-family="Sans" font-size="14.00">Create</text>
|
||||||
|
<text text-anchor="middle" x="432" y="-40.9" font-family="Sans" font-size="14.00">Unsigned</text>
|
||||||
|
<text text-anchor="middle" x="432" y="-23.9" font-family="Sans" font-size="14.00">Txes</text>
|
||||||
|
</g>
|
||||||
|
<!-- networked_monitor->networked_create -->
|
||||||
|
<g id="edge6" class="edge"><title>networked_monitor->networked_create</title>
|
||||||
|
<path fill="none" stroke="black" stroke-width="1.75" d="M369.583,-45C373.559,-45 377.655,-45 381.757,-45"/>
|
||||||
|
<polygon fill="black" stroke="black" points="381.905,-48.5001 391.905,-45 381.905,-41.5001 381.905,-48.5001"/>
|
||||||
|
</g>
|
||||||
|
<!-- networked_sign -->
|
||||||
|
<g id="node7" class="node"><title>networked_sign</title>
|
||||||
|
<polygon fill="none" stroke="black" stroke-width="1.75" points="548,-66 494,-66 494,-24 548,-24 548,-66"/>
|
||||||
|
<text text-anchor="middle" x="521" y="-49.4" font-family="Sans" font-size="14.00">Sign</text>
|
||||||
|
<text text-anchor="middle" x="521" y="-32.4" font-family="Sans" font-size="14.00">Txes</text>
|
||||||
|
</g>
|
||||||
|
<!-- networked_create->networked_sign -->
|
||||||
|
<g id="edge7" class="edge"><title>networked_create->networked_sign</title>
|
||||||
|
<path fill="none" stroke="black" stroke-width="1.75" d="M472.074,-45C475.996,-45 479.964,-45 483.855,-45"/>
|
||||||
|
<polygon fill="black" stroke="black" points="483.889,-48.5001 493.889,-45 483.889,-41.5001 483.889,-48.5001"/>
|
||||||
|
</g>
|
||||||
|
<!-- networked_broadcast -->
|
||||||
|
<g id="node8" class="node"><title>networked_broadcast</title>
|
||||||
|
<polygon fill="none" stroke="black" stroke-width="1.75" points="655,-66 571,-66 571,-24 655,-24 655,-66"/>
|
||||||
|
<text text-anchor="middle" x="613" y="-49.4" font-family="Sans" font-size="14.00">Broadcast</text>
|
||||||
|
<text text-anchor="middle" x="613" y="-32.4" font-family="Sans" font-size="14.00">Txes</text>
|
||||||
|
</g>
|
||||||
|
<!-- networked_sign->networked_broadcast -->
|
||||||
|
<g id="edge8" class="edge"><title>networked_sign->networked_broadcast</title>
|
||||||
|
<path fill="none" stroke="black" stroke-width="1.75" d="M548.105,-45C551.932,-45 555.969,-45 560.082,-45"/>
|
||||||
|
<polygon fill="black" stroke="black" points="560.383,-48.5001 570.383,-45 560.383,-41.5001 560.383,-48.5001"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 6.2 KiB |
50
img/dev/en-wallets-signing-only.dot
Normal file
50
img/dev/en-wallets-signing-only.dot
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
digraph wallet_program {
|
||||||
|
size="6.25";
|
||||||
|
rankdir=LR;
|
||||||
|
//ratio=fill;
|
||||||
|
splines=true;
|
||||||
|
fontname=Sans
|
||||||
|
ranksep=0.3;
|
||||||
|
penwidth=1.75;
|
||||||
|
|
||||||
|
overlap = false;
|
||||||
|
|
||||||
|
edge [ fontname=Sans, penwidth=1.75, style = "invis" ];
|
||||||
|
node [ fontname=Sans, shape = box, penwidth=1.75 ];
|
||||||
|
|
||||||
|
subgraph cluster_signing {
|
||||||
|
penwidth=0;
|
||||||
|
|
||||||
|
signing_priv [ label = "Create\nParent\nPrivate\nKey" ];
|
||||||
|
signing_pub [ label = "Derive\nParent\nPublic\nKey" ];
|
||||||
|
signing_distribute [ label = "Distribute\nPublic\nKeys", style="invis" ];
|
||||||
|
signing_monitor [ label = "Monitor\nFor\nOutputs", style="invis" ];
|
||||||
|
signing_create [ label = "Create\nUnsigned\nTxes", style="invis" ];
|
||||||
|
signing_sign [ label = "Sign\nTxes" ];
|
||||||
|
signing_broadcast [ label = "Broadcast\nTxes", style="invis" ];
|
||||||
|
|
||||||
|
signing_priv -> signing_pub -> signing_distribute -> signing_monitor -> signing_create -> signing_sign -> signing_broadcast;
|
||||||
|
label = "Signing-Only Wallet"
|
||||||
|
}
|
||||||
|
|
||||||
|
subgraph cluster_networked {
|
||||||
|
penwidth=0;
|
||||||
|
|
||||||
|
networked_priv [ label = "Create\nPrivate\nKeys", style="invis" ];
|
||||||
|
networked_pub [ label = "Derive\nChild\nPublic\nKeys" ];
|
||||||
|
networked_distribute [ label = "Distribute\nPublic\nKeys" ];
|
||||||
|
networked_monitor [ label = "Monitor\nFor\nOutputs" ];
|
||||||
|
networked_create [ label = "Create\nUnsigned\nTxes" ];
|
||||||
|
networked_sign [ label = "Sign\nTxes", style="invis" ];
|
||||||
|
networked_broadcast [ label = "Broadcast\nTxes" ];
|
||||||
|
|
||||||
|
networked_priv -> networked_pub -> networked_distribute -> networked_monitor -> networked_create -> networked_sign -> networked_broadcast;
|
||||||
|
label = "Networked Wallet"
|
||||||
|
}
|
||||||
|
|
||||||
|
signing_priv -> signing_pub [style=""];
|
||||||
|
signing_pub -> networked_pub [ constraint = false, style = ""];
|
||||||
|
networked_pub -> networked_distribute -> networked_monitor -> networked_create -> signing_sign -> networked_broadcast [style=""];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
BIN
img/dev/en-wallets-signing-only.png
Normal file
BIN
img/dev/en-wallets-signing-only.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.2 KiB |
131
img/dev/en-wallets-signing-only.svg
Normal file
131
img/dev/en-wallets-signing-only.svg
Normal file
|
@ -0,0 +1,131 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||||
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<!-- Generated by graphviz version 2.26.3 (20100126.1600)
|
||||||
|
-->
|
||||||
|
<!-- Title: wallet_program Pages: 1 -->
|
||||||
|
<svg width="450pt" height="176pt"
|
||||||
|
viewBox="0.00 0.00 450.00 176.03" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<g id="graph1" class="graph" transform="scale(0.661765 0.661765) rotate(0) translate(4 262)">
|
||||||
|
<title>wallet_program</title>
|
||||||
|
<polygon fill="white" stroke="white" points="-4,5 -4,-262 677,-262 677,5 -4,5"/>
|
||||||
|
<g id="graph2" class="cluster"><title>cluster_signing</title>
|
||||||
|
<polygon fill="none" stroke="black" stroke-width="0" points="8,-133 8,-250 664,-250 664,-133 8,-133"/>
|
||||||
|
<text text-anchor="middle" x="336" y="-233.4" font-family="Sans" font-size="14.00">Signing-Only Wallet</text>
|
||||||
|
</g>
|
||||||
|
<g id="graph3" class="cluster"><title>cluster_networked</title>
|
||||||
|
<polygon fill="none" stroke="black" stroke-width="0" points="8,-8 8,-125 664,-125 664,-8 8,-8"/>
|
||||||
|
<text text-anchor="middle" x="336" y="-108.4" font-family="Sans" font-size="14.00">Networked Wallet</text>
|
||||||
|
</g>
|
||||||
|
<!-- signing_priv -->
|
||||||
|
<g id="node2" class="node"><title>signing_priv</title>
|
||||||
|
<polygon fill="none" stroke="black" stroke-width="1.75" points="82,-217 16,-217 16,-141 82,-141 82,-217"/>
|
||||||
|
<text text-anchor="middle" x="49" y="-200.4" font-family="Sans" font-size="14.00">Create</text>
|
||||||
|
<text text-anchor="middle" x="49" y="-183.4" font-family="Sans" font-size="14.00">Parent</text>
|
||||||
|
<text text-anchor="middle" x="49" y="-166.4" font-family="Sans" font-size="14.00">Private</text>
|
||||||
|
<text text-anchor="middle" x="49" y="-149.4" font-family="Sans" font-size="14.00">Key</text>
|
||||||
|
</g>
|
||||||
|
<!-- signing_pub -->
|
||||||
|
<g id="node3" class="node"><title>signing_pub</title>
|
||||||
|
<polygon fill="none" stroke="black" stroke-width="1.75" points="166,-217 104,-217 104,-141 166,-141 166,-217"/>
|
||||||
|
<text text-anchor="middle" x="135" y="-200.4" font-family="Sans" font-size="14.00">Derive</text>
|
||||||
|
<text text-anchor="middle" x="135" y="-183.4" font-family="Sans" font-size="14.00">Parent</text>
|
||||||
|
<text text-anchor="middle" x="135" y="-166.4" font-family="Sans" font-size="14.00">Public</text>
|
||||||
|
<text text-anchor="middle" x="135" y="-149.4" font-family="Sans" font-size="14.00">Key</text>
|
||||||
|
</g>
|
||||||
|
<!-- signing_priv->signing_pub -->
|
||||||
|
<!-- signing_priv->signing_pub -->
|
||||||
|
<g id="edge18" class="edge"><title>signing_priv->signing_pub</title>
|
||||||
|
<path fill="none" stroke="black" stroke-width="1.75" d="M82.0039,-185.585C85.8289,-185.713 89.7655,-185.767 93.6836,-185.745"/>
|
||||||
|
<polygon fill="black" stroke="black" points="94.0033,-189.239 103.922,-185.514 93.845,-182.241 94.0033,-189.239"/>
|
||||||
|
</g>
|
||||||
|
<!-- signing_distribute -->
|
||||||
|
<!-- signing_pub->signing_distribute -->
|
||||||
|
<!-- networked_pub -->
|
||||||
|
<g id="node12" class="node"><title>networked_pub</title>
|
||||||
|
<polygon fill="none" stroke="black" stroke-width="1.75" points="166,-92 104,-92 104,-16 166,-16 166,-92"/>
|
||||||
|
<text text-anchor="middle" x="135" y="-75.4" font-family="Sans" font-size="14.00">Derive</text>
|
||||||
|
<text text-anchor="middle" x="135" y="-58.4" font-family="Sans" font-size="14.00">Child</text>
|
||||||
|
<text text-anchor="middle" x="135" y="-41.4" font-family="Sans" font-size="14.00">Public</text>
|
||||||
|
<text text-anchor="middle" x="135" y="-24.4" font-family="Sans" font-size="14.00">Keys</text>
|
||||||
|
</g>
|
||||||
|
<!-- signing_pub->networked_pub -->
|
||||||
|
<g id="edge20" class="edge"><title>signing_pub->networked_pub</title>
|
||||||
|
<path fill="none" stroke="black" stroke-width="1.75" d="M135,-140.975C135,-128.116 135,-115.257 135,-102.398"/>
|
||||||
|
<polygon fill="black" stroke="black" points="138.5,-102.086 135,-92.0859 131.5,-102.086 138.5,-102.086"/>
|
||||||
|
</g>
|
||||||
|
<!-- signing_monitor -->
|
||||||
|
<!-- signing_distribute->signing_monitor -->
|
||||||
|
<!-- signing_create -->
|
||||||
|
<!-- signing_monitor->signing_create -->
|
||||||
|
<!-- signing_sign -->
|
||||||
|
<g id="node7" class="node"><title>signing_sign</title>
|
||||||
|
<polygon fill="none" stroke="black" stroke-width="1.75" points="548,-183 494,-183 494,-141 548,-141 548,-183"/>
|
||||||
|
<text text-anchor="middle" x="521" y="-166.4" font-family="Sans" font-size="14.00">Sign</text>
|
||||||
|
<text text-anchor="middle" x="521" y="-149.4" font-family="Sans" font-size="14.00">Txes</text>
|
||||||
|
</g>
|
||||||
|
<!-- signing_create->signing_sign -->
|
||||||
|
<!-- signing_broadcast -->
|
||||||
|
<!-- signing_sign->signing_broadcast -->
|
||||||
|
<!-- networked_broadcast -->
|
||||||
|
<g id="node17" class="node"><title>networked_broadcast</title>
|
||||||
|
<polygon fill="none" stroke="black" stroke-width="1.75" points="655,-89 571,-89 571,-47 655,-47 655,-89"/>
|
||||||
|
<text text-anchor="middle" x="613" y="-72.4" font-family="Sans" font-size="14.00">Broadcast</text>
|
||||||
|
<text text-anchor="middle" x="613" y="-55.4" font-family="Sans" font-size="14.00">Txes</text>
|
||||||
|
</g>
|
||||||
|
<!-- signing_sign->networked_broadcast -->
|
||||||
|
<g id="edge26" class="edge"><title>signing_sign->networked_broadcast</title>
|
||||||
|
<path fill="none" stroke="black" stroke-width="1.75" d="M541.876,-140.67C554.698,-127.57 571.275,-110.632 585.2,-96.404"/>
|
||||||
|
<polygon fill="black" stroke="black" points="587.713,-98.8405 592.206,-89.2456 582.71,-93.9442 587.713,-98.8405"/>
|
||||||
|
</g>
|
||||||
|
<!-- networked_priv -->
|
||||||
|
<!-- networked_priv->networked_pub -->
|
||||||
|
<!-- networked_distribute -->
|
||||||
|
<g id="node13" class="node"><title>networked_distribute</title>
|
||||||
|
<polygon fill="none" stroke="black" stroke-width="1.75" points="274,-84.5 188,-84.5 188,-25.5 274,-25.5 274,-84.5"/>
|
||||||
|
<text text-anchor="middle" x="231" y="-67.9" font-family="Sans" font-size="14.00">Distribute</text>
|
||||||
|
<text text-anchor="middle" x="231" y="-50.9" font-family="Sans" font-size="14.00">Public</text>
|
||||||
|
<text text-anchor="middle" x="231" y="-33.9" font-family="Sans" font-size="14.00">Keys</text>
|
||||||
|
</g>
|
||||||
|
<!-- networked_pub->networked_distribute -->
|
||||||
|
<g id="edge22" class="edge"><title>networked_pub->networked_distribute</title>
|
||||||
|
<path fill="none" stroke="black" stroke-width="1.75" d="M166.168,-47.9579C169.833,-47.8225 173.648,-47.7476 177.51,-47.7322"/>
|
||||||
|
<polygon fill="black" stroke="black" points="177.745,-51.2345 187.778,-47.8296 177.811,-44.2348 177.745,-51.2345"/>
|
||||||
|
</g>
|
||||||
|
<!-- networked_pub->networked_distribute -->
|
||||||
|
<!-- networked_monitor -->
|
||||||
|
<g id="node14" class="node"><title>networked_monitor</title>
|
||||||
|
<polygon fill="none" stroke="black" stroke-width="1.75" points="369,-88.5 297,-88.5 297,-29.5 369,-29.5 369,-88.5"/>
|
||||||
|
<text text-anchor="middle" x="333" y="-71.9" font-family="Sans" font-size="14.00">Monitor</text>
|
||||||
|
<text text-anchor="middle" x="333" y="-54.9" font-family="Sans" font-size="14.00">For</text>
|
||||||
|
<text text-anchor="middle" x="333" y="-37.9" font-family="Sans" font-size="14.00">Outputs</text>
|
||||||
|
</g>
|
||||||
|
<!-- networked_distribute->networked_monitor -->
|
||||||
|
<g id="edge23" class="edge"><title>networked_distribute->networked_monitor</title>
|
||||||
|
<path fill="none" stroke="black" stroke-width="1.75" d="M274.257,-50.016C278.18,-50.0988 282.166,-50.2384 286.118,-50.4311"/>
|
||||||
|
<polygon fill="black" stroke="black" points="286.242,-53.9451 296.437,-51.0625 286.669,-46.9582 286.242,-53.9451"/>
|
||||||
|
</g>
|
||||||
|
<!-- networked_distribute->networked_monitor -->
|
||||||
|
<!-- networked_create -->
|
||||||
|
<g id="node15" class="node"><title>networked_create</title>
|
||||||
|
<polygon fill="none" stroke="black" stroke-width="1.75" points="472,-90.5 392,-90.5 392,-31.5 472,-31.5 472,-90.5"/>
|
||||||
|
<text text-anchor="middle" x="432" y="-73.9" font-family="Sans" font-size="14.00">Create</text>
|
||||||
|
<text text-anchor="middle" x="432" y="-56.9" font-family="Sans" font-size="14.00">Unsigned</text>
|
||||||
|
<text text-anchor="middle" x="432" y="-39.9" font-family="Sans" font-size="14.00">Txes</text>
|
||||||
|
</g>
|
||||||
|
<!-- networked_monitor->networked_create -->
|
||||||
|
<g id="edge24" class="edge"><title>networked_monitor->networked_create</title>
|
||||||
|
<path fill="none" stroke="black" stroke-width="1.75" d="M369.583,-53.1976C373.559,-53.1468 377.655,-53.1603 381.757,-53.2357"/>
|
||||||
|
<polygon fill="black" stroke="black" points="381.801,-56.7386 391.905,-53.5495 382.018,-49.742 381.801,-56.7386"/>
|
||||||
|
</g>
|
||||||
|
<!-- networked_monitor->networked_create -->
|
||||||
|
<!-- networked_create->signing_sign -->
|
||||||
|
<g id="edge25" class="edge"><title>networked_create->signing_sign</title>
|
||||||
|
<path fill="none" stroke="black" stroke-width="1.75" d="M457.742,-90.2134C469.673,-103.752 483.805,-119.79 495.683,-133.269"/>
|
||||||
|
<polygon fill="black" stroke="black" points="493.144,-135.683 502.382,-140.871 498.396,-131.055 493.144,-135.683"/>
|
||||||
|
</g>
|
||||||
|
<!-- networked_sign -->
|
||||||
|
<!-- networked_create->networked_sign -->
|
||||||
|
<!-- networked_sign->networked_broadcast -->
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 8.3 KiB |
Loading…
Add table
Add a link
Reference in a new issue