ColdWallet

title:

author: me

draft: false

top: false

update: 2017-10-31 09:36:00

date: 2017-12-03 10:55:31 cover: /images/avatar.jpeg tags: - bigzhu preview:


文档资料

http://www.wanbizu.com/baike/201408191710.html

https://zhuanlan.zhihu.com/p/29383714

最多3方管理

先安一个 bitcoin core, 用 testnet, 搞一点币进来

安装 python-bitcoinrpc

pipenv install python-bitcoinrpc

python-bitcoinrpc 是比特币的 JSON-RPC API 的 Python 实现

bitcoin api

调用 bitcoin 的 client api 做一些事, 用的 https://github.com/lomocoin/go-bitcoind 这个库, 没什么文档说明, 只有一个函数调用参数

话说这个库也太冷了, 都没什么人用

还是看这里: https://bitcoin.org/en/developer-reference#listunspent 应该是一一对应的

冷热钱包解析

CreateRawTransaction 是入口, 请求生成一个交易, 只传入 toAddress string, amount float64

先调用 listunspent:

transactions, err := BC.ListUnspent(6, 999999)

获取至少6次确认的未花费交易, 为0则会返回未确认的交易

列出目前未花费交易, 把 item.Address 和 currency.json 中配置的 Withdrawal 循环比较

Withdrawal 是什么? 回撤? 回退? 不相等就跳过又是什么逻辑? Withdrawal 配置了只有指定地址的币可以提出来

遍历中, 把金额累加到 alreadySpent 里, 得到目前还有的钱.

		if amount+Fee <= alreadySpent {
			break
		}

Fee 是手续费用? 如果证明余额够, 那么就没必要循环了.

话说为啥要叫 alreadySpent, 太误导人了吧!

算出 alreadySpent-amount-Fee 后, 放入 amounts[Withdraw] 里, 零钱?

amounts[toAddress] = amount 才是糊涂了, 把金额放到交易地址里? 汗.

问明白了, 后面要用的结构体是这样的:

address 为 key, amount 为 value .

lomocoin

从项目 https://github.com/lomocoin/lomocoin-wl 编译出来, 只能在 linux 下编译

createsendfromaddress 命令