@Fireduck but is it web scale? :stuck_out_tongue:
Just a thought - maybe we can re-use the smaller snowfields? So Snowfield 1 would be 1/2 snowfield 0 + 1/2 generated snowfield 1, field 2 1/2 field 1 and so on
This way after a snowstorm you need to download only half as much
and generation can use 2 threads :smile:
would need a hardfork however
I thought of that and rejected it. I didn't want to weaken the field generation in any way. A lot of the pow security depends on it being hard to reproduce in part
So I installed nfs server and clients and Arktika still comes up with connection refusal errors, iterating though each node:
``INFO: Subscribed to work Sep 11, 2018 7:11:46 PM snowblossom.miner.LayerWorkThread run WARNING: Error: io.grpc.StatusRuntimeException: UNAVAILABLE: io exception io.grpc.StatusRuntimeException: UNAVAILABLE: io exception at io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:221) at io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:202) at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:131) at snowblossom.mining.proto.SharedMiningServiceGrpc$SharedMiningServiceBlockingStub.getWords(SharedMiningServiceGrpc.java:163) at snowblossom.miner.FieldSourceRemote.readWordsBulk(FieldSourceRemote.java:100) at snowblossom.miner.BatchLayerWorkThread.runPass(BatchLayerWorkThread.java:80) at snowblossom.miner.LayerWorkThread.run(LayerWorkThread.java:189) Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: /192.168.1.122:2311 at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717) at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:325) at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:340) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:635) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:582) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:499) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:461) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.lang.Thread.run(Thread.java:748) Caused by: java.net.ConnectException: Connection refused ... 11 more
I see it is refusing connection on :2311 but I don't have a firewall up; ufw is inactive
Sorry if I am butting in on a converstation
Not at all
Well, it is absolutely getting a connection refused
Maybe check lsof on the nodes and make sure the listen is open as expected
are the nodes listening on localhost?
i don't exactly know what I am supposed to be seeing with lsof -u arktika
@Rotonen I'm not quite sure how to find that out
the loopback resolves to the hostname in /etc/hosts but how do I check if the nodes are listening on localhost
@Fireduck what version of GRPC is used?
@aikida3k I believe arktika connects to a pool, is there a firewall blocking it?
firewalls usually just drop packets, but can refuse connections as well
Has anyone tried tools like this? https://github.com/prsyahmi/GpuRamDrive RamDrive that is backed by GPU Memory
@Clueless no firewall enabled ufw inactive
@mjay while it's possible to store the snow in gpu memory, most gpus only have 4-8gb, and are expensive as hell. So you'd still be bottlenecked severely by disk/ram io
The idea was to use the memory while the GPUs are mining something else thats not using ram
@aikida3k `lsof -i :23380`
make sure your pool is listening and connectable
@aikida3k I don't use a port when connecting to the Arktika server I just point the miners to the server ip. Running Ubuntu Server 18.04.1 LTS
Yeah, the port isn't configurable
Not sure which grpc version.
Not at a computer
@aikida3k 1. Basically, make sure the pool is actually listening `lsof -i :23380` 2. Make sure you can connect to it from the pool server `telnet localhost 23380` 3. Make sure you can connect to it from the miner server `telnet pool_ip 23380`
GRPC would not give connection refused
it would connect first, then fail some other way.
ok telnet localhost 23380 fails and telnet pool_ip 23380 times out but losf -i says the pool is listening
@SidGrip That's what the config files are doing, correct? Telling arktika which layer should have which chunks and pointing to the file server to get the chunks. I haven't specified a port to use in my config files, I wrote mine similar to the example
Correct, no ports
It uses a port but it isn't configurable
Someone said PoolMiner, you aren't running PoolMiner right?
Needs to be arktika everywhere
Yes, just double check your layer_count= the number of layers your using and that your layers and numbered correctly, took a few tries to figure it out :stuck_out_tongue_closed_eyes:
Might just be a matter of waiting
An artika that is loading into memory won't open the port until it is done loading
I think
i have pool miner running right now on the file server but I've tried shutting down the pool miner and just running arktika on all nodes
maybe that makes sense
any ideas why telnet localhost 23380 fails, or it will fail until its loaded, then the port should open and the telnet would work
maybe you have a firewall rule in place that blocks access?
ufw is inactive
iptables -L -n
empty?
The pool miner is needed, can't help with telnet since I did not have to use it
Needed for what?
Lol, miss read thought refering to pool miner as Arktika server
@mjay yep empty
okay no firewall issue then
This is my setup setup so far, haven't had time to get back to add more miners yet
Arktika server mine_to_address= pool_host=snowblossom.hamster.science layer_count=2 layer_0_type=mem layer_0_range=0,127 layer_0_threads=100 layer_1_type=file layer_1_path=//media/sidgrip/NVME/snow_chunked layer_1_threads=2 selected_field=7 Node Miner mine_to_address= pool_host=snowblossom.hamster.science layer_count=3 layer_0_type=remote layer_0_range=0,42 layer_0_threads=100 layer_0_host=192.168.2.155 layer_1_type=mem layer_1_range=43,127 layer_1_threads=100 layer_2_type=file layer_2_path=//media/sidgrip/2TB/Torrents layer_2_threads=2 selected_field=7
I'll try letting it run overnight and see how it is in the morning and go from there.
It will say if it is loading blocks
I know I have to reallocate some of the chunks because I got Heap overflow errors when I allocated 6GB chunks to 8GB RAM
I found that allocating half of your total ram works best for me
Right now it get to the point of subscibing to work and then the io.grpc.StatusRuntimeException:UNAVAILABLE error shows
Do all of the nodes do that?
yes
At intervals it shows it is trying to work-- I guess connecting with the pool and then it reverts back to the errors
Caused by: java.net.ConnectException: Connection refused ... 11 more Sep 11, 2018 9:29:41 PM snowblossom.miner.Arktika printStats INFO: 15 Second mining rate: 0.000/sec - at this rate ∞ minutes per share (diff 22.000) Sep 11, 2018 9:29:41 PM snowblossom.miner.Arktika printStats INFO: 1-min: 0.000/s, 5-min: 0.000/s, hour: 0.000/s Sep 11, 2018 9:29:41 PM snowblossom.miner.Arktika printStats INFO: we seem to be stalled, reconnecting to node Sep 11, 2018 9:29:41 PM snowblossom.miner.Arktika$WorkUnitEater onError INFO: Error talking to mining pool: io.grpc.StatusRuntimeException: UNAVAILABLE: Channel shutdownNow invoked Sep 11, 2018 9:29:41 PM snowblossom.miner.Arktika subscribe INFO: Subscribed to work Sep 11, 2018 9:29:41 PM snowblossom.miner.Arktika printStats INFO: Queues: {0,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10001,10000,10000,10001,10000,0,} Sep 11, 2018 9:29:41 PM snowblossom.miner.Arktika printStats INFO: Shares: 0 (rejected 0) (blocks 0) Sep 11, 2018 9:29:43 PM snowblossom.miner.LayerWorkThread run WARNING: Error: io.grpc.StatusRuntimeException: UNAVAILABLE: io exception io.grpc.StatusRuntimeException: UNAVAILABLE: io exception at io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:221) at io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:202) at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:131) at snowblossom.mining.proto.SharedMiningServiceGrpc$SharedMiningServiceBlockingStub.getWords(SharedMiningServiceGrpc.java:163) at snowblossom.miner.FieldSourceRemote.readWordsBulk(FieldSourceRemote.java:100) at snowblossom.miner.BatchLayerWorkThread.runPass(BatchLayerWorkThread.java:80) at snowblossom.miner.LayerWorkThread.run(LayerWorkThread.java:189) Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: /192.168.1.130:2311 at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717) at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:325) at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:340) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:635) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:582) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:499) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:461) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.lang.Thread.run(Thread.java:748) Caused by: java.net.ConnectException: Connection refused ... 11 more
So there is a problem talking to the pool: INFO: Error talking to mining pool: io.grpc.StatusRuntimeException: UNAVAILABLE: Channel shutdownNow invoked
I guess that could be because the port is still closed. So i'll try to fix the field allocation and let it run over night
what mining pool are you pointing the Arktika nodes to
vauxhall
Have you tried to connect locally to eachother without the port#
I can telnet to port 22, I can transfer files
as far as telnet ip : conncetion refused
Since I don't know your setup, I really don't know sir, Every runs fine locally on linux & simple to setup
i'm running ubuntu 16.04 on dual cpu servers. the pool miner works great but the issue is with getting arktika going as it was similar to the example
anyways i'll keep trying
feel free to open an issue on github and share the exact configs
I'll get into it
ok, I need a name
the hardest part of any project
JustSomeNameIWillRemember
oh
Is there any specific reason why well44497b was chosen?
haha, I've been waiting for that question
you get a prize
:smile:
its the huge internal state?
It is a large state prng
yeah, larger state means harder to checkpoint the state of the snowfall
makes sense
which makes it harder to build sections as needed in a GPU or ASIC for example
but that wasn't enough state so I added the snow monster anyways
which has a 256mb internal state, effectively
so probably not important anymore, but whatever
currently crawling through the code. You put a lot of thought into it
you might add checkpoints to the initial write, and thats it as far as I can see
sure, the initial write isn't a big deal
Maybe mark the pages that have not been touched since then in a bitmap
but thats just a few if I´m correct
probably
less than 2%
yeah, I'm having a hard time with that math
you could have travelled along a multiplicative group mod n to reach all pages
but not sure if this would open up any issues
oh god, that sounds like group theory math or something
which I know nothing about
Its not that complicated. Pageindex for round N would be (N * (any prime) + 1) % (total elements)
Do you know of any C/C++ implementation of well44497b?
I found this one: http://www.iro.umontreal.ca/~panneton/well/WELL44497a.c But gives different results
converting the java code is a mess, bit-shifts + big/little endian. Thats no fun
find a microsoft integrator to help with that, that’s the kind of bullshit they deal with daily
just look at the struct which makes up an AD SID
@mjay don't want anything that predicable, the next word to use is determined as part of the prng state. You can only determine the path by doing the work which means having the whole field
maybe someone can help me
ork block load error: java.lang.RuntimeException: Unable to select a field of at least 7. Availible: []
wrong path for snow file? snowfile incomplete?
im just stupid
we can't help you with stupid, but you are in good company
confirmed.
Unexpected length on snowblossom.7.deck.a
ok maybe im not that stupid
probably not completely downloaded
what length is that file?
total 134349260 drwxr-xr-x 2 nerd nerd 4096 Aug 19 19:59 . drwxr-xr-x 9 nerd root 4096 Aug 19 22:56 .. -rw-r--r-- 1 nerd nerd 134217728 Aug 19 22:09 snowblossom.7.deck.a -rw-r--r-- 1 nerd nerd 131072 Aug 19 19:59 snowblossom.7.deck.b -rw-r--r-- 1 nerd nerd 128 Aug 19 19:59 snowblossom.7.deck.c -rw-r--r-- 1 nerd nerd 137438953472 Aug 19 23:00 snowblossom.7.snow
t 128M Jun 21 01:49 snowblossom.7.deck.a
how can i make it show in
where can i direct download this
you can't, hosting files this size isn't cheap so no one does it
bittorrent is open option
^^ if you are in europe.
its deck a
and im using that
which seems to be broken
but its weird cause i used those links before
oh problem is snow itself
not sure why
i am mining on that file right now. seems to work here.
y the snow seemed to cache only 71gb
after wget
try aria2. it is faster and fancier.
its not faster
face it
if you use multiple connections.
I use deluged and deluge-console
seem to work well for me
this is so odd
ubuntu seems to change the file size
of snowblossom
snowfield*
@Fireduck @fydel I was talking to some huge torrent seeders (50,000+ torrents seeding) They seem to advocate for transmission.
Seems deluge bogs down after 2,000 torrents
that's a nutso community
is it usual some time till high velocity kicks in?
ah.nice. i am am seeding with transmission.
@dk3 what do yo umean? it takes a little bit of time to load the full snowfield into ram
but it shows loading?
i noticed when pre caching it shows
but if you use memfield true only
it does not
@dk3 if on linux, do `free -h` several times, and see if your cache is diminishing
that would be the snowfield being cached into ram
it started mining
but stopped
how can i clear cache
i was already using that command
its supposed to appear as used
and not as cached?
total used free shared buffers cached Mem: 251G 251G 556M 872K 2.0M 41G
take a look
and i have big drops
@dk3 depends, memfield=True I think would be used
if you're waiting on OS to cache the file, it'd be cached
it just dissappears from cached
and goes into used
how can i reserve
yeah, that's fine
https://wiki.openjdk.java.net/display/shenandoah/Main Shenandoah GC Shenandoah is an ultra-low pause time garbage collector that reduces GC pause times by performing more garbage collection work concurrently with the running Java program. CMS and G1 both perform concurrent marking of live objects. Shenandoah
couldnt this be useful for us?
dunno, try
i'm sure a pull request with a repeatable benchmark will get evaluated and merged
found a "flaw" :open_mouth:
getting 30mh
right now
what flaw?
its not just a flag
you would have to compile the source again
this is no real hashrate, is it?
found 1 block so far
so .. what hardware are you using?
its not about the hardware
1mh/s using pen & paper - easy
whatever it is you're doing currently is probably not useful, but if you want us to listen, set a block remark
remark next snowfield in some hours :wink:
only since you push it - i'll call you a liar in 3 hours, then, tick tock
dont wonder it was just a silly joke
but i ve found doing "sync && echo 3 | sudo tee /proc/sys/vm/drop_caches "
from time to time
might boost your hashrate
or even just once while mining
it reduces memory fragmentation as it clears the caches
218c218 < http://logger.info(String.format("15 Second mining rate: %s/sec %s", df.format(rate), block_time_report)); --- > http://logger.info(String.format("15 Second mining rate: %s/sec %s", df.format(rate * 10), block_time_report)); 10x speed patch! :thinking_face:
nice pull
anyway to set static diff
on pool?
you need to hack the source
yea, possible
someone should bother to write an actual PID for the miner to adjust the diff
and also using that for autotuning the thread count would help
@dk3 difficulty is set in MiningPoolServiceAgent.java, look for working_diff
it should actually not be that hard to just have a config to override that, but the current 'autotune' is not *that* bad
@dk3 what's the issue you're solving, actually?
i'm getting a vibe there's something to game with low diff shares on the pool implementation
I would be surprised but not shocked