metaverse
metaverse copied to clipboard
CryptoPoolPond.com is a verified pool, but is misleading miners
On his API here: http://cryptopoolpond.com:8080/api/blocks
{"height":999998,"timestamp":1520339118,"difficulty":9000000000,"shares":6210000000000,"uncle":false,"uncleHeight":0,"orphan":false,"hash":"53fe825fd3a5452bbb484d445a7dc4ccb30edee0279db0ba2141df0d9443d536","reward":"270750055"},
{"height":999959,"timestamp":1520338077,"difficulty":9000000000,"shares":9081000000000,"uncle":false,"uncleHeight":0,"orphan":false,"hash":"0a75c42221009b9fbdfc75915daeaa4c8ad7f3fa99bd77c9ae738417b86668bd","reward":"270751138"},
{"height":999917,"timestamp":1520336647,"difficulty":9000000000,"shares":6462000000000,"uncle":false,"uncleHeight":0,"orphan":false,"hash":"ef08549171a89f3568b64b93160323be16c1a613f2688ac5012f892d37e7a864","reward":"270752305"}
You can see block rewards for blocks prior to 1m are 27075* yet on his site, which is managed by JavaScript, these blocks are reporting rewards of 2.85 even for blocks after 1m so he is manually adjusting the values that appear on the web page and misleading users on the amount they are being paid, pocketing up to 5% per block although his "fees" are 0 - 1% "loyalty".
He should be removed from the trusted pool owners (and from explorer.mvs.org) and we should establish a new method of verifying pool owners ability to run a pool.
Also lying.
Open-ethereum-pool transfers the data straight from DB to the API. The API data is fed through ember.js which then creates a table using the array data. It is possible to alter the amount displayed through editing the JS or the .hbs files which is what is happening here. The API should be displaying the correct block reward.
@atinaaaa Hi atina, could you help us to confirm whether the owner of this mining pool is cheat
On here you can see open-ethereum-pool gets the API data straight from the backend, or redis: https://github.com/sammy007/open-ethereum-pool/blob/master/api/server.go#L204
reply := make(map[string]interface{})
stats := s.getStats()
if stats != nil {
reply["matured"] = stats["matured"]
reply["maturedTotal"] = stats["maturedTotal"]
reply["immature"] = stats["immature"]
reply["immatureTotal"] = stats["immatureTotal"]
reply["candidates"] = stats["candidates"]
reply["candidatesTotal"] = stats["candidatesTotal"]
reply["luck"] = stats["luck"]
}
This is then put into a reply and encoded into json which includes block reward values as seen here from Metaverse.farm backend:
127.0.0.1:6379> zrevrange "eth:blocks:immature" 0 -1 withscores
1) "0:0:0x1ec179980fe175a6:378d4f76d076b416ef7345238119d3eaa232b5f73a0c6375e7338bad95fa7044:1520500352:8023544687772:8182000000000:270750000"
2) "1004878"
Backend: https://github.com/sammy007/open-ethereum-pool/blob/master/storage/redis.go
func (b *BlockData) key() string {
return join(b.UncleHeight, b.Orphan, b.Nonce, b.serializeHash(), b.Timestamp, b.Difficulty, b.TotalShares, b.Reward)
}
https://github.com/sammy007/open-ethereum-pool/blob/master/storage/redis.go#L650
tx.ZRevRangeWithScores(r.formatKey("blocks", "immature"), 0, -1)
tx.ZRevRangeWithScores(r.formatKey("blocks", "matured"), 0, maxBlocks-1)
immature := convertBlockResults(cmds[4].(*redis.ZSliceCmd))
stats["immature"] = immature
stats["immatureTotal"] = cmds[7].(*redis.IntCmd).Val()
matured := convertBlockResults(cmds[5].(*redis.ZSliceCmd))
stats["matured"] = matured
stats["maturedTotal"] = cmds[8].(*redis.IntCmd).Val()
https://github.com/sammy007/open-ethereum-pool/blob/master/storage/redis.go#L841
block.RewardString = fields[7]
block.ImmatureReward = fields[7]
I've talked with the owner of cryptopoolpond, he promised that he'd change the reward value. I'll keep you updated when it's done.
I hope you're right because I've brought it up in the past and he's just shown arrogance and instead attacked my pool claiming I was the one doing the stealing.
His JavaScript shows this:
formatReward: t.default.computed("reward", function() {
return this.get("orphan") ? 0 : (1.024e-8 * parseInt(this.get("reward"))).toFixed(3)
})
When in reality, it should show this:
formatReward: t.default.computed("reward", function() {
return this.get("orphan") ? 0 : (1e-8 * parseInt(this.get("reward"))).toFixed(7)
})
Notice the exponent 1.024e-8
vs 1e-8
but even this isn't used, as the field says 2.85 and even this exponent doesn't calculate such a high amount as 2.85 so the actual DB amounts are wrong and the UI is adjusted via a fixed value of 2.85 allowing him to pocket the remainder that the pool doesn't pay out.
The pool only pays out what it sees in the DB so it believes the reward is as calculated from what his reward calculation is for unlocker.go
I think he also needs to fix his variance which is incorrect and makes his pool appear to have better variance than other pools.
This is a simple change yet it is still unfixed and he continues to steal block rewards.
The dev of cyptopool met one issue when he compiling for reward changing, the problem happened due to the code they're using is not what was used to compile the binary. Therefore, they need to rewrite whole software if they don't have mgpool-master to set codebase. I suggest they search help from professionals, you could help them if you don't mind it :)
I'm not sure he would want my help considering he abused me and my pool a while ago. Although I know how to fix his issue.
Over one month later this issue remains unfixed.
Pool owner has adjusted the "reward" on the website display to 2.70, but API is showing 267814897 (or 2.678)
Still unresolved.