• Forum has been upgraded, all links, images, etc are as they were. Please see Official Announcements for more information

Pre-proposal: Pythonic language Dash implementation

All of the problems in your post can be worked around. First off, moneywagon/multiexplorer does not require "automatic packages updates from the network". There is nothing stopping someone from using Multiexplorer on their own machine running the same version for years to come. The only time I update the code is to add new feature, I hardly ever have to change existing code. If you want to be highly paranoid about security, you can just not ever update python or Multiexplorer or any of it's dependencies. The one exception is the "services" part of moneywagon, which does have to be updated frequently because services change their url, tweak their API, and go offline and stuff like that.Currently all services are defined in the "services.py" file that is linked at the top of this post. That file could be moved out to it's own package and updated on a different cycle as the rest of moneywagon. The services.py file is very "shallow" in the sense that any college freshman who knows python can code review that file and determine nothing malicious exists. You are right someone can sneak malicious code into python packages, but there are ways to mitigate the risks.

Yes of course, but who behaves like that? Very few. The vast majority of masternodes dont even understand this, and they let updates enter into their machines. They even have their masternodes to hosting services, and they dont care at all for the masive udpates the hosting company does. This gives the power to the updaters to control the machines and the programs. And this is centralization, it gives the power to a few persons to control the network in case of emergency.

If you dont want such a danger, whatever you code for Dash should be solid and should be written in a way that it cannot be easily changed or frequently updated (this means a low level code that can be produced by a compiled language) in order to protect not only yourself, but mostly the ignorants who are the majority in the Dash network.
 
Last edited:
I'm definitely using POST. Here is the code: https://github.com/priestc/moneywagon/blob/master/moneywagon/services.py#L1207

This was working perfectly 6 months ago, so something had to have changed between then and now.
...
Looks like it was moved behind nginx
Code:
> curl -X POST -d "fizz=buzz" http://insight.dash.siampm.com/api/tx/send
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.10.0 (Ubuntu)</center>
</body>
</html>

> curl -L -X POST -d "fizz=buzz" http://insight.dash.siampm.com/api/tx/send
Expected type string, got null (code -3)

...
By the way, this is only problm because there is only one service defined for Dash in moneywagon. This problem would never happen with bitcoin or litecoin because both of those currencies have multiple services listed for "push_tx". Moneywagon uses a fallback mechanism to try another service if one service is down or is broken somehow.
...
https://blockchain.masternode.io/
http://insight.dash.org/insight/
 

Nice, these have been added: https://github.com/priestc/moneywagon/commit/6bfd4d11dcf3e065d4bdb6529c3f44a2b0040b73

Multiexplorer should now work when pushing a dash tx. I just tried pushing a TX through masternodes.io and it worked.

The weird thing about insight.dash.siampm.com is that it seems that only push_tx is broken. I does work when you try other endpoints:

http://insight.dash.siampm.com/api/addr/Xemt2zeYELCkddJHvsW4x9ytqTEnkiviaH/balance
 
Back
Top