Advertisement
Guest User

counterparty-btcd setup script

a guest
Jan 14th, 2016
429
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.50 KB | None | 0 0
  1. counterparty-btcd
  2. =================
  3.  
  4. Use `counterparty-server` and `counterparty-client` on Arch Linux.
  5.  
  6.  
  7. Steps
  8. -----
  9.  
  10. 1. [Install](#install)
  11. 2. [Sync](#sync)
  12. 3. [Use](#use)
  13.  
  14.  
  15. Install
  16. -------
  17.  
  18. #### btcsuite
  19.  
  20. Install btcd and btcwallet:
  21.  
  22. ```
  23. curl -O https://aur.archlinux.org/packages/bt/btcd/btcd.tar.gz
  24. tar xvzf btcd.tar.gz
  25. cd btcd
  26. makepkg -Acsi --pkg btcd,btcwallet
  27. ```
  28.  
  29. #### counterparty
  30.  
  31. Install counterparty-cli (provides client and server):
  32.  
  33. ```
  34. pacaur -S counterparty-cli
  35. ```
  36.  
  37.  
  38. Sync
  39. ----
  40.  
  41. #### btcsuite
  42.  
  43. Make data directories:
  44.  
  45. ```
  46. mkdir ~/.btc{ctl,d,wallet}
  47. chmod 700 ~/.btc{ctl,d,wallet}
  48. # disable Btrfs CoW: https://github.com/atweiden/dotfiles/blob/master/_functions.d/chattrify.sh
  49. for _dir in btcctl btcd btcwallet; do
  50. chattrify "$_dir" "700" "linuxusername" "linuxusergroup"
  51. done
  52. ```
  53.  
  54. Edit btcd config files for mainnet:
  55.  
  56. ```
  57. cat > ~/.btcd/btcd.conf << 'EOF'
  58. [Application Options]
  59. rpcuser=btcd_mainnet
  60. rpcpass=btcd_mainnet_secret
  61. notls=1
  62. addrindex=1
  63. EOF
  64. ```
  65.  
  66. Edit btcd config files for testnet:
  67.  
  68. ```
  69. cat > ~/.btcd/btcd.testnet.conf << 'EOF'
  70. [Application Options]
  71. rpcuser=btcd_testnet
  72. rpcpass=btcd_testnet_secret
  73. notls=1
  74. testnet=1
  75. addrindex=1
  76. EOF
  77. ```
  78.  
  79. Edit btcctl config files for mainnet:
  80.  
  81. ```
  82. cat > ~/.btcctl/btcctl.conf << 'EOF'
  83. [Application Options]
  84. rpcuser=btcd_mainnet
  85. rpcpass=btcd_mainnet_secret
  86. notls=1
  87. EOF
  88. ```
  89.  
  90. ```
  91. cat > ~/.btcctl/wallet.conf << 'EOF'
  92. [Application Options]
  93. rpcuser=btcw_mainnet
  94. rpcpass=btcw_mainnet_secret
  95. notls=1
  96. EOF
  97. ```
  98.  
  99. Edit btcctl config files for testnet:
  100.  
  101. ```
  102. cat > ~/.btcctl/btcctl.testnet.conf << 'EOF'
  103. [Application Options]
  104. rpcuser=btcd_testnet
  105. rpcpass=btcd_testnet_secret
  106. notls=1
  107. testnet=1
  108. EOF
  109. ```
  110.  
  111. ```
  112. cat > ~/.btcctl/wallet.testnet.conf << 'EOF'
  113. [Application Options]
  114. rpcuser=btcw_testnet
  115. rpcpass=btcw_testnet_secret
  116. notls=1
  117. testnet=1
  118. EOF
  119. ```
  120.  
  121. Sync btcd:
  122.  
  123. ```
  124. # mainnet
  125. btcd &
  126. btcctl getmininginfo
  127.  
  128. # testnet
  129. btcd -C ~/.btcd/btcd.testnet.conf &
  130. btcctl -C ~/.btcctl/btcctl.testnet.conf getmininginfo
  131. ```
  132.  
  133. Edit btcwallet config files:
  134.  
  135. ```
  136. cat > ~/.btcwallet/btcwallet.conf << 'EOF'
  137. [Application Options]
  138. mainnet=1
  139. username=btcw_mainnet
  140. password=btcw_mainnet_secret
  141. btcdusername=btcd_mainnet
  142. btcdpassword=btcd_mainnet_secret
  143. noclienttls=1
  144. noservertls=1
  145. EOF
  146. ```
  147.  
  148. Edit btcwallet config files for testnet:
  149.  
  150. ```
  151. cat > ~/.btcwallet/btcwallet.testnet.conf << 'EOF'
  152. [Application Options]
  153. username=btcw_testnet
  154. password=btcw_testnet_secret
  155. btcdusername=btcd_testnet
  156. btcdpassword=btcd_testnet_secret
  157. noclienttls=1
  158. noservertls=1
  159. EOF
  160. ```
  161.  
  162. Sync btcwallet:
  163.  
  164. ```
  165. # for tls
  166. cp ~/.btcd/rpc.cert ~/.btcwallet/btcd.cert
  167.  
  168. # mainnet
  169. btcwallet --create
  170. btcwallet &
  171.  
  172. # testnet
  173. btcwallet -C ~/.btcwallet/btcwallet.testnet.conf --create
  174. btcwallet -C ~/.btcwallet/btcwallet.testnet.conf &
  175. ```
  176.  
  177. #### counterparty
  178.  
  179. Make data directory:
  180.  
  181. ```
  182. mkdir -p ~/.counterparty ~/.config/counterparty
  183. chmod 700 ~/.counterparty ~/.config/counterparty
  184.  
  185. # disable Btrfs CoW: https://github.com/atweiden/dotfiles/blob/master/_functions.d/chattrify.sh
  186. chattrify "~/.counterparty" "700" "linuxusername" "linuxusergroup"
  187. ```
  188.  
  189. Fetch Counterparty bootstrap database:
  190.  
  191. ```
  192. cd ~/.counterparty
  193.  
  194. # mainnet
  195. curl -O https://s3.amazonaws.com/counterparty-bootstrap/counterparty-db.latest.tar.gz
  196. tar xvzf counterparty-db.latest.tar.gz
  197. sha256sum -c checksums.txt
  198.  
  199. # testnet
  200. curl -O https://s3.amazonaws.com/counterparty-bootstrap/counterparty-db-testnet.latest.tar.gz
  201. tar xvzf counterparty-db-testnet.latest.tar.gz
  202. sha256sum -c checksums.txt
  203. ```
  204.  
  205. Edit counterparty-server config files for mainnet:
  206.  
  207. ```
  208. cat > ~/.config/counterparty/server.conf << 'EOF'
  209. [Default]
  210. backend-name = btcd
  211. backend-connect = localhost
  212. backend-port = 8334
  213. backend-user = btcd_mainnet
  214. backend-password = btcd_mainnet_secret
  215. backend-ssl = 0
  216. backend-ssl-verify = 0
  217. backend-poll-interval = 2.00000000
  218. rpc-host = localhost
  219. rpc-user = counterparty_server_mainnet
  220. rpc-password = counterparty_server_mainnet_secret
  221. rpc-allow-cors = 1
  222. verbose = 1
  223. testcoin = 0
  224. force = 0
  225. database-file = /home/linuxusername/.counterparty/counterparty.db
  226. broadcast-tx-mainnet = btcd
  227. EOF
  228. ```
  229.  
  230. Edit counterparty-server config files for testnet:
  231.  
  232. ```
  233. cat > ~/.config/counterparty/server.testnet.conf << 'EOF'
  234. [Default]
  235. testnet = 1
  236. backend-name = btcd
  237. backend-connect = localhost
  238. backend-port = 18334
  239. backend-user = btcd_testnet
  240. backend-password = btcd_testnet_secret
  241. backend-ssl = 0
  242. backend-ssl-verify = 0
  243. backend-poll-interval = 2.00000000
  244. rpc-host = localhost
  245. rpc-user = counterparty_server_testnet
  246. rpc-password = counterparty_server_testnet_secret
  247. rpc-allow-cors = 1
  248. verbose = 1
  249. testcoin = 0
  250. force = 0
  251. database-file = /home/linuxusername/.counterparty/counterparty.testnet.db
  252. broadcast-tx-mainnet = btcd
  253. EOF
  254. ```
  255.  
  256. Sync counterparty-server mainnet:
  257.  
  258. ```
  259. counterparty-server start &
  260. ```
  261.  
  262. Sync counterparty-server testnet:
  263.  
  264. ```
  265. counterparty-server --config-file ~/.config/counterparty/server.testnet.conf start &
  266. ```
  267.  
  268. Edit counterparty-client config files for mainnet:
  269.  
  270. ```
  271. cat > ~/.config/counterparty/client.conf << 'EOF'
  272. [Default]
  273. counterparty-rpc-connect = localhost
  274. counterparty-rpc-user = counterparty_server_mainnet
  275. counterparty-rpc-password = counterparty_server_mainnet_secret
  276. counterparty-rpc-ssl = 0
  277. counterparty-rpc-ssl-verify = 0
  278. wallet-name = btcwallet
  279. wallet-connect = localhost
  280. wallet-port = 8332
  281. wallet-user = btcw_mainnet
  282. wallet-password = btcw_mainnet_secret
  283. wallet-ssl = 0
  284. wallet-ssl-verify = 0
  285. testcoin = 0
  286. unconfirmed = 0
  287. encoding = auto
  288. fee-per-kb = 0.00010000
  289. regular-dust-size = 0.00005430
  290. multisig-dust-size = 0.00007800
  291. op-return-value = 0.00000000
  292. unsigned = 0
  293. EOF
  294. ```
  295.  
  296. Edit counterparty-client config files for testnet:
  297.  
  298. ```
  299. cat > ~/.config/counterparty/client.testnet.conf << 'EOF'
  300. [Default]
  301. testnet = 1
  302. counterparty-rpc-connect = localhost
  303. counterparty-rpc-user = counterparty_server_testnet
  304. counterparty-rpc-password = counterparty_server_testnet_secret
  305. counterparty-rpc-ssl = 0
  306. counterparty-rpc-ssl-verify = 0
  307. wallet-name = btcwallet
  308. wallet-connect = localhost
  309. wallet-port = 18332
  310. wallet-user = btcw_testnet
  311. wallet-password = btcw_testnet_secret
  312. wallet-ssl = 0
  313. wallet-ssl-verify = 0
  314. testcoin = 0
  315. unconfirmed = 0
  316. encoding = auto
  317. fee-per-kb = 0.00010000
  318. regular-dust-size = 0.00005430
  319. multisig-dust-size = 0.00007800
  320. op-return-value = 0.00000000
  321. unsigned = 0
  322. EOF
  323. ```
  324.  
  325.  
  326. Use
  327. ---
  328.  
  329. #### Mainnet
  330.  
  331. ```
  332. counterparty-client getinfo
  333. [INFO] Running v1.1.1 of counterparty-client.
  334. {
  335. "bitcoin_block_count": 353140,
  336. "db_caught_up": true,
  337. "last_block": {
  338. "block_hash": "00000000000000000ed0820ebe35751ce42b2732ab5974bf4d6cf2b4810f56d2",
  339. "block_index": 353140,
  340. "block_time": 1429650140,
  341. "difficulty": 47610564513.47126,
  342. "ledger_hash": "ccffe233a77f45f84a2d60ab91d19e081362b50c1323a9ca98cd3fefbb68f4c7",
  343. "previous_block_hash": "000000000000000007842345b35aed2a887f6b16c6e9c0657d0841408dac7c47",
  344. "txlist_hash": "3bf97aca0eee22dc32d114a8207dc6f8f60381caef3a73b06c0868eb88d37af2"
  345. },
  346. "last_message_index": 781458,
  347. "running_testcoin": false,
  348. "running_testnet": false,
  349. "version_major": 9,
  350. "version_minor": 51,
  351. "version_revision": 1
  352. }
  353. ```
  354.  
  355. #### Testnet
  356.  
  357. ```
  358. counterparty-client --config-file ~/.config/counterparty/client.testnet.conf getinfo
  359. [INFO] Running v1.1.1 of counterparty-client.
  360. {
  361. "bitcoin_block_count": 350124,
  362. "db_caught_up": true,
  363. "last_block": {
  364. "block_hash": "00000000000029aff55599bf333bf984a67819c1f1befac9364f0297d226e572",
  365. "block_index": 350124,
  366. "block_time": 1429651059,
  367. "difficulty": 262144,
  368. "ledger_hash": "7e7d67bce2c710d9b818be10f324ee9aca88ef8bac6023dca604c5154e4aac69",
  369. "previous_block_hash": "000000004a1cbd32f7990b21affb00dc156ddd0ea1ec9b6ec3e69a16a8c7fdf1",
  370. "txlist_hash": "88bde4213e6c0b1b50c2d0ec57858813edfa9fa4254e8ac4959da3f916189e90"
  371. },
  372. "last_message_index": 9553,
  373. "running_testcoin": false,
  374. "running_testnet": true,
  375. "version_major": 9,
  376. "version_minor": 51,
  377. "version_revision": 1
  378. }
  379. ```
  380.  
  381. #### btcsuite
  382.  
  383. ```
  384. # list accounts
  385. btcctl -C ~/.btcctl/wallet.conf --wallet listaccounts
  386.  
  387. # decrypt wallet for 180 seconds
  388. btcctl -C ~/.btcctl/wallet.conf --wallet walletpassphrase "$BTCW_PASSPHRASE" 180
  389.  
  390. # create new account
  391. btcctl -C ~/.btcctl/wallet.conf --wallet createnewaccount "accountname"
  392.  
  393. # list accounts
  394. btcctl -C ~/.btcctl/wallet.conf --wallet listaccounts 0
  395.  
  396. # create new address
  397. btcctl -C ~/.btcctl/wallet.conf --wallet getnewaddress
  398.  
  399. # import a private key
  400. btcctl -C ~/.btcctl/wallet.conf --wallet importprivkey "L4Qf5hcFAbewoa6FbH6U6nYBzS2sfesdQWwfyCa1m5oYyijtAGf8"
  401.  
  402. # get balance
  403. btcctl -C ~/.btcctl/wallet.conf --wallet getbalance
  404.  
  405. # list received by address
  406. btcctl -C ~/.btcctl/wallet.conf --wallet listreceivedbyaddress 0 true
  407.  
  408. # get btcd block height
  409. btcctl -C ~/.btcctl/btcctl.testnet.conf getblockcount | jq '.'
  410.  
  411. # get btcwallet total balance
  412. perl6 -e 'say [+] |qx{btcctl -C ~/.btcctl/wallet.testnet.conf --wallet listreceivedbyaddress 0 true | jq ".[] | .amount"}.trim.split("\n")'
  413.  
  414. # stop btcwallet
  415. btcctl -C ~/.btcctl/ --wallet stop
  416.  
  417. # stop btcd
  418. btcctl -C ~/.btcctl/btcctl.testnet.conf stop
  419. ```
  420.  
  421.  
  422. Licensing
  423. ---------
  424.  
  425. This is free and unencumbered public domain software. For more
  426. information, see http://unlicense.org/ or the accompanying UNLICENSE file.
  427.  
  428. from https://gist.github.com/atweiden/633fadd8aa7c6a54bead
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement