Show Posts
|
Pages: [1] 2 3 »
|
[Sigh]
I just like this coin. Think it has real potential.
Mark (IndiaMikeZulu), Australia
Joulecoin likes you too
|
|
|
The coin code probably doesn't enforce the 1000 being sent to the dib address (I didn't look at the code), it probably only creates those blocks for mining. A miner probably just modified the code to create blocks with 20 instead of 1000. The coin code should check this reward and reject blocks that do not have the proper reward to the dib address. The coinbase field may contain arbitrary data, see https://bitcoin.org/en/glossary/coinbase
|
|
|
Well how about that . Do you have a BTC/XJO address for tips? Thanks, tips not required for me, but the only real expenses at the moment are for the block explorer and hosting which totals about 0.04 BTC per month. You are welcome to donate towards this at 1F5wdaEefQn3z6KuooMAMUzLuraKU1V14T.
|
|
|
Can you print out your raw http request?
I've put up screen captures from Wireshark here: http://imgur.com/a/Sh2jx#0Joulecoin: Bitcoin: I compared the code and the Joulecoin and Bitcoin code is exactly the same. Try modifying the HTTPAuthorized function in file src/rpcserver.cpp at line 374 to print to the debug.log the passwords it is comparing: bool HTTPAuthorized(map<string, string>& mapHeaders) { string strAuth = mapHeaders["authorization"]; if (strAuth.substr(0,6) != "Basic ") return false; string strUserPass64 = strAuth.substr(6); boost::trim(strUserPass64); string strUserPass = DecodeBase64(strUserPass64); LogPrintf("1:%s 2:%s\n", strUserPass, strRPCUserColonPass); // ADD THIS LINE return TimingResistantEqual(strUserPass, strRPCUserColonPass); }
|
|
|
In addition to that, I've tried sending RPC commands with curl as described in the Bitcoin wiki: curl --user user --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getinfo", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:8844/ This fails with a 401 error. It works against bitcoind (and, presumably, the other coin daemons...also tested it against 42, for instance), but not joulecoind. I'm giving it the same password that's in .joulecoin/joulecoin.conf, so that isn't it. It should work the same as bitcoind. This is the relevant code in rpcserver.cpp. Do you get "ThreadRPCServer incorrect password attempt from ...." in your debug.log? Can you print out your raw http request? // Check authorization if (mapHeaders.count("authorization") == 0) { conn->stream() << HTTPReply(HTTP_UNAUTHORIZED, "", false) << std::flush; break; } if (!HTTPAuthorized(mapHeaders)) { LogPrintf("ThreadRPCServer incorrect password attempt from %s\n", conn->peer_address_to_string()); /* Deter brute-forcing short passwords. If this results in a DoS the user really shouldn't have their RPC port exposed. */ if (mapArgs["-rpcpassword"].size() < 20) MilliSleep(250);
conn->stream() << HTTPReply(HTTP_UNAUTHORIZED, "", false) << std::flush; break; }
|
|
|
I'm looking at adding Joulecoin to my MinerSwitcher setup, but I've run into a snag: I can't get the block reward out of joulecoind. MinerSwitcher depends on ProfitLib, which in turn depends on a set of coin daemons and some exchange data (currently from Cryptsy, but I'm looking at adding support for more exchanges) to determine which coin to mine at a particular time. This block of ProfitLib code uses python-bitcoinrpc calls to retrieve the current block reward: b=jsonrpc.ServiceProxy(url) # get block reward, including transaction fees # note #1: Novacoin (and coins derived from it?) report # 1% of actual value here # note #2: Namecoin doesn't support getblocktemplate, so get # coinbase value from last block # note #3: PPCoin doesn't want any parameters passed to # getblocktemplate. Bitcoin requires at least # an empty dictionary to be passed. Others don't # care. reward=Decimal(0) try: reward=Decimal(b.getblocktemplate()["coinbasevalue"]) except: pass if (reward==0): try: reward=Decimal(b.getblocktemplate({})["coinbasevalue"]) except: pass
if (reward==0): try: vouts=b.decoderawtransaction(b.getrawtransaction(b.getblock(b.getblockhash(b.getblockcount()))["tx"][0]))["vout"] for j, vout in enumerate(vouts): reward+=vout["value"] except: pass if (coin=="NVC" or coin=="DEM" or coin=="OSC"): reward*=100
It tries three different methods, determined over the course of adding 25 other coins, that work: * getblocktemplate with no input * getblocktemplate with an empty input * if getblocktemplate isn't available, get the coinbase value from the first transaction of the last block mined This works for every other coin, but not for Joulecoin. getblocktemplate is a valid call; joulecoind getblocktemplate returns what you'd expect. There appears to be a communication error between python-bitcoinrpc and joulecoind. I knocked together this test script: import bitcoinrpc import jsonrpc import sys from decimal import * import pprint
url="http://salfter:redacted@localhost:8844" #url="http://salfter:redacted@localhost:8332"
b=jsonrpc.ServiceProxy(url)
pprint.pprint(b.getblocktemplate()["coinbasevalue"])
The first url definition points to my joulecoind instance. The second, commented-out definition points to my bitcoind instance. If you run it against bitcoind, you get the current coinbase value: Run it against joulecoind, however, and you get this: Traceback (most recent call last): File "test.py", line 12, in <module> pprint.pprint(b.getblocktemplate()["coinbasevalue"]) File "/usr/local/lib/python2.7/dist-packages/bitcoinrpc/authproxy.py", line 120, in __call__ response = self._get_response() File "/usr/local/lib/python2.7/dist-packages/bitcoinrpc/authproxy.py", line 146, in _get_response parse_float=decimal.Decimal) File "/usr/lib/python2.7/json/__init__.py", line 351, in loads return cls(encoding=encoding, **kw).decode(s) File "/usr/lib/python2.7/json/decoder.py", line 366, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python2.7/json/decoder.py", line 384, in raw_decode raise ValueError("No JSON object could be decoded") ValueError: No JSON object could be decoded
Something is going seriously wrong here. I built joulecoind from GitHub source yesterday: git clone https://github.com/joulecoin/joulecoin cd joulecoin ./autogen.sh && ./configure --with-incompatible-bdb && make -j3 && sudo cp src/joulecoind /usr/local/bin
It's hard to reach any other conclusion than that there's a bug somewhere in the Joulecoin codebase, given that I have 25 other coins configured and running properly with the same code. Are you sure you have the correct port, port is open, etc? Try telnet to the host/port and see if you can connect. The getblocktemplate command returns the information you are looking for: { "coinbasevalue" : 1600000000, }
|
|
|
I think there's place for everyone's energy, let's keep it positive People use cryptocurrencies for different reasons, so we can approach promotion in various ways. I suggest people start their own projects in the areas that interest them; action speaks louder than words!
|
|
|
Sorry guys, but the dev is definitely not on the same level as me. I quit, good luck to everyone.
Sorry it didn't work out. There was no pre-mine, insta-minte, IPO or such, so there is limited XJO available for promotion. I am still open to working with anyone who wants to see XJO succeed.
|
|
|
New graphics for Joulecoin (thanks 1Referee)
|
|
|
Version 0.8.99.13 available on Github - Checkpoint added.
|
|
|
I get accepted shares but the blocks found are rejected.. I cannot see a different block structure at first sight, searching for a difference now Saffroncoind uses a different Blake algorithm than Blake coin. There exists Blake and Blake-2. There is no GPU miner released for Saffroncoin's Blake algo, but judging by the difficulty (52), there might be a GPU miner (or a botnet) on it.
|
|
|
Thanks! First post updated with pools and block explorer.
|
|
|
|