[snowblossomcoin/snowblossom] Release - 1.0.6 - pooled mining
@bl0ckchain can I use those arts you uploaded?
Does the 1.0.6 release have improvements for linux too? Afaik it’s only small changes and some for windows
@bottob88 yeah, nothing much in 1.0.6. Mostly just packaging in PoolMiner
@bl0ckchain I did weird shit to it, I hope you can forgive me
no problem you make what you want with it :slightly_smiling_face:
favicon on the explorer look good :wink:
I'm thinking the best way to make a decent explorer is to have something that is running and pumping all the data into a SQL database and then host a website off the SQL database
Maybe. At Bitcoin scale that doesn't work very well, at least not with MySQL
If you need other data views you can stub them out and tell me to write them
@Tyler Boone Databases are usually more for complex and large lookups and referencing and such.
These blockchains to some referencing, but it's mostly static.
It'd be best to do some sort of direct IO based recording in a determinisitic fashion?
Lower the database overhead, ram requirement, and do lookups basically as needed (for an explorer)
it depends on what you want the explorer to do
for example, how can I list all outgoing transactions from an address?
maybe it's possible with the trie
but if not, then you have to iterate the entire blockchain
We're not trying to cross reference, **give me all the >20 age, green eyed, people that liked milk, and show them all the ads for egg related products**
I think you'd build an address index
yes, but we are trying to serve views of data quickly and at minimal expense
"build an address index". build that in what?
I'm advising against a database , because they have tons of overhead aimed at tons of overkill procedures we don't need.
We need an address history index for like clients anyways I plan on making it
We're interested in just the referencing. For each block, index each transaction, index the the amount in address, reference list of transactions to addresses
@Fireduck Sweet, so if you make the framework for clients to go back, 10-100 blocks, we could just extend that to nodes or explorer to do it for the entire chain.
if the trie contains the data and a way to traverse it, then a client would request just the trie nodes needed.
*we* lel
I don't know how that works. :P
Trie is only utxo
OK, well that answers that
Need separate address history
I think a simple address index would do nicely
We just limit the size for the application.
Clients need last 10 blocks to see they received a payment, from a person at time, whatever. Nodes need last 1000 blocks worth, because a family might collectively review payments. Explorer stores entire chain's worth of index.
but I don't actually know. >.>
@Fireduck, in snowblossom.proto TransactionInner has a CoinbaseExtras, but the class generated from that (TransactionInner) doesn't have it. am I insane?
I am insane
it's there
Yep
I plan on making address_idx an optional node option like tx_index
I was mistyping because I'm on my laptop
To better serve light clients and explorer
ok
makes sense
just to confirm what that means. it's a new map in the DB class which will be saved onto disk using rocksDB
so a new key-value lookup stored by the node
Yes
Using range queries in rocksdb for speed but you get the idea
Since it is key to set rather than key to single value
Old hat from my jelectrum days
what kind of "set"?
you have an example in here already?
For an address the set of transactions involving it
end of the day a ProtoDbMap stores a single message for a single value
obviously a message can have a list in it. is that what you mean?
Yes. Won't be using that.
ok
Don't want to rewrite entire set on new entry
You can look in jelectrum code for set map examples
I'll do something similar but better
I know more now
Basically key: address/txid value: null
Query is get everything that starts with address/
Rocks does that fast
ah
In Bitcoin some addresses have a million tx
hmm, just started a new node with new db on my laptop and haven't had any indication of progress for 5 minutes...
There is an open issue for that.
No feedback while downloading headers
in snowdb what is the 00003.log file?
it's binary which is weird
I would expect logs to be text
It is rocks write ahead log
Aka db journal
ok
@Clueless Can you give me a chunk of your pool logs? i want to know how fast and hard the shares are coming in to know how to prioritize issuing dynamic share difficulty to miners
collusion!
still kicking myself on not having file logging yet, but luckily the systemd setup I scripted for everyone logs to syslog by default. :D
hmmmm, I added a println statement into considerBlockHeader and I'm not seeing anything. let me see if I can get a stacktrace
Might be not getting in touch with any peers
WARNING: Please consider reporting this to the maintainers of com.google.protobuf.UnsafeUtil WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release Jun 09, 2018 12:16:38 PM snowblossom.node.BlockIngestor <init> INFO: Loaded chain tip: 0 00000023440885bee85d7664235028ce89e21dae18edbdda2fe2ba35e3b664b7 Jun 09, 2018 12:16:38 PM snowblossom.node.Peerage <init> INFO: Loaded 183 peers from database Jun 09, 2018 12:16:38 PM snowblossom.node.Peerage start INFO: Starting peerage
looks likely
Many of those peers don't actually accept connections
a-holes
It could take a while to find one that does
Open an issue
Maybe add a known good flag or use some of the peer info values for that
probably connecting to lots of bad peers.
ok, lunch time
[snowblossomcoin/snowblossom] Issue opened by fireduck64
[snowblossomcoin/snowblossom] Issue opened by fireduck64
[snowblossomcoin/snowblossom] Issue closed by fireduck64
[snowblossomcoin/snowblossom] Issue closed by fireduck64
sigh... hacking on a someone else's already hacky codebase is hard
Sorry, I did try to make it not a hack but had a tight timeline
it's understandable
actually I was just saved by one of our conversations
I'm working on the hybrid mem-disk miner
and I was getting shit hashrate
and I remember you said you got shit hashrate because of sharing file handles across threads.
Sweet, the hybrid miner should be fun
looks like I it is starting to work...
not as big an improvement as I was expecting. I might be doing something stupid...
I mean... stupidity guaranteed
INFO: Mining rate: 96518.365/sec - at this rate 1271.742 hours per block
probably need to get a little more clever like we were talking about to take advantage of the memory more
Probably a synchronize problem
are you not operating a pool?
Nope