Bitcoind

使用 python 比特幣庫在測試網上發送比特幣時無法發送錯誤

  • August 9, 2016

當我執行腳本時

from bitcoin.core import COIN, b2lx
import bitcoin.wallet
import bitcoin.rpc

rpc = bitcoin.rpc.Proxy()
addr = bitcoin.wallet.CBitcoinAddress('mfrMeTKojpEXFXpcQiRr7zA3Bff4UBgZTx')

txid = rpc.sendtoaddress(addr, 0.001 * COIN)
print(b2lx(txid))

我收到以下錯誤

CannotSendRequest                         Traceback (most recent call last)
<ipython-input-23-904d1d3102d7> in <module>()
----> 1 txid = rpc.sendtoaddress(addr, 0.001 * COIN)

/home/remote_user/unix_practice/python-bitcoinlib/bitcoin/rpc.py in sendtoaddress(self, addr, amount)
   557         addr = str(addr)
   558         amount = float(amount)/COIN
--> 559         r = self._call('sendtoaddress', addr, amount)
   560         return lx(r)
   561 

/home/remote_user/unix_practice/python-bitcoinlib/bitcoin/rpc.py in _call(self, service_name, *args)
   150                              'User-Agent': DEFAULT_USER_AGENT,
   151                              'Authorization': self.__auth_header,
--> 152                              'Content-type': 'application/json'})
   153 
   154         response = self._get_response()

/usr/lib64/python2.7/httplib.pyc in request(self, method, url, body, headers)
   971     def request(self, method, url, body=None, headers={}):
   972         """Send a complete request to the server."""
--> 973         self._send_request(method, url, body, headers)
   974 
   975     def _set_content_length(self, body):

/usr/lib64/python2.7/httplib.pyc in _send_request(self, method, url, body, headers)
   999             skips['skip_accept_encoding'] = 1
  1000 
-> 1001         self.putrequest(method, url, **skips)
  1002 
  1003         if body is not None and 'content-length' not in header_names:

/usr/lib64/python2.7/httplib.pyc in putrequest(self, method, url, skip_host, skip_accept_encoding)
   869             self.__state = _CS_REQ_STARTED
   870         else:
--> 871             raise CannotSendRequest()
   872 
   873         # Save the method we use, we need it later in the response phase

CannotSendRequest:

知道如何解決這個問題嗎?我使用的程式碼來自

範例文章

問題是addr提供的地址無效 - 主網地址在測試網上不起作用,反之亦然。(從編輯修訂歷史中,您提供的程式碼範例正在使用bitcoin.wallet.CBitcoinAddress('1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T')它將提供一個主網路地址)

將變數中提供的地址替換為addr合法的測試網路地址,它應該可以工作。

引用自:https://bitcoin.stackexchange.com/questions/47945