Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
30ab984
treat MN as pre-enabled while there is no legit ping that differ from…
UdjinM6 Aug 5, 2015
9055883
implement bip69
UdjinM6 Aug 21, 2015
2fc5910
translations 20150902
UdjinM6 Sep 2, 2015
5783d5b
Sanitize mnbudget prepare|submit names and URLs
crowning- Sep 4, 2015
435f670
Merge branch 'master' into v0.12.1.x
schinzelh Sep 4, 2015
4a05549
version bump
schinzelh Sep 4, 2015
4059322
Merge branch 'master' into v0.12.1.x
schinzelh Sep 4, 2015
bf52871
UI: theme-dependent icons/images Step 1
crowning- Sep 5, 2015
7a8f73f
Merge branch 'master' into v0.12.1.x
schinzelh Sep 7, 2015
356c616
Merge pull request #598 from crowning-/v0.12.1.x
eduffield82 Sep 11, 2015
ee9018a
Merge pull request #600 from crowning-/UI_Enhancements
eduffield82 Sep 11, 2015
9d7fccf
change threadSafe (i.e. cs_main lock usage) for Dash rpc commands
UdjinM6 Sep 9, 2015
a31df6e
fix linearization tool to make it work with Dash
UdjinM6 Sep 9, 2015
c38e523
fixing reference
schinzelh Sep 12, 2015
d9ff3d7
remove extra "new line" from some error/log messages
UdjinM6 Sep 9, 2015
f68a5d8
remove depreciated dsee/dseep code
UdjinM6 Sep 9, 2015
afa99c7
Security: sanitize mnbudget parameters (part 2) DASH-5
crowning- Sep 12, 2015
02dfe6b
split usage of "masternode" command: "start" for local Hot and "start…
UdjinM6 Sep 9, 2015
82b25f5
UI: theme-dependent icons/images Step 2
crowning- Sep 12, 2015
8c33cf2
UI: theme-dependent icons/images Step 2 (permissions restored)
crowning- Sep 12, 2015
dec129d
UI: theme-dependent icons/images Step 2 (app icons relocated)
crowning- Sep 12, 2015
b9bf948
UI: theme-dependent icons/images Step 2 (Gitian-build fix)
crowning- Sep 12, 2015
39ac400
UI: theme-dependent icons/images Step 3 (CSS changes)
crowning- Sep 13, 2015
0a036e0
UI: theme-dependent icons/images (error fix)
crowning- Sep 13, 2015
f36e28e
Merge pull request #611 from crowning-/v0.12.1.x
eduffield82 Sep 14, 2015
6b35e97
Slight budgets refactor:
UdjinM6 Sep 15, 2015
841fc5f
DS MultiSession cmd-line option (try to mix constantly, few times per…
UdjinM6 Sep 15, 2015
fec3d8b
Merge pull request #595 from UdjinM6/translations20150902
eduffield82 Sep 15, 2015
14154ad
Merge pull request #614 from UdjinM6/refrpcbudget
eduffield82 Sep 15, 2015
e29241b
Merge pull request #615 from UdjinM6/dsmultisession
eduffield82 Sep 15, 2015
1338b64
UI: theme-dependent icons/images Step 4 (splash + rpcconsole)
crowning- Sep 16, 2015
0b435da
UI: theme-dependent icons/images Step 5 (About message)
crowning- Sep 16, 2015
bb49ce8
Merge remote-tracking branch 'upstream/v0.12.1.x' into UI_Enhancements
crowning- Sep 16, 2015
94a6f12
UI: theme-dependent icons/images (Win installer fix)
crowning- Sep 17, 2015
ddf71c0
Merge pull request #561 from UdjinM6/v0.12.1.x_pre_enabled
eduffield82 Sep 22, 2015
acb4146
Merge pull request #563 from UdjinM6/v0.12.1.x_bip69
eduffield82 Sep 22, 2015
e4e1fc9
Merge pull request #612 from crowning-/UI_Enhancements
eduffield82 Sep 22, 2015
3787421
merging 0.12.0.x into 0.12.1.x
schinzelh Sep 22, 2015
046c238
Merge pull request #619 from nightlydash/merge_0.12.0.x
schinzelh Sep 22, 2015
730c29f
add mnbudgetvoteraw
UdjinM6 Sep 23, 2015
a0a2b86
Merge pull request #621 from UdjinM6/mnbudgetvoteraw
eduffield82 Sep 23, 2015
2fa3615
Update tor nodes
elanaint Sep 23, 2015
e754c84
huge update for Chinese and Japanese(include it in the list now)
UdjinM6 Sep 28, 2015
f173a86
fix LP inter-mixing by not initiating new queues by them
UdjinM6 Sep 24, 2015
ac3a012
Fixed IX confirmation bug for gettransaction
Sep 26, 2015
27a4f5e
bumping to v56 for next dev iteration
schinzelh Sep 28, 2015
7c288e1
Merge branch 'v0.12.0.x' into v0.12.1.x
schinzelh Sep 28, 2015
eb29c71
Edit masternode.conf from within the wallet
crowning- Sep 28, 2015
115bb17
Edit masternode.conf from within the wallet (Menu adjusted)
crowning- Sep 28, 2015
0c0cdb3
Merge pull request #628 from crowning-/v0.12.1.x
eduffield82 Oct 2, 2015
2a25c8c
UI: wrong keypool default value displayed
crowning- Oct 4, 2015
a29e1ce
-keypool=<n> help text modified
crowning- Oct 4, 2015
3f378fe
UI: wrong keypool default value displayed part 2
crowning- Oct 5, 2015
8233135
UI: show complete path to wallet.dat on Wallet-Repait tab
crowning- Oct 25, 2015
ba053de
UI: show complete path to wallet.dat on Wallet-Repait tab (separator-…
crowning- Oct 25, 2015
eb5224c
UI: show complete path to wallet.dat on Wallet-Repait tab (Win separa…
crowning- Oct 25, 2015
dbd1956
UI: show complete path to wallet.dat on Wallet-Repait tab (Qt5 fix)
crowning- Oct 25, 2015
d29309e
Merge pull request #641 from crowning-/v0.12.1.x
eduffield82 Oct 26, 2015
6df51c9
Merge pull request #638 from crowning-/UI_Enhancements
eduffield82 Oct 27, 2015
d17bbd1
Merge remote-tracking branch 'dashpay/v0.12.1.x'
salmion Nov 23, 2015
5fc18dc
added light theme
salmion Dec 7, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N)
AC_PREREQ([2.60])
define(_CLIENT_VERSION_MAJOR, 0)
define(_CLIENT_VERSION_MINOR, 12)
define(_CLIENT_VERSION_REVISION, 0)
define(_CLIENT_VERSION_BUILD, 55)
define(_CLIENT_VERSION_REVISION, 1)
define(_CLIENT_VERSION_BUILD, 0)
define(_CLIENT_VERSION_IS_RELEASE, true)
define(_COPYRIGHT_YEAR, 2015)
AC_INIT([Dash Core],[_CLIENT_VERSION_MAJOR._CLIENT_VERSION_MINOR._CLIENT_VERSION_REVISION],[info@dashpay.io],[dash])
Expand Down
13 changes: 8 additions & 5 deletions contrib/linearize/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
# Linearize
Construct a linear, no-fork, best version of the blockchain.

## Step 0: Install dash_hash

https://github.com/dashpay/dash_hash

## Step 1: Download hash list

$ ./linearize-hashes.py linearize.cfg > hashlist.txt
Expand All @@ -20,13 +24,12 @@ Required configuration file settings:
* "input": bitcoind blocks/ directory containing blkNNNNN.dat
* "hashlist": text file containing list of block hashes, linearized-hashes.py
output.
* "output_file": bootstrap.dat
or
* "output": output directory for linearized blocks/blkNNNNN.dat output
* "output_file" for bootstrap.dat or "output" for output directory for linearized blocks/blkNNNNN.dat output

Optional config file setting for linearize-data:
* "netmagic": network magic number
* "max_out_sz": maximum output file size (default 1000*1000*1000)
* "netmagic": network magic number (default is 'cee2caff', testnet)
* "genesis": genesis block hash (default is '00000bafbc94add76cb75e2ec92894837288a481e5c005f6563d91623bf8bc2c', testnet)
* "max_out_sz": maximum output file size (default 100 \* 1000 \* 1000)
* "split_timestamp": Split files when a new month is first seen, in addition to
reaching a maximum file size.
* "file_timestamp": Set each file's last-modified time to that of the
Expand Down
20 changes: 20 additions & 0 deletions contrib/linearize/example-linearize-testnet.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@

# bitcoind RPC settings (linearize-hashes)
rpcuser=someuser
rpcpassword=somepassword
host=127.0.0.1
port=19998

# bootstrap.dat hashlist settings (linearize-hashes)
max_height=3130000

# bootstrap.dat input/output settings (linearize-data)
netmagic=cee2caff
input=/home/example/.dash/testnet3/blocks
output_file=/home/example/Downloads/bootstrap.dat
hashlist=hashlist.txt
split_year=1
genesis=00000bafbc94add76cb75e2ec92894837288a481e5c005f6563d91623bf8bc2c

# Maxmimum size in bytes of out-of-order blocks cache in memory
out_of_order_cache_sz = 10000000
9 changes: 5 additions & 4 deletions contrib/linearize/example-linearize.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,15 @@ host=127.0.0.1
port=9998

# bootstrap.dat hashlist settings (linearize-hashes)
max_height=313000
max_height=3130000

# bootstrap.dat input/output settings (linearize-data)
netmagic=f9beb4d9
input=/home/example/.bitcoin/blocks
netmagic=bf0c6bbd
input=/home/example/.dash/blocks
output_file=/home/example/Downloads/bootstrap.dat
hashlist=hashlist.txt
split_year=1
genesis=00000ffd590b1485b3caadc19b22e6379c733355108f107a430458cdf3407ab6

# Maxmimum size in bytes of out-of-order blocks cache in memory
out_of_order_cache_sz = 100000000
out_of_order_cache_sz = 10000000
26 changes: 15 additions & 11 deletions contrib/linearize/linearize-data.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import httplib
import sys
import hashlib
import dash_hash
import datetime
import time
from collections import namedtuple
Expand Down Expand Up @@ -44,15 +45,17 @@ def wordreverse(in_buf):
return ''.join(out_words)

def calc_hdr_hash(blk_hdr):
hash1 = hashlib.sha256()
hash1.update(blk_hdr)
hash1_o = hash1.digest()
#hash1 = hashlib.sha256()
#hash1.update(blk_hdr)
#hash1_o = hash1.digest()

hash2 = hashlib.sha256()
hash2.update(hash1_o)
hash2_o = hash2.digest()
#hash2 = hashlib.sha256()
#hash2.update(hash1_o)
#hash2_o = hash2.digest()

return hash2_o
#return hash2_o
pow_hash = dash_hash.getPoWHash(blk_hdr)
return pow_hash

def calc_hash_str(blk_hdr):
hash = calc_hdr_hash(blk_hdr)
Expand Down Expand Up @@ -264,7 +267,9 @@ def run(self):
f.close()

if 'netmagic' not in settings:
settings['netmagic'] = 'f9beb4d9'
settings['netmagic'] = 'cee2caff'
if 'genesis' not in settings:
settings['genesis'] = '00000bafbc94add76cb75e2ec92894837288a481e5c005f6563d91623bf8bc2c'
if 'input' not in settings:
settings['input'] = 'input'
if 'hashlist' not in settings:
Expand All @@ -291,9 +296,8 @@ def run(self):
blkindex = get_block_hashes(settings)
blkmap = mkblockmap(blkindex)

if not "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f" in blkmap:
print("not found")
if not settings['genesis'] in blkmap:
print("genesis not found")
else:
BlockDataCopier(settings, blkindex, blkmap).run()


90 changes: 56 additions & 34 deletions doc/guide-startmany.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@
There are many ways to setup a wallet to support start-many. This guide will walk through two of them.

1. [Importing an existing wallet (recommended if you are consolidating wallets).](#option1)
2. [Sending 1,000 DASH to new wallet addresses.](#option2)
2. [Sending 1000 DASH to new wallet addresses.](#option2)

## <a name="option1"></a>Option 1. Importing an existing wallet

This is the way to go if you are consolidating multiple wallets into one that supports start-many.

### From your single-instance MasterNode Wallet
### From your single-instance Masternode Wallet

Open your QT Wallet and go to console (from the menu select Tools => Debug Console)
Open your QT Wallet and go to console (from the menu select `Tools` => `Debug Console`)

Dump the private key from your MasterNode's pulic key.

Expand All @@ -23,9 +23,9 @@ dumpprivkey [mn_public_key]

Copy the resulting priviate key. You'll use it in the next step.

### From your multi-instance MasterNode Wallet
### From your multi-instance Masternode Wallet

Open your QT Wallet and go to console (from the menu select Tools => Debug Console)
Open your QT Wallet and go to console (from the menu select `Tools` => `Debug Console`)

Import the private key from the step above.

Expand All @@ -49,109 +49,131 @@ The wallet will re-scan and you will see your available balance increase by the
3. Fill in the form to request a payment.
* Label: mn01
* Amount: 1000 (optional)
* Click *Request payment*
* Click *Request payment* button
5. Click the *Copy Address* button

Create a new wallet address for each MasterNode.
Create a new wallet address for each Masternode.

Close your QT Wallet.

### Send 1,000 DASH to New Addresses
### Send 1000 DASH to New Addresses

Just like setting up a standard MN. Send exactly 1,000 DASH to each new address created above.
Just like setting up a standard MN. Send exactly 1000 DASH to each new address created above.

### Create New Masternode Private Keys

Open your QT Wallet and go to console (from the menu select Tools => Debug Console)
Open your QT Wallet and go to console (from the menu select `Tools` => `Debug Console`)

Issue the following:

```masternode genkey```

*Note: A masternode private key will need to be created for each MasterNode you run. You should not use the same masternode private key for multiple MasterNodes.*
*Note: A masternode private key will need to be created for each Masternode you run. You should not use the same masternode private key for multiple Masternodes.*

Close your QT Wallet.

## <a name="masternodeconf"></a>Create masternode.conf file

Remember... this is local. Make sure your QT is not running.

Create the masternode.conf file in the same directory as your wallet.dat.
Create the `masternode.conf` file in the same directory as your `wallet.dat`.

Copy the masternode private key and correspondig collateral output transaction that holds the 1K DASH.
Copy the masternode private key and correspondig collateral output transaction that holds the 1000 DASH.

The masternode private key may be an existing key from [Option 1](#option1), or a newly generated key from [Option 2](#option2).

*Please note, the masternode priviate key is not the same as a wallet private key. Never put your wallet private key in the masternode.conf file. That is equivalent to putting your 1,000 DASH on the remote server and defeats the purpose of a hot/cold setup.*
*Note: The masternode priviate key is **not** the same as a wallet private key. **Never** put your wallet private key in the masternode.conf file. That is almost equivalent to putting your 1000 DASH on the remote server and defeats the purpose of a hot/cold setup.*

### Get the collateral output

Open your QT Wallet and go to console (from the menu select Tools => Debug Console)
Open your QT Wallet and go to console (from the menu select `Tools` => `Debug Console`)

Issue the following:

```masternode outputs```

Make note of the hash (which is your collaterla_output) and index.
Make note of the hash (which is your collateral_output) and index.

### Enter your MasterNode details into your masternode.conf file
### Enter your Masternode details into your masternode.conf file
[From the dash github repo](https://github.com/darkcoin/darkcoin/blob/master/doc/masternode_conf.md)

The new masternode.conf format consists of a space seperated text file. Each line consisting of an alias, IP address followed by port, masternode private key, collateral output transaction id and collateral output index, donation address and donation percentage (the latter two are optional and should be in format "address:percentage").
`masternode.conf` format is a space seperated text file. Each line consisting of an alias, IP address followed by port, masternode private key, collateral output transaction id and collateral output index.

```
alias ipaddress:port masternode_private_key collateral_output collateral_output_index donationin_address:donation_percentage
alias ipaddress:port masternode_private_key collateral_output collateral_output_index
```



Example:

```
mn01 127.0.0.1:9999 93HaYBVUCYjEMeeH1Y4sBGLALQZE1Yc1K64xiqgX37tGBDQL8Xg 2bcd3c84c84f87eaa86e4e56834c92927a07f9e18718810b92e0d0324456a67c 0
mn02 127.0.0.2:9999 93WaAb3htPJEV8E9aQcN23Jt97bPex7YvWfgMDTUdWJvzmrMqey aa9f1034d973377a5e733272c3d0eced1de22555ad45d6b24abadff8087948d4 0 7gnwGHt17heGpG9Crfeh4KGpYNFugPhJdh:25
mn02 127.0.0.2:9999 93WaAb3htPJEV8E9aQcN23Jt97bPex7YvWfgMDTUdWJvzmrMqey aa9f1034d973377a5e733272c3d0eced1de22555ad45d6b24abadff8087948d4 0
```

## What about the dash.conf file?

If you are using a masternode.conf file you no longer need the dash.conf file. The exception is if you need custom settings (thanks oblox).
If you are using a `masternode.conf` file you no longer need the `dash.conf` file. The exception is if you need custom settings (_thanks oblox_). In that case you **must** remove `masternode=1` from local `dash.conf` file. This option should be used only to start local Hot masternode now.

## Update dash.conf on server

If you generated a new masternode private key, you will need to update the remote dash.conf files.
If you generated a new masternode private key, you will need to update the remote `dash.conf` files.

Shut down the daemon and then edit the file.

```sudo nano .dash/dash.conf```
```nano .dash/dash.conf```

### Edit the masternodeprivkey
If you generated a new masternode private key, you will need to update the masternodeprivkey value in your remote dash.conf file.
If you generated a new masternode private key, you will need to update the `masternodeprivkey` value in your remote `dash.conf` file.

## Start your MasterNodes
## Start your Masternodes

### Remote

If your remote server is not running, start your remote daemon as you normally would.

I usually confirm that remote is on the correct block by issuing:
You can confirm that remote server is on the correct block by issuing

```dashd getinfo```

And compare with the official explorer at http://explorer.dashpay.io/chain/Dash
and comparing with the official explorer at http://explorer.dashpay.io/chain/Dash

### Local

Finally... time to start from local.

#### Open up your QT Wallet

From the menu select Tools => Debug Console
From the menu select `Tools` => `Debug Console`

If you want to review your masternode.conf setting before starting the MasterNodes, issue the following in the Debug Console:
If you want to review your `masternode.conf` setting before starting Masternodes, issue the following in the Debug Console:

```masternode list-conf```

Give it the eye-ball test. If satisfied, you can start your nodes one of two ways.
Give it the eye-ball test. If satisfied, you can start your Masternodes one of two ways.

1. `masternode start-alias [alias_from_masternode.conf]`
Example ```masternode start-alias mn01```
2. `masternode start-many`

## Verify that Masternodes actually started

### Remote

Issue command `masternode status`
It should return you something like that:
```
dash-cli masternode status
{
"vin" : "CTxIn(COutPoint(<collateral_output>, <collateral_output_index>), scriptSig=)",
"service" : "<ipaddress>:<port>",
"pubkey" : "<1000 DASH address>",
"status" : "Masternode successfully started"
}
```
Command output should have "_Masternode successfully started_" in its `status` field now. If it says "_not capable_" instead, you should check your config again.

### Local

Search your Masternodes on https://dashninja.pl/masternodes.html

1. masternode start-alias [alias_from_masternode.conf]. Example ```masternode start-alias mn01```
2. masternode start-many
_Hint: Bookmark it, you definitely will be using this site a lot._
18 changes: 8 additions & 10 deletions doc/masternode_conf.md
Original file line number Diff line number Diff line change
@@ -1,32 +1,30 @@
Multi masternode config
=======================

The multi masternode config allows to control multiple masternodes from a single wallet. The wallet needs to have a valid collaral output of 1000 coins for each masternode. To use this, place a file named masternode.conf in the data directory of your install:
The multi masternode config allows to control multiple masternodes from a single wallet. The wallet needs to have a valid collaral output of 1000 coins for each masternode. To use this, place a file named `masternode.conf` in the data directory of your install:
* Windows: %APPDATA%\Dash\
* Mac OS: ~/Library/Application Support/Dash/
* Unix/Linux: ~/.dash/

The new masternode.conf format consists of a space seperated text file. Each line consisting of an alias, IP address followed by port, masternode private key, collateral output transaction id, collateral output index, donation address and donation percentage (the latter two are optional and should be in format "address:percentage").
`masternode.conf` format is a space seperated text file. Each line consisting of an alias, IP address followed by port, masternode private key, collateral output transaction id and collateral output index.

Example:
```
mn1 127.0.0.2:19999 93HaYBVUCYjEMeeH1Y4sBGLALQZE1Yc1K64xiqgX37tGBDQL8Xg 2bcd3c84c84f87eaa86e4e56834c92927a07f9e18718810b92e0d0324456a67c 0
mn2 127.0.0.3:19999 93WaAb3htPJEV8E9aQcN23Jt97bPex7YvWfgMDTUdWJvzmrMqey aa9f1034d973377a5e733272c3d0eced1de22555ad45d6b24abadff8087948d4 0 7gnwGHt17heGpG9Crfeh4KGpYNFugPhJdh:33
mn3 127.0.0.4:19999 92Da1aYg6sbenP6uwskJgEY2XWB5LwJ7bXRqc3UPeShtHWJDjDv db478e78e3aefaa8c12d12ddd0aeace48c3b451a8b41c570d0ee375e2a02dfd9 1 7gnwGHt17heGpG9Crfeh4KGpYNFugPhJdh
mn2 127.0.0.3:19999 93WaAb3htPJEV8E9aQcN23Jt97bPex7YvWfgMDTUdWJvzmrMqey aa9f1034d973377a5e733272c3d0eced1de22555ad45d6b24abadff8087948d4 0
mn3 127.0.0.4:19999 92Da1aYg6sbenP6uwskJgEY2XWB5LwJ7bXRqc3UPeShtHWJDjDv db478e78e3aefaa8c12d12ddd0aeace48c3b451a8b41c570d0ee375e2a02dfd9 1
```

In the example above:
* the collateral for mn1 consists of transaction http://test.explorer.dash.fr/tx/2bcd3c84c84f87eaa86e4e56834c92927a07f9e18718810b92e0d0324456a67c, output index 0 has amount 1000
* masternode 2 will donate 33% of its income
* masternode 3 will donate 100% of its income
* the collateral for `mn1` is output `0` of transaction http://test.explorer.dash.fr/tx/2bcd3c84c84f87eaa86e4e56834c92927a07f9e18718810b92e0d0324456a67c and it has amount of 1000 DASH


The following new RPC commands are supported:
* list-conf: shows the parsed masternode.conf
* start-alias \<alias\>
* stop-alias \<alias\>
* start-missing
* start-disabled
* start-many
* stop-many
* outputs: list available collateral output transaction ids and corresponding collateral output indexes

When using the multi masternode setup, it is advised to run the wallet with 'masternode=0' as it is not needed anymore.
When using remote masternode setup, you **must** remove `masternode=1` from local `dash.conf` file if you had it there in previous versions. This option should be used only to start local Hot masternode now.
6 changes: 5 additions & 1 deletion doc/tor.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,10 +97,14 @@ for normal IPv4/IPv6 communication, use:
3. List of known dash Tor relays
------------------------------------

* [dashie7ghp67.onion](http://dashie7ghp67.onion/)
* [darkcoinie7ghp67.onion](http://darkcoinie7ghp67.onion/)
* [drktalkwaybgxnoq.onion](http://drktalkwaybgxnoq.onion/)
* [drkcoinooditvool.onion](http://drkcoinooditvool.onion/)
* [darkcoxbtzggpmcc.onion](http://darkcoxbtzggpmcc.onion/)
* [ssapp53tmftyjmjb.onion](http://ssapp53tmftyjmjb.onion/)
* [j2dfl3cwxyxpbc7s.onion](http://j2dfl3cwxyxpbc7s.onion/)
* [vf6d2mxpuhh2cbxt.onion](http://vf6d2mxpuhh2cbxt.onion/)
* [rj24sicr6i4vsnkv.onion](http://rj24sicr6i4vsnkv.onion/)
* [wrwx2dy7jyh32o53.onion](http://wrwx2dy7jyh32o53.onion/)
* [f5ekot4ajkbe23gt.onion](http://f5ekot4ajkbe23gt.onion/)
* [dshtord4mqvgzqev.onion](http://dshtord4mqvgzqev.onion/)
Loading