1 / 53
文档名称:

比特币开发指南.docx

格式:docx   大小:203KB   页数:53页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

比特币开发指南.docx

上传人:qiang19840906 2020/9/13 文件大小:203 KB

下载得到文件列表

比特币开发指南.docx

文档介绍

文档介绍:请求支付在请求支付之前,程序需要首先生成一个比特币地址或者从其他程序,如BitcoinCore,获得一个地址。比特币地址的详细信息在交易一节中阐述,并且在该节中给出了为何要避免多次使用同一个比特币地址的两个重要原因——而第三个原因则是与支付请求有关。每次收款时使用单独地址会使辨别付款顾客身份变得更加繁琐。程序只需要追踪特定的的支付请求以及其中包含的地址,然后搜索区块链,查询匹配该地址的交易,即可确认身份。下一小节将详细介绍四种相互兼容的方法,用以向支付者提供支付地址和金额。出于便利性和兼容性考虑,推荐支持所述全部方法。钱包程序允许用户在支付界面中粘贴或者手动输入地址和支付金额。当然,这种方法并不方便,但提供了一种有效的退却选择。几乎所有的桌面钱包都可以关联到bitcoin: URIs,支付者只需要点击链接即可直接进入支付界面,同时支付地址与金额已经预填完整。许多手机移动钱包也支持此项功能,但网页钱包基本不支持,除非通过安装浏览器扩展程序或者配置URI链接句柄。大多数移动钱包支持扫描包含bitcoin: URIs编码信息的QR码,并且几乎所有的钱包程序都支持显示收款二维码。这同时也方便了在线订单,QR码对于当面交易十分有用。近期的钱包更新增加了对一种新型支付协议的支持,,提高了支付的安全性,并且引入了一些重要新特性如退款等。警告:需要特别当心针对收款支付的盗窃行为。尤其要注意的是,私钥绝对不能储存在网络服务器上,并且支付请求需要通过HTTPS或其他方法加密传输,防止中间人攻击替换收款地址。纯文本如果需要只通过复制粘贴手段就能确定支付数量,你需要提供地址、数量和单位。当然最好也包含一个有效时间,例如:(注:地址。)Pay:mjSk1Ny9spzU2fouzYgLqGUD8U41iR35QNAmount:100BTCYoumustpayby:2014-04-01at23:00UTC必须指定单位。在撰写本文时所有的流行比特币钱包程序默认显示单位均是bitcoins(BTC)或millibits(mBTC)。大多数都支持选择BTC或mBTC之一作为显示单位,还有一些程序支持以下这些单位。BitcoinsUnit(Abbreviation)(BTC)(cBTC)BitcoinsUnit(Abbreviation)(mBTC)(uBTC),在以复制粘贴文本定义支付订单时,同时指定两种单位下的数额显得更加直观。例如:Pay:mjSk1Ny9spzU2fouzYgLqGUD8U41iR35QNAmount:100BTC(mBTC)Youmustpayby:2014-04-01at23:00UTCbitcoin:URI在 BIP21中定义的 bitcoin: URI方案消除了支付者在复制粘贴文本中可能出现的支付单位的混淆。同时也能通过支付订单向支付者提供额外的信息。举个例子:bitcoin:mjSk1Ny9spzU2fouzYgLqGUD8U41iR35QN?amount=100只有地址是必要的,如果只定义了地址,钱包会生成一个预填好收款地址的支付请求,需要支付者输入支付数量。支付数量总是以BTC的小数形式确定,对于整数数量的BTC(如上例),可以省略小数点。小数数量的BTC的数量开头的0可以省略;例如,下面例子中的1mBTC的请求均是有效的:bitcoin:mjSk1Ny9spzU2fouzYgLqGUD8U41iR35QN?amount=.001bitcoin:mjSk1Ny9spzU2fouzYgLqGUD8U41iR35QN?amount= label 和message 。label 参数用来标识收款人名字,message参数通常被支付者用来描述支付请求。Label和message参数都被存储在支付者钱包程序中并不会被包含在真正的交易中,所以其他的比特币用户无法看到这两个参数信息。这两个参数必须通过URI编码。四个参数集合起来,通过URI编码,转行显示为如下形式。bitcoin:mjSk1Ny9spzU2fouzYgLqGUD8U41iR35QN\?amount=\&label=Example+Merchant\&message=Order+of+flowers+%26+chocolates上述的URI可以编码成HTML格式,以兼容不支持URI链接的钱包程序,并且可以向支付者提供一个有效时间。<ahref="bitcoin:mjSk1Ny9spzU2fouzYgLqGUD8U41iR35QN\?amount=\&la