達世幣從入門到XX
DASH是以比特幣為基礎,它的程式碼是fork了bitcoin的。
比特幣遇到的問題
- 確認時間長
- 只提供低層次的隱私保護
- ASIC礦機導致的中心化問題
- 礦池(存在51%攻擊的可能)
解決方案
- 使用InstantSend進行即時交易
- PrivateSend(匿名傳送)服務
- X11演算法
- 推出一個擁有兩層(礦工和Masternode)的獎勵性網路
即時交易
InstantSend系統可以先將款項鎖在交易中。當主節點網路能夠達成共識,便能自動確認交易,否則則經由正常挖礦的渠道以確認交易。如果交易與過往交易發生衝突,交易將被拒絕。
X11演算法
X11由11輪SHA3演算法組成,每輪雜湊計算的結果都被提交到區塊鏈的下一輪計算去。使用多輪演算法,可以減少專門為數字貨幣挖礦設計的ASIC使用的概率。
這些演算法是:blake、bmw、groestl、jh、keccak、skein、luffa、cubehash、shavite、simd、echo
匿名支付
PrivateSend是一個基於CoinJoin的硬幣混合服務。它將多方的資金合併在一起對外發送。匿名支付的交易都會取整數,所以所有的交易輸入都會被使用。任何超出部分都會被用於交易手續費。
原理:
- 主節點接收到混幣請求。
- 當有另外2個人請求參與混幣的時候,主節點將進行混幣(每輪的混幣限制為1000DASH,面額是0.01達世幣,0.1達世幣,1達世幣和10達世幣)。
- 主節點將幣混在一起,並給這三個使用者的錢包指令,讓它們把這些現在已經轉化了的幣回付給自己。你的錢包將這些面額直接付給自己,但是地址已經改變(稱為變更地址)。
- 多輪以上流程。
主節點
- 主節點擁有者必須持有1000個達世幣,經電子簽名後向網路廣播後認證。
- 45%的區塊獎勵被分配支付給主節點網路。
- 使用特定的確定演算法建立主節點的偽隨機排序。
-
沒有一人能控制整個主節點網路。
- 非信任制的Quorum(法定人數)。
- 服務量證明機制。
- PrivateSend(匿名傳送)和 InstantSend(即時支付)服務。
引數
- 代幣符號:DASH
- 原始塊產生於2014年1月18日,東部時間晚11點
- 區塊時間2.6分鐘, 區塊大小2MB, 約56筆交易每秒
- 每年區塊獎勵減產率7.14%
- 總髮行量在17.74M到18.92M之間
- 激勵機制:礦工45%、主節點45%、達世自治組織10%
錢包
- Dash Core錢包
- 達世幣輕錢包
- 達世幣移動端錢包(安卓、iOS)
- 達世幣Copay錢包(商家錢包)
- 冷錢包(紙錢包、硬體錢包)
- 其他錢包(網頁錢包、簡訊錢包、第三方錢包)
瀏覽器
主網
測試網路
- https://test.explorer.dash.org - by flare
- https://test.insight.dash.siampm.com - by thelazier
- https://test.explorer.dashninja.pl - by elbereth
- http://test.insight.masternode.io:3001 - by coingun
- http://insight.test.dash.crowdnode.io
- https://testnet-insight.dashevo.org/insight
開發者
Dash Core錢包
Dash Core錢包由達世幣官方全權發行,支援達世幣的所有功能,包括即時支付和匿名支付,以及遠端過程呼叫RPC控制檯和管理功能。
原始碼地址:https://github.com/dashpay/dash
原始碼編譯
基於Docker進行編譯。
拉取Ubuntu映象:docker pull ubuntu
執行Ubuntu映象:docker run -it --name dash_ubuntu ubuntu
對Ubuntu進行一些基礎安裝:
apt-get update && apt-get install -y sudo && rm -rf /var/lib/apt/lists/* sudo apt-get update apt-get install vim apt-get install software-properties-common
參考編譯Dash Core - Linux 編譯程式碼。
用docker的commit命令,打成image後的結果:
~ docker images REPOSITORYTAGIMAGE IDCREATEDSIZE dash-ubuntulatest203426ab7b5518 hours ago3.38GB ubuntulatest93fd78260bd14 weeks ago86.2MB
Tips: 這裡是生成了docker的映象,生產環境中可以直接使用官方打好的二進位制檔案。
命令和引數
啟動dash服務
root@7bbd91172345:~# dashd --daemon --testnet --server --rest --rpcuser=waterblock --rpcpassword=waterblock Dash Core server starting
這樣,就啟動了一個測試網路,並設定了rpc的使用者名稱密碼。這裡的使用者名稱密碼必須設定,不然執行不了dash-cli
。
dash-cli
root@7bbd91172345:~# dash-cli --rpcuser=waterblock --rpcpassword=waterblock --testnet help == Addressindex == getaddressbalance getaddressdeltas getaddressmempool getaddresstxids getaddressutxos == Blockchain == getbestblockhash getblock "blockhash" ( verbose ) getblockchaininfo getblockcount getblockhash height getblockhashes timestamp .....
這樣就獲得幫助命令。
dash-cli的一些示例:
dash-cli --rpcuser=waterblock --rpcpassword=waterblock --testnet getblockchaininfo dash-cli --rpcuser=waterblock --rpcpassword=waterblock --testnet getblockcount dash-cli --rpcuser=waterblock --rpcpassword=waterblock --testnet stop
這裡,執行dash-cli命令必須新增--rpcuser=waterblock --rpcpassword=waterblock --testnet
,除非在dash.conf
配置了。
例如:
root@7bbd91172345:~/.dashcore# cat dash.conf rpcuser=waterblock rpcpassword=onecafe@123
參考官方的文件:命令和引數
Dashd for Docker
Dash Core官方提供了Docker映象。
Quick Start
拉取docker映象
docker pull dashpay/dashd
建立Docker資料卷,用來儲存區塊鏈的資料
docker volume create --name=dashd-data
執行映象
docker run -v dashd-data:/dash --name=dashd-node -d \ -p 9999:9999 \ -p 127.0.0.1:9998:9998 \ dashpay/dashd
驗證正在執行的容器,dashd節點正在下載區塊鏈
docker ps
檢視輸出
docker logs -f dashd-node
進入執行中的容器
docker exec -it dashd-node bash -l
執行dash-cli命令
dash-cli getinfo
Tips: 不知道是否是網路的原因還是啥的,執行20多分鐘後才開始同步節點。
執行測試網路
docker run -v dashd-data:/dash --name=dashd-node -d \ --env TESTNET=1 \ -p 9999:9999 \ -p 127.0.0.1:9998:9998 \ dashpay/dashd
區塊的同步
為什麼會有這個模組?因為很久才開始同步區塊(主網和測試網路都一樣),久到我都開始懷疑人生了……
主網的:
2018-12-20 08:18:53 Pre-allocating up to position 0x100000 in rev00000.dat 2018-12-20 08:18:53 UpdateTip: new best=000007d91d1254d60e2dd1ae580383070a4ddffa4c64c2eeb4a2f9ecc0414343 height=1 version=0x00000002 log2_work=21.00002201 tx=2 date='2014-01-19 03:54:41' progress=0.000000 cache=0.0MiB(1txo) 2018-12-20 08:18:53 ProcessNewBlock : ACCEPTED 2018-12-20 08:18:53 UpdateTip: new best=00000bafcc571ece7c5c436f887547ef41b574e10ef7cc6937873a74ef1efeae height=2 version=0x00000002 log2_work=21.58498451 tx=3 date='2014-01-19 03:54:46' progress=0.000000 cache=0.0MiB(2txo) 2018-12-20 08:18:53 ProcessNewBlock : ACCEPTED 2018-12-20 08:18:53 UpdateTip: new best=00000269705556d97bc6d2e1a02c9b9031b2415192ed1ef820f384ce0d8de0ff height=3 version=0x00000002 log2_work=22.00002201 tx=4 date='2014-01-19 03:55:01' progress=0.000001 cache=0.0MiB(3txo) 2018-12-20 08:18:53 ProcessNewBlock : ACCEPTED 2018-12-20 08:18:53 UpdateTip: new best=000006fce46cbe25996ed9a11092622cccdc37bd423992f44d2165b7e89b67e4 height=4 version=0x00000002 log2_work=22.32195011 tx=5 date='2014-01-19 03:55:10' progress=0.000001 cache=0.0MiB(4txo) 2018-12-20 08:18:53 ProcessNewBlock : ACCEPTED 2018-12-20 08:18:53 UpdateTip: new best=0000097f56152f7f68faaccc0426725e0b6c507170432d48b685403637ba10a2 height=5 version=0x00000002 log2_work=22.58498451 tx=6 date='2014-01-19 03:55:13' progress=0.000001 cache=0.0MiB(5txo) 2018-12-20 08:18:53 ProcessNewBlock : ACCEPTED 2018-12-20 08:18:53 UpdateTip: new best=00000c1fa7a288cc75fe47ee2ca5f249b2cfc83e7ddbf1657e18ab183f88b668 height=6 version=0x00000002 log2_work=22.80737694 tx=7 date='2014-01-19 03:55:22' progress=0.000001 cache=0.0MiB(6txo) 2018-12-20 08:18:53 ProcessNewBlock : ACCEPTED 2018-12-20 08:18:53 UpdateTip: new best=00000fba5440df1090d1b37dc42581b5abb909a0b89b4b6da6245236e6ccf434 height=7 version=0x00000002 log2_work=23.00002201 tx=8 date='2014-01-19 03:55:23' progress=0.000001 cache=0.0MiB(7txo) ...
測試網路的:
2018-12-20 09:09:40 Pre-allocating up to position 0x100000 in rev00000.dat 2018-12-20 09:09:40 UpdateTip: new best=0000047d24635e347be3aaaeb66c26be94901a2f962feccd4f95090191f208c1 height=1 version=0x00000002 log2_work=21.00001169 tx=2 date='2014-04-28 19:19:31' progress=0.000000 cache=0.0MiB(1txo) 2018-12-20 09:09:40 ProcessNewBlock : ACCEPTED 2018-12-20 09:09:40 UpdateTip: new best=00000c6264fab4ba2d23990396f42a76aa4822f03cbc7634b79f4dfea36fccc2 height=2 version=0x00000002 log2_work=21.58497764 tx=3 date='2014-04-28 19:19:32' progress=0.000001 cache=0.0MiB(2txo) 2018-12-20 09:09:40 ProcessNewBlock : ACCEPTED 2018-12-20 09:09:40 UpdateTip: new best=0000057d5c945acbe476bc17bbbaeb2fc1c1b18673e7582c48ac04af61f4d811 height=3 version=0x00000002 log2_work=22.00001685 tx=4 date='2014-04-28 19:19:34' progress=0.000001 cache=0.0MiB(3txo) 2018-12-20 09:09:40 ProcessNewBlock : ACCEPTED 2018-12-20 09:09:40 UpdateTip: new best=000002258bd58bf4cdcde282abc030437c103dbb12d2a7dbc978d07bcf386b42 height=4 version=0x00000002 log2_work=22.32194598 tx=5 date='2014-04-28 19:19:42' progress=0.000001 cache=0.0MiB(4txo) 2018-12-20 09:09:40 ProcessNewBlock : ACCEPTED 2018-12-20 09:09:40 UpdateTip: new best=00000b1406007f9148c4c173e2314437a315b79b5b79e73ed534a2e8b18a43fc height=5 version=0x00000002 log2_work=22.58498107 tx=6 date='2014-04-28 19:19:44' progress=0.000001 cache=0.0MiB(5txo) 2018-12-20 09:09:40 ProcessNewBlock : ACCEPTED 2018-12-20 09:09:40 UpdateTip: new best=00000d93de4b31ec550d324876ee7c502a073911972d26c2c990b94d9d5b5a44 height=6 version=0x00000002 log2_work=22.80737399 tx=7 date='2014-04-28 19:19:47' progress=0.000001 cache=0.0MiB(6txo) ...