<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>MultiChain Developer Q&amp;A - Recent questions tagged savoir</title>
<link>https://www.multichain.com/qa/tag/savoir</link>
<description>Powered by Question2Answer</description>
<item>
<title>Savoir connection error</title>
<link>https://www.multichain.com/qa/11742/savoir-connection-error</link>
<description>&amp;gt;&amp;gt;&amp;gt; from Savoir import Savoir &lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; api = Savoir ('multichainrpc','CaH3f6S8RGnBdpDiLx67FV6m1zBvtDmKnW28tzPgSSPg','localhost','4757','chain1')&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;api.getinfo()&lt;br /&gt;
&lt;br /&gt;
throws a below error &lt;br /&gt;
&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;File &amp;quot;&amp;lt;stdin&amp;gt;&amp;quot;, line 1, in &amp;lt;module&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;File &amp;quot;Savoir/Savoir.py&amp;quot;, line 58, in __call__&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;r = requests.post(url, data=encoded, headers=self.__headers)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;File &amp;quot;/usr/local/lib/python2.7/dist-packages/requests/api.py&amp;quot;, line 112, in post&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return request('post', url, data=data, json=json, **kwargs)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;File &amp;quot;/usr/local/lib/python2.7/dist-packages/requests/api.py&amp;quot;, line 58, in request&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return session.request(method=method, url=url, **kwargs)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;File &amp;quot;/usr/local/lib/python2.7/dist-packages/requests/sessions.py&amp;quot;, line 518, in request&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;resp = self.send(prep, **send_kwargs)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;File &amp;quot;/usr/local/lib/python2.7/dist-packages/requests/sessions.py&amp;quot;, line 639, in send&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;r = adapter.send(request, **kwargs)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;File &amp;quot;/usr/local/lib/python2.7/dist-packages/requests/adapters.py&amp;quot;, line 488, in send&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;raise ConnectionError(err, request=request)&lt;br /&gt;
requests.exceptions.ConnectionError: ('Connection aborted.', BadStatusLine(&amp;quot;''&amp;quot;,))</description>
<guid isPermaLink="true">https://www.multichain.com/qa/11742/savoir-connection-error</guid>
<pubDate>Mon, 03 Dec 2018 05:32:56 +0000</pubDate>
</item>
<item>
<title>How do i store images in multichain streams?</title>
<link>https://www.multichain.com/qa/11306/how-do-i-store-images-in-multichain-streams</link>
<description>And if possible, how to do that in Savoir api using django</description>
<guid isPermaLink="true">https://www.multichain.com/qa/11306/how-do-i-store-images-in-multichain-streams</guid>
<pubDate>Sun, 14 Oct 2018 02:03:09 +0000</pubDate>
</item>
<item>
<title>Multiprocessing and streams</title>
<link>https://www.multichain.com/qa/10947/multiprocessing-and-streams</link>
<description>I've a stream of n items. Instead of retrieving all of them with a single api call, I wanted to make use of multiprocessing. So, I wrote a little code that fetches first n/2 items on a core and fetches the remaining n/2 items on another core. However, I did not obtain any speed-up. So, is interacting with streams not compatible with multiprocessing?&lt;br /&gt;
&lt;br /&gt;
You can see my attempt here: &lt;a href=&quot;https://gist.github.com/TinfoilHat0/c509deb1219c268b9b2e8aa8e5e6cee5#file-streams_in_parallel-py&quot; rel=&quot;nofollow&quot;&gt;https://gist.github.com/TinfoilHat0/c509deb1219c268b9b2e8aa8e5e6cee5#file-streams_in_parallel-py&lt;/a&gt;</description>
<guid isPermaLink="true">https://www.multichain.com/qa/10947/multiprocessing-and-streams</guid>
<pubDate>Thu, 06 Sep 2018 07:21:02 +0000</pubDate>
</item>
<item>
<title>Savoir: No JSON object could be decoded</title>
<link>https://www.multichain.com/qa/8765/savoir-no-json-object-could-be-decoded</link>
<description>&lt;p&gt;Hi,&lt;/p&gt;&lt;p&gt;I have not been able to use Savoir to make api calls to my multichain node. The node is running in a docker container and I have included rpcallowip of my computer from which I am trying make api calls using python and savoir.&lt;/p&gt;&lt;p&gt;First, making the standard getinfo() call raises &quot;No handlers could be found for logger &quot;Savoir&quot;. This is odd. The final error raised is &quot;No JSON object could be decoded&quot;.&lt;/p&gt;&lt;p&gt;How can this problem be solved? Many thanks!!&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size:10px&quot;&gt;&lt;em&gt;No handlers could be found for logger &quot;Savoir&quot;&lt;br&gt;Traceback (most recent call last):&lt;br&gt;&amp;nbsp; File &quot;test_savoir.py&quot;, line 10, in &amp;lt;module&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; result=api.listassets()&lt;br&gt;&amp;nbsp; File &quot;/home/helio/blockchain/multichain/savoir/Savoir/Savoir.py&quot;, line 65, in __call__&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; log.error(&quot;Json: %s&quot; % r.json())&lt;br&gt;&amp;nbsp; File &quot;/usr/local/lib/python2.7/dist-packages/requests/models.py&quot;, line 885, in json&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return complexjson.loads(self.text, **kwargs)&lt;br&gt;&amp;nbsp; File &quot;/usr/lib/python2.7/json/__init__.py&quot;, line 339, in loads&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return _default_decoder.decode(s)&lt;br&gt;&amp;nbsp; File &quot;/usr/lib/python2.7/json/decoder.py&quot;, line 364, in decode&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; obj, end = self.raw_decode(s, idx=_w(s, 0).end())&lt;br&gt;&amp;nbsp; File &quot;/usr/lib/python2.7/json/decoder.py&quot;, line 382, in raw_decode&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; raise ValueError(&quot;No JSON object could be decoded&quot;)&lt;br&gt;ValueError: No JSON object could be decoded&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<guid isPermaLink="true">https://www.multichain.com/qa/8765/savoir-no-json-object-could-be-decoded</guid>
<pubDate>Sat, 03 Mar 2018 22:18:42 +0000</pubDate>
</item>
<item>
<title>Create stream using Savoir API</title>
<link>https://www.multichain.com/qa/7894/create-stream-using-savoir-api</link>
<description>&lt;p&gt;I am trying to create stream using following code:&lt;/p&gt;&lt;pre&gt;...... rpc parameters&lt;/pre&gt;&lt;pre&gt;api = Savoir(rpcuser, rpcpasswd, rpchost, rpcport, chainname)
txid = api.create(&lt;strong&gt;'stream'&lt;/strong&gt;, &lt;strong&gt;'certificates2'&lt;/strong&gt;, &lt;strong&gt;'true'&lt;/strong&gt;)&lt;/pre&gt;&lt;p&gt;I am receiving following error:&lt;/p&gt;&lt;pre&gt;{u'id': 1, u'result': None, u'error': {u'message': u'Invalid open flag, should be boolean', u'code': -8}}
&lt;/pre&gt;&lt;p&gt;I have been able to run multiple multichain-cli commands using Savoir but experiencing issue with only this one.&lt;/p&gt;&lt;pre&gt;
&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;
&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;
&amp;nbsp;&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<guid isPermaLink="true">https://www.multichain.com/qa/7894/create-stream-using-savoir-api</guid>
<pubDate>Mon, 18 Dec 2017 11:01:12 +0000</pubDate>
</item>
<item>
<title>Help with sendwithmetadata in Savoir</title>
<link>https://www.multichain.com/qa/7584/help-with-sendwithmetadata-in-savoir</link>
<description>&lt;p&gt;Hello,&lt;/p&gt;&lt;p&gt;I'm having a problem with the sendwithmetadata command executing from python (Savoir library). I am, however, able to successfully execute the command on the same node server using multi chain-cli. It seems the problem in python is with&amp;nbsp;my json object.....but the solution continues to escape me. Could someone please provide some details on what I am doing wrong? Help would be much appreciated!!&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Python code:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;api = Savoir(rpcuser, rpcpasswd, rpchost, rpcport, chainname)&lt;br&gt;api.sendwithmetadata('wallet_address_here', json.dumps({'coin':75.0}), 'badcoffeebadcode')&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Error! Status code: 500&lt;br&gt;Text: {&quot;result&quot;:null,&quot;error&quot;:{&quot;code&quot;:-1,&quot;message&quot;:&quot;value is type str, expected real&quot;},&quot;id&quot;:1}&lt;/p&gt;&lt;p&gt;Json: {'result': None, 'error': {'code': -1, 'message': 'value is type str, expected real'}, 'id': 1}&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<guid isPermaLink="true">https://www.multichain.com/qa/7584/help-with-sendwithmetadata-in-savoir</guid>
<pubDate>Sun, 19 Nov 2017 04:57:42 +0000</pubDate>
</item>
<item>
<title>API and RPCUser/RPCPassword</title>
<link>https://www.multichain.com/qa/7094/api-and-rpcuser-rpcpassword</link>
<description>Hi,&lt;br /&gt;
&lt;br /&gt;
I'm building a complex system of sharing data using Multichain in Python with the Savoir Library.&lt;br /&gt;
&lt;br /&gt;
Every node need to write/load/access to every data on the multichain.&lt;br /&gt;
&lt;br /&gt;
I'm using the Savoir API but that require to use the RPCUser/RPCPassword of the Master Node ADMIN to connect to the other node so I have that sensible data spread everywhere and this make me nervous a little.&lt;br /&gt;
&lt;br /&gt;
I know I can build a new user, give him just connect, send and receive permission, but how I can use that user with the API ?&lt;br /&gt;
&lt;br /&gt;
The right way to avoid this is to build a local copy of the multichain and use local RPCUser / RPC Password ?&lt;br /&gt;
&lt;br /&gt;
Thi require to download tons of data so I would prefer to let the user choice if connect to an already present node or to download all the data locally.&lt;br /&gt;
&lt;br /&gt;
Thank you.</description>
<guid isPermaLink="true">https://www.multichain.com/qa/7094/api-and-rpcuser-rpcpassword</guid>
<pubDate>Fri, 13 Oct 2017 07:54:33 +0000</pubDate>
</item>
<item>
<title>Calling addmultisigaddress using Savoir</title>
<link>https://www.multichain.com/qa/5198/calling-addmultisigaddress-using-savoir</link>
<description>What is the proper way to pass in the parameters for the addmultisigaddress api command to the multichain using Savoir in a Python script?&lt;br /&gt;
&lt;br /&gt;
I'm currently passing in this:&lt;br /&gt;
&lt;br /&gt;
api.addmultisigaddress(2, ['0241f53c7534e3beeb181fe6ecfc6478d88c7a425102cd672d764e89dec0be56db', '0276a87d946812612a79d45a141d9f2dd2ed767187b686f5bb97bb1088ef70fc38'] )&lt;br /&gt;
&lt;br /&gt;
But getting a status code of 500 being returned. I've tried numerous other formats as well but none seem to work.</description>
<guid isPermaLink="true">https://www.multichain.com/qa/5198/calling-addmultisigaddress-using-savoir</guid>
<pubDate>Tue, 30 May 2017 18:25:17 +0000</pubDate>
</item>
<item>
<title>Python Savoir connection error.</title>
<link>https://www.multichain.com/qa/4913/python-savoir-connection-error</link>
<description>&lt;p&gt;Hi i installed Multichain &amp;amp; Savoir in two nodes(two laptops) and started &quot;chain1&quot; from the node1 and node2 connected to the chain1. now i am trying to run the program(using Savoir) to connect to chain1 from node2 i am getting the following error in node2&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=4372): Max retries exceeded with url: / (Caused by NewConnectionError('&amp;lt;requests.packages.urllib3.connection.HTTPConnection object at 0x7f44a3d24e10&amp;gt;: Failed to establish a new connection: [Errno 111] Connection refused',))​&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;node1 multichain.conf&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;rpcuser=multichainrpc&lt;br&gt;rpcpassword=vTxv7DnYxX1hx9ZH8uHepHHMaCf1c9ftGmtGYVcF4rN&lt;/p&gt;&lt;p&gt;&lt;strong&gt;node2 multichain.conf&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;rpcuser=multichainrpc&lt;br&gt;rpcpassword=EEhoZ4nE5czYwWtNQzUixNwtwmnhjjjChudMZSrMFAsB&lt;/p&gt;&lt;p&gt;&lt;strong&gt;node1 program&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;import Savoir&lt;br&gt;rpcuser='multichainrpc'&lt;br&gt;rpcpasswd='vTxv7DnYxX1hx9ZH8uHepHHMaCf1c9ftGmtGYVcF4rN'&lt;br&gt;rpchost = 'localhost'&lt;br&gt;rpcport = '4372'&lt;br&gt;chainname = 'chain1'&lt;br&gt;api = Savoir.Savoir(rpcuser, rpcpasswd, rpchost, rpcport, chainname)&lt;br&gt;print api&lt;br&gt;print api.getaddressesbyaccount(&quot;&quot;)[0] # working&lt;/p&gt;&lt;p&gt;&lt;strong&gt;node2 program&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;import Savoir&lt;br&gt;rpcuser='multichainrpc'&lt;br&gt;rpcpasswd='EEhoZ4nE5czYwWtNQzUixNwtwmnhjjjChudMZSrMFAsB'&lt;br&gt;rpchost = 'localhost'&lt;br&gt;rpcport = '4372'&lt;br&gt;chainname = 'chain1'&lt;br&gt;api = Savoir.Savoir(rpcuser, rpcpasswd, rpchost, rpcport, chainname)&lt;br&gt;print api&lt;br&gt;print api.getaddressesbyaccount(&quot;&quot;)[0] # working&lt;/p&gt;&lt;p&gt;Please can someone suggest me what i am missing here, do i need to add anything in the multichain.conf file in the node1.&lt;/p&gt;&lt;p&gt;Note : I have followed the same procedure 3 months back i was successfull that time.&lt;/p&gt;</description>
<guid isPermaLink="true">https://www.multichain.com/qa/4913/python-savoir-connection-error</guid>
<pubDate>Fri, 28 Apr 2017 02:35:16 +0000</pubDate>
</item>
<item>
<title>Can Savoir python handle many request at same time?</title>
<link>https://www.multichain.com/qa/4889/can-savoir-python-handle-many-request-at-same-time</link>
<description>Hello guys,&lt;br /&gt;
&lt;br /&gt;
I would like to ask a question related with MultiChain Json RPC performance.&lt;br /&gt;
&lt;br /&gt;
I developed the python project with Savoir and run the performance test with 10 users and the delay between each request was 10 milliseconds. When I run this, the Multichain RPC does not respond it.&lt;br /&gt;
&lt;br /&gt;
After that, I tried it with linux shell using multichain-cli, and the test run successfully.&lt;br /&gt;
&lt;br /&gt;
What is the problem or solution for this case?&lt;br /&gt;
&lt;br /&gt;
Is JSON RPC of Multichain possible to handle many requests at the same time?&lt;br /&gt;
&lt;br /&gt;
Thank you,&lt;br /&gt;
&lt;br /&gt;
Tom</description>
<guid isPermaLink="true">https://www.multichain.com/qa/4889/can-savoir-python-handle-many-request-at-same-time</guid>
<pubDate>Wed, 26 Apr 2017 15:12:16 +0000</pubDate>
</item>
<item>
<title>python api connection (newbie)</title>
<link>https://www.multichain.com/qa/4740/python-api-connection-newbie</link>
<description>Hello, Im new to this blockchain. I have setup the multichain and everything run as expected but when I tried to make rpc request using savoir it raised the exception. I know that's the problem with the connection that multichain server refused the connection. The question is, what is the step for savoir connection to the multichain server.. I mean the proper step and the config i need to put into the multichain.conf file... Sorry Im really new to this multichain.</description>
<guid isPermaLink="true">https://www.multichain.com/qa/4740/python-api-connection-newbie</guid>
<pubDate>Wed, 12 Apr 2017 03:34:39 +0000</pubDate>
</item>
<item>
<title>Error in using Savoir on Ubuntu</title>
<link>https://www.multichain.com/qa/4271/error-in-using-savoir-on-ubuntu</link>
<description>&lt;p&gt;&lt;em&gt;&amp;gt;&amp;gt;&amp;gt; from Savoir import Savoir&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&amp;gt;&amp;gt;&amp;gt;&amp;nbsp;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&amp;gt;&amp;gt;&amp;gt; rpcuser='multichainrpc'&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&amp;gt;&amp;gt;&amp;gt; rpcpasswd='2Swdfbx8FQJ9mdGmWWxVZL1eGSqxdkPGAU8dWkMf4vUw'&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&amp;gt;&amp;gt;&amp;gt; rpchost = 'localhost'&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&amp;gt;&amp;gt;&amp;gt; rpcport = '4245'&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&amp;gt;&amp;gt;&amp;gt; chainname = 'chain0'&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&amp;gt;&amp;gt;&amp;gt; api = Savoir(rpcuser, rpcpasswd, rpchost, rpcport, chainname)&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&amp;gt;&amp;gt;&amp;gt; api.getinfo()&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;Traceback (most recent call last):&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&amp;nbsp; File &quot;&amp;lt;stdin&amp;gt;&quot;, line 1, in &amp;lt;module&amp;gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&amp;nbsp; File &quot;/home/ubuntu/.local/lib/python2.7/site-packages/Savoir/Savoir.py&quot;, line 58, in __call__&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&amp;nbsp; &amp;nbsp; r = requests.post(url, data=encoded, headers=self.__headers)&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&amp;nbsp; File &quot;/home/ubuntu/.local/lib/python2.7/site-packages/requests/api.py&quot;, line 110, in post&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&amp;nbsp; &amp;nbsp; return request('post', url, data=data, json=json, **kwargs)&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&amp;nbsp; File &quot;/home/ubuntu/.local/lib/python2.7/site-packages/requests/api.py&quot;, line 56, in request&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&amp;nbsp; &amp;nbsp; return session.request(method=method, url=url, **kwargs)&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&amp;nbsp; File &quot;/home/ubuntu/.local/lib/python2.7/site-packages/requests/sessions.py&quot;, line 488, in request&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&amp;nbsp; &amp;nbsp; resp = self.send(prep, **send_kwargs)&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&amp;nbsp; File &quot;/home/ubuntu/.local/lib/python2.7/site-packages/requests/sessions.py&quot;, line 609, in send&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&amp;nbsp; &amp;nbsp; r = adapter.send(request, **kwargs)&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&amp;nbsp; File &quot;/home/ubuntu/.local/lib/python2.7/site-packages/requests/adapters.py&quot;, line 473, in send&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&amp;nbsp; &amp;nbsp; raise ConnectionError(err, request=request)&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;requests.exceptions.ConnectionError: ('Connection aborted.', BadStatusLine(&quot;''&quot;,))&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;My ports open ports seem to be correct (from netstat --listen):&lt;/p&gt;&lt;p&gt;&lt;em&gt;tcp&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&amp;nbsp; &amp;nbsp; &amp;nbsp; 0 localhost:4244&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *:* &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; LISTEN&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;tcp&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&amp;nbsp; &amp;nbsp; &amp;nbsp; 0 *:4245&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *:* &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; LISTEN&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;tcp&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&amp;nbsp; &amp;nbsp; &amp;nbsp; 0 *:ssh &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *:* &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; LISTEN&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/em&gt;&lt;/p&gt;</description>
<guid isPermaLink="true">https://www.multichain.com/qa/4271/error-in-using-savoir-on-ubuntu</guid>
<pubDate>Thu, 09 Mar 2017 17:37:16 +0000</pubDate>
</item>
<item>
<title>Python Savoir API &quot;no json object could be decoded&quot;</title>
<link>https://www.multichain.com/qa/3851/python-savoir-api-no-json-object-could-be-decoded</link>
<description>Hi, &lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;I was trying to test the code under : &lt;a href=&quot;https://github.com/DXMarkets/Savoir&quot; rel=&quot;nofollow&quot;&gt;https://github.com/DXMarkets/Savoir&lt;/a&gt;. I have two nodes on different server. I can use code to access the node on the save server. However, when I try to run similar code on another server, it gave the following error:&lt;br /&gt;
&lt;br /&gt;
No handlers could be found for logger &amp;quot;Savoir&amp;quot;&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;File &amp;quot;ptest.py&amp;quot;, line 12, in &amp;lt;module&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(api.getinfo())&lt;br /&gt;
&amp;nbsp;&amp;nbsp;File &amp;quot;/usr/lib/python2.7/site-packages/Savoir/Savoir.py&amp;quot;, line 65, in __call__&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.error(&amp;quot;Json: %s&amp;quot; % r.json())&lt;br /&gt;
&amp;nbsp;&amp;nbsp;File &amp;quot;/usr/lib/python2.7/site-packages/requests/models.py&amp;quot;, line 850, in json&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return complexjson.loads(self.text, **kwargs)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;File &amp;quot;/usr/lib64/python2.7/json/__init__.py&amp;quot;, line 338, in loads&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return _default_decoder.decode(s)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;File &amp;quot;/usr/lib64/python2.7/json/decoder.py&amp;quot;, line 366, in decode&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;obj, end = self.raw_decode(s, idx=_w(s, 0).end())&lt;br /&gt;
&amp;nbsp;&amp;nbsp;File &amp;quot;/usr/lib64/python2.7/json/decoder.py&amp;quot;, line 384, in raw_decode&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;raise ValueError(&amp;quot;No JSON object could be decoded&amp;quot;)&lt;br /&gt;
ValueError: No JSON object could be decoded&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Anyone has any suggestion?</description>
<guid isPermaLink="true">https://www.multichain.com/qa/3851/python-savoir-api-no-json-object-could-be-decoded</guid>
<pubDate>Wed, 01 Feb 2017 18:10:43 +0000</pubDate>
</item>
<item>
<title>How can I use hexadecimal metadata in any JSON-based API when hex is not supported by JSON?</title>
<link>https://www.multichain.com/qa/2437/hexadecimal-metadata-any-json-based-when-not-supported-json</link>
<description>&lt;p&gt;Hello,&lt;/p&gt;&lt;p&gt;While I am&amp;nbsp;specifically trying to use&amp;nbsp;Savoir, the Python API, this is a general question for the JSON-based request APIs. How do I pass the metadata argument to the function call? A sample call would look like:&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:tahoma,geneva,sans-serif&quot;&gt;api.sendwithmetadata(&lt;span style=&quot;color:#008080&quot;&gt;'16T5dDM5TQRP1SQ2o86iWD1K6gCr8PV1231232'&lt;/span&gt;&lt;span style=&quot;color:#cc7832&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color:#cc7832&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#008080&quot;&gt;'{&quot;asset1&quot;:1}'&lt;/span&gt;&lt;span style=&quot;color:#cc7832&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#cc7832&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#008080&quot;&gt;'48692066726f6d204d756c7469436861696e21'&lt;/span&gt;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:tahoma,geneva,sans-serif&quot;&gt;But when I&amp;nbsp;convert the hex argument to a decimal in order to make it JSON serializable, I get a parse error. If I leave it as is, I get an error saying expected real, got str. I've looked into encoding and decoding, but that has not solved the issue. What would be the appropriate way to make this API call, ideally in Python?&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:tahoma,geneva,sans-serif&quot;&gt;Thank you in advance.&lt;/span&gt;&lt;/p&gt;</description>
<guid isPermaLink="true">https://www.multichain.com/qa/2437/hexadecimal-metadata-any-json-based-when-not-supported-json</guid>
<pubDate>Tue, 16 Aug 2016 06:57:28 +0000</pubDate>
</item>
</channel>
</rss>