2018-06-06 00:01:48
bazel clean

Fireduck
2018-06-06 00:02:04
Shouldn't make a difference but I'd try that

Fireduck
2018-06-06 00:02:51
tried that before, only shackleton craps up - ah well, do not need to build that anyway

Rotonen
2018-06-06 00:03:29
Might have been broken since the big reorg

Fireduck
2018-06-06 00:03:53
it was broken on master yesterday, i only tried to build as the new tag landed

Rotonen
2018-06-06 00:04:30
additionally you should provide 1) checksums for downloads 2) sign your distributables

Rotonen
2018-06-06 00:07:09
Yeah, you are right

Fireduck
2018-06-06 02:32:06
@quantumblockz has joined the channel

quantumblockz
2018-06-06 04:27:31
ok, I am going to code up a mining pool

Fireduck
2018-06-06 04:31:06
sweet

Clueless
2018-06-06 05:45:30
*https://github.com/snowblossomcoin/snowblossom/compare/ad929aed2fc4...8ede8f5b3cdf*
https://github.com/snowblossomcoin/snowblossom/commit/8ede8f5b3cdf6f0d6e592e4d29cab5a699c8a5ee - Groundwork for mining pool

GitHub
2018-06-06 05:45:56
*https://github.com/snowblossomcoin/snowblossom/compare/8ede8f5b3cdf...23072491106f*
https://github.com/snowblossomcoin/snowblossom/commit/23072491106f50f67969147c1ae2acfe4182b9c0 - Groundwork for mining pool

GitHub
2018-06-06 06:08:09
[snowblossomcoin/snowblossom] Issue opened by guanlei1996

GitHub
2018-06-06 06:11:38
[snowblossomcoin/snowblossom] Issue closed by cluelessperson

GitHub
2018-06-06 06:23:04
[snowblossomcoin/snowblossom] Issue closed by cluelessperson

GitHub
2018-06-06 10:03:00
@Nuse has joined the channel

Nuse
2018-06-06 15:47:45
Going to make simple PPLNS mining pool

Fireduck
2018-06-06 15:47:51
Hopefully today

Fireduck
2018-06-06 15:48:19
Going to have it expose some metrics to the explorer

Fireduck
2018-06-06 15:48:48
Did some plumbing for it last night

Fireduck
2018-06-06 18:28:45
I am making the pool protocol now. The question is, do I make the miner build the merkle proof to send back to the mining pool? This code is odd and if someone wants to write a miner in another language it will be a hassle.

Fireduck
2018-06-06 18:29:04
Or do I have the mining pool need the snow fields and check the work itself and build the proof if needed for a block

Fireduck
2018-06-06 18:29:34
I guess the problem there is then the mining pool needs all fields that could be in use since a miner could use any field they have that is at least the current required

Fireduck
2018-06-06 18:35:04
yeah, that settles it. mining pool can't be required to have all known fields on hand

Fireduck
2018-06-06 18:35:58
why not?

Tyler Boone
2018-06-06 18:36:19
not like we need to enable every nerd with a laptop to run a pool

Tyler Boone
2018-06-06 18:37:45
sure, but even with just what we have now that is 4tb

Fireduck
2018-06-06 18:37:58
and as soon as I have the ssd to do it, I'm going to build the next file

Fireduck
2018-06-06 18:38:03
so 8tb total

Fireduck
2018-06-06 18:38:06
that is a bit much

Fireduck
2018-06-06 18:38:49
the pool doesn't need all that exist (which is technically infinit)

Tyler Boone
2018-06-06 18:38:51
infinite

Tyler Boone
2018-06-06 18:38:58
just all that we've gotten to

Tyler Boone
2018-06-06 18:39:56
a miner may use a higher field if they want

Fireduck
2018-06-06 18:40:06
so kinda gotta be ready for anything

Fireduck
2018-06-06 18:40:21
I guess a pool could just reject it saying "no, that is dumb"

Fireduck
2018-06-06 18:42:33
correct

Tyler Boone
2018-06-06 18:43:09
any other advantages either way?

Tyler Boone
2018-06-06 18:43:37
not sending the proof over the network saves a little bandwidth

Fireduck
2018-06-06 18:43:39
but not much

Fireduck
2018-06-06 18:43:42
bah

Tyler Boone
2018-06-06 18:43:59
not sending the proof makes it easier to DoS a mining pool

Fireduck
2018-06-06 18:44:11
I was thinking about that myself

Tyler Boone
2018-06-06 18:46:18
the cost of calculating the proof is probably less than the cost of accepting the network traffic with the fake block

Tyler Boone
2018-06-06 18:46:58
negative. calculating the proof requires a good chunk of reading into the snow fields

Fireduck
2018-06-06 18:47:30
which a miner can do to the tune of thousands (or tens of thousands) of times a second

Tyler Boone
2018-06-06 18:47:41
And the fake submit from a miner would only be 30 bytes or so, yeah

Fireduck
2018-06-06 18:47:49
validating a proof is in memory and fast

Fireduck
2018-06-06 18:53:14
*https://github.com/snowblossomcoin/snowblossom/compare/23072491106f...6113c52539e7*
https://github.com/snowblossomcoin/snowblossom/commit/6113c52539e71f5d588e06560f25f88ce391a984 - Mining protocol

GitHub
2018-06-06 18:53:22
there is my proposed mining protocol

Fireduck
2018-06-06 18:58:16
It is good software engineering to just copy a class and change what you want right?

Fireduck
2018-06-06 19:49:00
*https://github.com/snowblossomcoin/snowblossom/compare/6113c52539e7...66aa3941466f*
https://github.com/snowblossomcoin/snowblossom/commit/66aa3941466fbfd7d0b59aa64e5419bc9f809587 - on windows starting miners with low priority. also increasing heap in memory miner

GitHub
2018-06-06 19:50:14
@Fireduck, any thought to making the mining pool use json RPC or something to make it easier to integrate other languages?

Tyler Boone
2018-06-06 19:50:56
Yeah. Going to do grpc just so I can get this running but plan on opening a json Rpc port as well

Fireduck
2018-06-06 20:17:17
actually, that makes me think... probably the node is really the only thing that needs to be tied to the protocol buffers

Tyler Boone
2018-06-06 20:17:59
or even if the client and miner do use protocol buffers, they could take binaries drops and have a separate compile...

Tyler Boone
2018-06-06 20:18:29
might make tooling work better for things like debugging.

Tyler Boone
2018-06-06 20:21:10
Can make json interfaces for whatever

Fireduck
2018-06-06 20:50:40
```
snowblossom@vmsnow1:/var/snowblossom$ source/snowblossom/bazel-bin/SnowBlossomClient configs/client-mainnet.conf send m0seqg6sxzvmyaynrq794zw64m4wcxhw5ljvaw3u 50
Exception in thread "main" java.lang.NumberFormatException: For input string: "m0seqg6sxzvmyaynrq794zw64m4wcxhw5ljvaw3u"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
at java.lang.Double.parseDouble(Double.java:538)
at snowblossom.client.SnowBlossomClient.main(SnowBlossomClient.java:58)
```
Ah. send <amount> <address>

Clueless
2018-06-06 20:53:20
you can open a bug to print usage if there is an error

Tyler Boone
2018-06-06 20:57:09
```
snowblossom@vmsnow1:/var/snowblossom$ source/snowblossom/bazel-bin/SnowBlossomClient configs/client-mainnet.conf send m0seqg6sxzvmyaynrq794zw64m4wcxhw5ljvaw3u 50
Exception in thread "main" java.lang.NumberFormatException: For input string: "m0seqg6sxzvmyaynrq794zw64m4wcxhw5ljvaw3u"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
at java.lang.Double.parseDouble(Double.java:538)
at snowblossom.client.SnowBlossomClient.main(SnowBlossomClient.java:58)
```

GitHub
2018-06-06 20:57:33
thanks

Tyler Boone
2018-06-06 21:38:42
@Fireduck i'll gladly host a pool - i suppose multiple pools should go online at about the same time

Rotonen
2018-06-06 21:38:59
yep

Fireduck
2018-06-06 21:45:25
That's 3 so far. :stuck_out_tongue:

Clueless
2018-06-06 21:50:38
*https://github.com/snowblossomcoin/snowblossom/compare/66aa3941466f...3e1d2d331acd*
https://github.com/snowblossomcoin/snowblossom/commit/0caed1307a3954c2e53aa609edee87ae51939a78 - Pool miner pass 1
https://github.com/snowblossomcoin/snowblossom/commit/3e1d2d331acd45fc1ac4e78b7f7e807fb4b145b3

GitHub
2018-06-06 22:05:17
Look upon PoolMiner.java and weep

Fireduck
2018-06-06 22:05:25
What should I call the mining pool?

Fireduck
2018-06-06 22:05:47
snowplow

Tyler Boone
2018-06-06 22:06:14
snowpile

Tyler Boone
2018-06-06 22:06:23
hahah

Fireduck
2018-06-06 22:08:29
MrPlow

Fireduck
2018-06-06 22:08:53
The fun is, cp SnowBlossomMiner.java PoolMiner.java. Edit PoolMiner.

Fireduck
2018-06-06 22:09:07
cp SnowBlossomMiner.java MrPlow.java. Edit MrPlow

Fireduck
2018-06-06 22:09:15
There is so much fucked up code overlap

Fireduck
2018-06-06 22:09:22
but not enough to sensibly combine much

Fireduck
2018-06-06 22:09:29
that's how you deliver things fast

Tyler Boone
2018-06-06 22:09:57
It breaks my rule. If you have three copies of the same code, it is time to refactor.

Fireduck
2018-06-06 22:09:59
two is fine

Fireduck
2018-06-06 22:23:13
we shouldn't have a "memory miner" and a "disk miner"

Tyler Boone
2018-06-06 22:23:31
we should just have a miner and an "allowed memory" such that it will store as much of the snowfield as it can

Tyler Boone
2018-06-06 22:23:44
yeah, I was thinking about that

Fireduck
2018-06-06 22:23:58
not an LRU because it would just thrash

Fireduck
2018-06-06 22:24:05
I was going to implement it once I couldn't mine in memory anymore

Tyler Boone
2018-06-06 22:24:05
but maybe fill in blocks up to the limit

Fireduck
2018-06-06 22:24:14
yeah, just load from beginning

Tyler Boone
2018-06-06 22:24:20
until full

Tyler Boone
2018-06-06 22:30:39
right

Fireduck
2018-06-06 22:30:49
and count on the hashing to evenly distribute load

Fireduck