Commit Graph

86 Commits

Author SHA1 Message Date
Con Kolivas
438f8c4472 Add the beginnings of a sanity checking client message parser 2014-04-24 16:49:33 +10:00
Con Kolivas
f2b32839c1 Create a client instance hash table and use it to determine which fds need to be polled 2014-04-24 13:48:17 +10:00
Con Kolivas
3c21f90aab Use poll to connect many clients and see which connections need to be read in connector 2014-04-23 16:34:42 +10:00
Con Kolivas
bcbafba42e Create a thread from the connector process that listens for incoming connections and opens new connections for them 2014-04-23 15:17:09 +10:00
Con Kolivas
55b8e8424a Add connector process which will process all remote communications 2014-04-23 14:38:34 +10:00
Con Kolivas
9e92be3f5e Use a longer timeout for reading a socket line, along with a select timeout on each loop through the read function to increase reliability over network connections 2014-04-23 13:12:36 +10:00
Con Kolivas
4ab9120e61 Handle failed generator startup as a fatal startup, sending listener a shutdown message and adding shutdown parsing 2014-04-23 13:07:04 +10:00
Con Kolivas
2b1f9510cf Add a block update thread that polls bitcoind regularly for the latest hash and handle failed json requests as closed sockets 2014-04-23 09:51:56 +10:00
Con Kolivas
8f0958bbfb Add some default parameters to make polling intervals configurable 2014-04-22 22:03:48 +10:00
Con Kolivas
2bcdc4bcce Cache the header binary that will be used for work reconstruction 2014-04-22 16:04:23 +10:00
Con Kolivas
86159a60ec Generate coinbase templates, fixing missing fields from gbt parser 2014-04-22 15:12:49 +10:00
Con Kolivas
3cd82a5dd1 Validate pool address on starting generator 2014-04-22 13:12:53 +10:00
Con Kolivas
4766e90df2 Left out nbit from parsing 2014-04-22 12:49:23 +10:00
Con Kolivas
b65c555d87 Decode the generator response and store the variables in the stratifier 2014-04-22 12:48:17 +10:00
Con Kolivas
bbd4e59069 Use the send recv proc helper in the stratifier process 2014-04-22 11:49:13 +10:00
Con Kolivas
1953cd2935 Add helper functions for sending/receiving to a process instance 2014-04-22 11:42:13 +10:00
Con Kolivas
a723e70f51 Remove signal handlers and use a watchdog thread to watch for dead child processes and restart them 2014-04-21 20:06:20 +10:00
Con Kolivas
0d3d2434be Use name for socket directory and add more config options 2014-04-21 18:36:22 +10:00
Con Kolivas
6f1838536c Create a stratifier thread that updates the data from the gbt template regularly and receives other requests 2014-04-21 15:58:07 +10:00
Con Kolivas
945c730447 Add and test a getbase function of the generator process 2014-04-21 14:13:12 +10:00
Con Kolivas
6f679e1cf4 Create the main read parse loop for the generator and send it a test message 2014-04-21 13:46:18 +10:00
Con Kolivas
eb041c331f Use a consistent method for sending/receiving messages across unix sockets 2014-04-21 13:03:50 +10:00
Con Kolivas
0da6336602 Fix gbt base generation, be more flexible with reading lines from socket, and add gbtbase clearing function 2014-04-21 10:35:26 +10:00
Con Kolivas
4c4246c8d4 Create basic connsock data and connect to socket in generator 2014-04-21 10:10:27 +10:00
Con Kolivas
194c8e42f3 Begin parsing of a config file, storing btcd url, auth and pass 2014-04-21 09:54:25 +10:00
Con Kolivas
15170c79d2 Original sighandlers don't actually come in useful here 2014-04-19 20:47:01 +10:00
Con Kolivas
219c49817e Install the signal handlers only for the master process and try to clean up in consistent fashion with handler 2014-04-19 20:22:53 +10:00
Con Kolivas
f864e1176c Install signal handlers and store the originals in the ckpool_t 2014-04-19 20:05:20 +10:00
Con Kolivas
2f7f3ecad4 Store the pid in the proc instance structure and try to clean up on processes exiting 2014-04-19 19:52:08 +10:00
Con Kolivas
10c2b48b4f Rename processes and change generator function to suit pi model 2014-04-19 19:36:50 +10:00
Con Kolivas
2c9653d138 Add a process structure to contain all variables likely to be used by spawned processes 2014-04-19 19:24:06 +10:00
Con Kolivas
9544d280e3 Launch generator process and abstract out more of the per process files created 2014-04-19 17:56:45 +10:00
Con Kolivas
e5d9d0a609 Use no global variables and append / to all directory names 2014-04-19 17:19:37 +10:00
Con Kolivas
8a23b0bb28 Write the pid to a temporary file 2014-04-19 17:14:22 +10:00
Con Kolivas
41bc9865c9 Begin basic main function parsing parameters, create a directory for sockets and create a listener thread 2014-04-19 12:56:45 +10:00
Con Kolivas
4e99e282b9 Pass correct size for bind and connect 2014-04-19 11:28:15 +10:00
Con Kolivas
1402039cc6 Don't show errno for logging lower than error 2014-04-19 09:36:19 +10:00
Con Kolivas
b2805d2c49 Trim out values from the gbtbase structure that can't be exported as text and store the values required as strings and create a json structure out of the entries for export 2014-04-18 21:24:04 +10:00
Con Kolivas
c98ed16e38 Move gbtbase_t to bitcoin header 2014-04-18 14:24:09 +10:00
Con Kolivas
4aa122edce Add helper function for opening unix client sockets and cleanly closing and unlinking unix server sockets 2014-04-18 13:07:52 +10:00
Con Kolivas
9fdcefc06d Show errno whenever it exists in LOGERR or quit 2014-04-17 15:43:15 +10:00
Con Kolivas
2a3e55ec4d Add a helper function for opening a listening unix socket 2014-04-17 15:31:07 +10:00
Con Kolivas
c653c781a3 We should also store the merkle hashes in the gbtbase structure 2014-04-15 20:59:45 +10:00
Con Kolivas
b8f9c948e7 Shrink rpc req string size 2014-04-15 20:27:05 +10:00
Con Kolivas
cf04ec012a Use a preallocated hash char for get blockhash to avoid alloc/free 2014-04-15 20:25:08 +10:00
Con Kolivas
f2dc9c796f Add helper functions for getting best block heights/hashes 2014-04-15 16:12:22 +10:00
Con Kolivas
7d932a7661 Cosmetic changes 2014-04-13 22:16:08 +10:00
Con Kolivas
8e4d0276f8 Rationalise gbtbase variables to those that are constant and not associated with work generation 2014-04-13 22:05:44 +10:00
Con Kolivas
1335dade26 Use this opportunity to avoid signed warnings with chars by taking void for hex2bin 2014-04-13 21:41:00 +10:00
Con Kolivas
a34efdb221 Implement base gbt structure storing from bitcoind 2014-04-13 21:36:44 +10:00