引用:http://bbs.btcman.com/thread-1311-1-2.html
  
 帮助-调试窗口-控制台:
 
 商家A输入, validateaddress <商家的任意收款地址>
 获得公钥 pubkey_A ,并对外公开。
 
 买家B输入,validateaddress  <自己的任意收款地址>
 获得公钥 pubkey_B,
 然后再输入 addmultisigaddress 2 '["<pubkey_A>","<pubkey_B>"]'           // 记得替换掉啊。<>符号也替换掉,下同。
 则可生成多重签名的<收款地址C>
 买家发币给<收款地址C>, 并把pubkey_B发给商家
 
 等待全网确认。
 此时<收款地址C>,需要商家A和买家B同时签名,才能转币出去,也就是P2P担保地址。
 
 商家收都买家发来的信息时,先检查买家确实是发给担保地址,输入
 商家: addmultisigaddress 2 '["<pubkey_A>","<pubkey_B>"]' 
 则可获得<收款地址C>,可检查买家确实是发送币到< P2P担保地址 - 收款地址C>上。
 若相同,则可以确认是与你相关的担保地址,则可以发货。否则是假的。
 另外的,Bitcoin的<P2P担保地址> 有个直观的特点, 其是以3xxxxx开头的收款地址(2开头的是测试网络的)
 
 此时买家可以等到货确认了。
 
 ----------- 确认到货 -------
 如果确认到货的话,则需要输入.
 商家:  createrawtransaction '[{"txid":"<交易ID>","vout":0}]' '{"<商家的任意收款地址>":<币值>}'
 会生成:会生成<16进制的交易数据1>
 以上<交易ID>是之前发送给<收款地址C>时的交易ID,在买家发送时候会有生成,也可以blockchain或交易记录上查询,一般需要买家提供信息才行。
 商家:  signrawtransaction <16进制的交易数据1>
 会生成 <部分签名与交易数据1>
 将生成的<部分签名与交易数据1>,发给买家,需要买家来签名。
 以上操作可以提早做,比如在发货的同时,发给的买家的。
 /////
 买家拿到商家的<部分签名与交易数据1>,先检查下确实是从<p2p担保地址C>里转币出去的,防止转的是自己其他地址的币。(这部分原文档上是没有的,我这里加上去。)
 买家:  decoderawtransaction  <部分签名与交易数据1>
 检查vin.txid = <交易ID>,确认是对的,则输入
 买家:  signrawtransaction <部分签名与交易数据1>
 会生成<完整签名与交易数据2>
 买家:  sendrawtransaction <完整签名与交易数据2>
 发款完成。。已将<收款地址C>上的钱转给商家了
 
 以上比较麻烦,现在没界面做,所以比较蛋疼。
 ------------  不确认到货,要求<收款地址C>上的钱打回来 -------
 然后再说说不确认到货、退款的流程,其实都差不多的,但有个前提条件,那就是上面的[确认到货]没有做过,即<收款地址C>里的钱还未转到<商家收款地址>上。
 先与商家协商好,确认可以退款。
 买家:  createrawtransaction '[{"txid":"<交易ID>","vout":0}]' '{"<买家自己的任意收款地址>":<币值>}'
 买家:  signrawtransaction <16进制的交易数据1>
 相同,也会生成<部分签名与交易数据1>,也是发给商家,等商家确认签名退款。
 
 商家先对<部分签名与交易数据1>检查,先确实是从<p2p担保地址C>里转币出去的,防止转的是自己其他地址的币。(这部分原文档上是没有的,我这里加上去。)
 商家:  decoderawtransaction  <部分签名与交易数据1>
 检查vin.txid = <交易ID>,确认是对的,则输入
 商家:  signrawtransaction <部分签名与交易数据1>
 会生成<完整签名与交易数据2>
 商家:  sendrawtransaction <完整签名与交易数据2>
 -------
 OVER。
 (以上的有关签名或交易数据,若是json数据{},则一般是复制hex字段.)
 
 需要注意的,
 1,在以上操作中,没有第三人协调,要是双方协调不了,那币就死在收款地址上了。(当然你可以考虑法庭来帮忙,强制要求他做)
 2,一开始的收款地址A与收款地址B不能丢,即,不能换钱包,否则签名时会失败。
 3,由于是两次转账,所以需要付两次全网手续费。
 4,若两者的createrawtransaction搞混了,可以用decoderawtransaction 检查下发款金额,目标收款地址,和币来源的交易ID(不是发款地址哦,要看发款地址还需要再查一下前交易内容)
 
 ---------
 补充 addmultisigaddress 的第二个参数是决定至少需要几个人的签名才可以提币。
 换句话说,这里可以加入第三人协调
 addmultisigaddress 2 '["<pubkey_商家A>","<pubkey_买家B>","<pubkey_第三方裁定人C>"]' 
 这样,只需要其中两人,即可转币,可以实现第三方裁判.
 --------
 下载文件:Screen Shot 2014-07-23 at 6.15.37 PM(1)