gilnobrega / farmr Goto Github PK
View Code? Open in Web Editor NEWA web dashboard for monitoring Chia farms. Also supports discord and email notifications.
License: GNU General Public License v3.0
A web dashboard for monitoring Chia farms. Also supports discord and email notifications.
License: GNU General Public License v3.0
The docs say it installs (Ubuntu 21.04) under ~/farmr but my install was under /etc/farmr
First of all, thank you! Great tool, love it!
Show the farmer's peak height / blockchain height to help give visibility on the blockchain synchronization process.
How would I add Forks to FARMR like Spare, Flax, etc?
Is it possible to use this reporting with the windows version in some way, please?
Thank you.
If I read this right, you have to be on a specific discord server to receive notifications. Can this be configurable so that we could use our own discord server?
farmer.exe is picking up and reporting flax statistics, but the generated ID, when entered into farmr is being rejected. Farmr looks like it wants to add, then the screen comes back up with XCH, CGN, etc, but no XFX. Edit resolved on its own overnight.
Prior to v1.2.0, the Nodes card never reported more than 8 or so nodes. Now it's up to 50 on my farm.
Let me say I realize it's entirely possible this is completely correct and legitimate. I suspect it's possible that previously it was only reporting outbound nodes, and now (perhaps due to more verbose logging in 1.2.0) it is now also counting inbound node connections, which I believe can go up to 80 per the default config.yaml.
Just thought I'd mention it as something you might want to look into. And if I'm right in my suspicion, it might be worth having the card report outbound and inbound as separate values instead of a sum, if it's possible to distinguish them in the logs.
Oh, let me also add that everything else Farmr related is working beautifully under 1.2.0. No other issues to report at all.
First, thank you SO MUCH for this tool. Tremendously useful.
So, on my system, with parsing enabled, I get a "Drives" card. It only seems to see physical drives attached to the farmer for that count, though, but it does add up the space of all the plot directories I'm accessing via network shares for the "total of X tb" figure. So, for example, mine says "6 drives, total of 443TB" (I wish). The "total of XTB" part is redundant with the "Plotted Space" card, and I don't see much utility in knowing how many physical drives are attached to just the farmer.
I think what would make more sense and be more useful is to replace this card with one called "Plot Directories". It would look like this:
"PLOT DIRECTORIES
40/40 Directories Online
Total of 443TB" (again, this is redundant with Plotted Space, and I seem to get slightly different values, so just ditch it if you prefer)
As far as the "40/40 Directories Online", I would derive the second number by parsing the last "Searching Directories" entry in the log and counting the number of plot directories, and the first number by subtracting a count of any "WARNING Directory: XXXXXXXXXXXX does not exist." entries that follow it. So if, for example, I were to shut down one of my other network servers that has 10 plot directories on it, the card would show "30/40 Directories Online".
Whatcha think?
The "Show Hardware Info" field is being overwritten on launch of farmer.exe (back to the default of 'true'). I've tried editing the field while the executable was running under Windows, and after closing farmer.exe out. It reverts back to 'true' every time.
Do we need to lock the config.json file manually so fields don't reset?
Hi
13:53:49 - Sent harvester report to server
Retrying in 10 minutes
Unhandled exception:
type 'Null' is not a subtype of type 'FutureOr<Response>'
#0 _FutureListener.handleError (dart:async/future_impl.dart:172)
#1 Future._propagateToListeners.handleError (dart:async/future_impl.dart:719)
#2 Future._propagateToListeners (dart:async/future_impl.dart:740)
#3 Future._completeError (dart:async/future_impl.dart:550)
#4 _completeOnAsyncError (dart:async-patch/async_patch.dart:274)
#5 _withClient (package:http/http.dart)
<asynchronous suspension>
After upgrading to version 1.3.x, I am experiencing this bug frequently. I mainly use harvester.sh
I was using 1.2.7 before and 1.2.7 did not have this issue.
Also, this bug is not always there. Like I am able to run harvester.sh
, and in the first 30 to 40 mins, harvester.sh
reports as expected. harvester.sh
crashes after making several reports.
I linked my account to the wrong discord account, and it seems once its linked its not possible to link again to a different discord account. I can confirm the the chia commands work with the wrong account, but with the second account to link it shows that nothing has been linked, even though it says link successful in the bot.
Perhaps an unlink function can be added to the bot to get rid of the association? Or alternatively, perhaps link replaces the old association so you don't need the unlink?
I've tweaked plotting settings etc and had network issues in the past etc.
Would be good to have a config setting so that. Rather than look over the whole history to see the average plot time or the longest time to respond to a challenge, it would only consider the last n days (0=forever as default)
Would be nice to have percentages displayed above each filter graph bar to let us know the overall distribution of those filter response times. I find myself doing mental gymnastics to compare them every time I look.
Even just "92%" over a bar could immediately tell me how well that time range was performing, and let me judge it against others (typically the longer ones) quickly. Displaying it above all simultaneously would be ideal.
I wouldn't want it forced inside a tooltip though, since it's the most important stat that I'm looking for from that graph, right after "do I have a lot of long response times".
For deb/rpm systemd support would be nice.
Here is a starting point:
[Unit]
Description=Chia Farmr Monitor
After=network.target
StartLimitIntervalSec=0
[Service]
User=root
Type=simple
Restart=always
RestartSec=1
ExecStart=/usr/bin/farmr
[Install]
WantedBy=multi-user.target
HI,
first of all thanks for this great tool!
I've managed to add Chia, Flax, Goji, ChainGreen and also Spare and the client picks up all the configs. However, when trying to add new device (Spare in this case) to the web interface it complains that the id is too long.
Please see the screenshot attached.
Since today, the bot crashes with the following exception:
FormatException: Unterminated string (at character 745473)
...ime":0.03557,"totalPlots":557,"proofs":0},{"timestamp":1621835827601,"eligi
^
#0 _ChunkedJsonParser.fail (dart:convert-patch/convert_patch.dart:1404)
#1 _ChunkedJsonParser.close (dart:convert-patch/convert_patch.dart:515)
#2 _parseJson (dart:convert-patch/convert_patch.dart:41)
#3 JsonDecoder.convert (dart:convert/json.dart:506)
#4 JsonCodec.decode (dart:convert/json.dart:157)
#5 jsonDecode (dart:convert/json.dart:96)
#6 Cache.load (package:chiabot/cache.dart:80)
#7 Cache.init (package:chiabot/cache.dart:54)
#8 main (file:///home/runner/work/chiabot/chiabot/chiabot.dart:60)
#9 _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:281)
#10 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:184)
Hi Joaqui,
thanks for the amazing script
i have a problem setting up the tool I got this error below
No plots have been found! Make sure your user has access to the folders where plots are stored.
maybe i need to symlink my plot folder to my /home/host1/chia-blockchain ?
because today my plot folder are under different partition
Thanks
MB
Discord Invite Link Broken - Sorry I don't use GitHub often so I apologize if this is not the correct way to message you.
Hi, from what I saw chiabot would need to link the farmer.exe, not wallet address. I have a few full node running from different location, ie. independent ip address. It would be helpful to monitor them as they use the same chia address. Can you also make discord independent, ie. standalone? Thanks.
Hello!
My today second feature request is to have the same bot with the same features in Telegram Messenger.
Thank you in advance!
When issuing bot commands via PM like !chia full through the Discord mobile app, the bot does not respond.
Works fine and gives expected result if I use Discord via browser.
Android 10 (ask Android Q) on Huawei P30, Discord app ver 73.12 (73012)
Empty mounted drives cause plot listing to fail:
Oh no! Something went wrong.
FileSystemException: Directory listing failed, path = 'C:\chia\drives\HD2\*' (OS Error: The system cannot find the file specified.
, errno = 2)
Do NOT close this window.
Hi there, I set online config = false.
Settings load up ok from my .json, but i notice its not updating the number of plots as they come in.
Could there be a bug when using local config instead of online?
This should be
updateSizeAndEnd
and should do stat again and update the End field as well.
hpool.exe under windows
Cannot open file, path = 'config.yaml'
In my config-xch.json I have ""HPool Directory": "C:\Users\blabla\Chia\Hpool\miner",
but it doesn't work
Oh no! Something went wrong.
FileSystemException: Cannot open file, path = 'config.yaml' (OS Error: The system cannot find the file specified.
, errno = 2)
Do NOT close this window.
It worked with previous version (1.4 ...)
Not sure how to configure it - exactly what i need though!
Seeing the red text "Farmer status: not available" on the left side of the Farmr web display, but all of the statistics fill in just fine. I double-checked the config file and the values/format seemed just fine.
Any suggestions as to why this might be happening? I'm not using the Chia GUI for any plotting, that's coming from Swar (which I didn't configure for Farmr). Essentially this rig is acting as a Farmer/Full node only while Swar runs in a Powershell separately.
Having several issues:
The standalone farmr-linux-x86_64.tar.gz appears to have a config file only for XCH. No config files for any forks found. Pretty sure it used to have some.
I can change the name in my config files, but it still keeps returning only the names "Farmer" and "Harvester" in the output. It's also not showing my cold wallet balance properly. It seems like it's not reading the config-xch.json file at all. This also affects my Flax install.
In trying to fix the name issue in my second issue on Windows, I opened the files in the "cache" folder and noted that the first line was still returning a path to the bin file for version 1.1.7. I am on 1.2.0 on all my machines. When I tried deleting those cache files and restarting, the path in the newly generated cache-xch.json "binPath" now comes up blank. Not sure if that's a problem, but thought it might help diagnose. Aside from the "Name" thing, though, it appears to be working correctly (I do see a display of the Windows Drives).
Can you confirm that updating versions will require removing the devices from Farmr and readding them with a new key? Because it seems like that is in fact a requirement, might want to make that explicit in update instructions.
Thanks again for all your work!
This tool is working nearly perfectly for me now... I really don't think I could stand using the Harvester model without it, as the GUI is almost useless in reporting combined information, but Farmr pretty much eliminates all of the disadvantages. Awesome.
About the only last thing I can think of requesting is that, when you change the card order for Harvesters, it doesn't affect the order for Farm/Farmers and vice versa. As you don't get the same number of cards for harvesters as you do the others (for example, I can't get "Wallet Balance" in the Harvester screens), if I want to make what cards do match line up when switching between Farm/Farmer and a Harvester, I try to put one of the lower cards in my Harvester screen (say, "Drives") in the top row to take up the slot held by "Wallet Balance", thus pushing all the ETW cards into the second row the same as I have them in Farm/Farmer... but when I do that, it also moves the Drives card to the top row in the Farm/Farmer screens, screwing up that second ETW row which I previously had set up the way I wanted. Effectively, I can get Farm/Farmer set up the way I want, or Harvesters, but not both. Seems to me as they hold different sets of information and card counts, the card order for each type should be able to be configured separately. Just a thought.
I got an "Id too long" error message when I try to add Spare to the monitor "cxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-spare" the erro message dissapear if I delete the last 2 characters from the ID "cxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-spa" but it doesn't add anything to the dashboard.
Thank you
If I read this right, you have to be on a specific discord server to receive notifications. Can this be configurable so that we could use or own discord server?
Hello,
I'm trying to setup the json files for SPARE, FLAX and CHIA.
The following configuration is working properly:
{
"Binary Name": "spare",
"Folder Name": ".spare-blockchain",
"Currency Symbol": "SPARE",
"Minor Currency Symbol": "graviton",
"Net": "mainnet",
"Block Rewards": 4.0,
"Blocks Per 10 Minutes": 32.0
}
But if I try to set the config and log path, I can't run the farmr shell.
It crashes in less then one second:
{
"Binary Name": "spare",
"Folder Name": ".spare-blockchain",
"Currency Symbol": "SPARE",
"Minor Currency Symbol": "graviton",
"Net": "mainnet",
"Block Rewards": 4.0,
"Blocks Per 10 Minutes": 32.0
"Config Path": "C:\Users\CHIA\.spare-blockchain\mainnet\config",
"Log Path": "C:\Users\CHIA\.spare-blockchain\mainnet\log"
}
I already tried other way to write the pas as:
"Config Path": "C:\\Users\\CHIA\\.spare-blockchain\mainnet\\config",
"Log Path": "C:\\Users\\CHIA\\.spare-blockchain\\mainnet\log"
or:
"Config Path": "C:/Users/CHIA/.spare-blockchain/mainnet\config",
"Log Path": "C:/Users/CHIA/.spare-blockchain/mainnet\log"
But I still have the same issue.
Thank you in advance!
Linux install refers to a 'Main Screen' does this require a desktop (gui) to be installed or can it all be done via command line?
Hi there, quite new to git. Don't know if this is the right place to ask but when I ./chiabot it's set to this file path:
FileSystemException: Cannot open file, path = '/root/.chia/mainnet/config/config.yaml' (OS Error: No such file or directory, errno = 2)
is there any way to change this path?
I started farming Flax today on Ubuntu 20.04. For my farm statistic I'm using farmr app. This farmr app is fresh install. But I can see that my effort is 1158% and also it says that I won a block 18 days ago. But I started farming Flax today. Any idea what can be wrong?
I noticed the Last plot length duration is not the same as the actual creation time of the plot. I'm using Madmax windows plotter v0.0.5 and seeing random variations of the completion time reported by farmr. I'm also using hpool.exe
There are no log files to scan, so I'm assuming that you might be calculating the time from the plot filename datetime vs file last modified date, but it also seems like its a mismatch of that.
Hello,
First of all thank you for this incredible Job, I love this bot.
Will be possible to add your bot to other Discord Server? I have a very little server with the 2 guys and we own the same CHIA Farmer, so it will be perfect if we can integrate this bot to our group.
Thank you!
Not sure if this is the intended behavior, but it keeps prompting the Discord login authorization every 2-3 hours.
Just wondering if it could be a setting that I overlooked, or any other way to stay logged on, especially when the browser is left open?
Your Version card currently shows only the version number for Farmr. Please add the Chia/Flax version # installed on that harvester/farmer as well. I have no idea how to actually query for that myself - even in the Gui, selecting "About Chia" doesn't display the version #. With all the 1.2.0 / 1.2.1 and more versions coming out rapidly and having to update one by one, it'd be handy to have Farmr confirm the update worked.
Will be good if farmr can help run chia/xxxxx start harvester -r when
"Connection error. Check if harvester is running at xxxxx" occurs
And also send a notice/alert
Hello,
So last night I switched from a network share model (one farmer/harvester accessing most plots via network share) to the harvester model (one farmer/harvester and 3 harvesters). I was planning to have one of my plotters serve as farmer for chia and a separate server as the farmer for flax, and then each of these servers also acting as a harvester for the other fork.
Unfortunately, farmr doesn't seem able to deal with this. I tried running both "farmr" and "farmr harvester" on separate terminals on the server I'm trying to farm flax and harvest chia on, but this just confuses the heck out of it. If I run just one, for example just "farmr", then adding the device results in it listed properly as a farmer under flax but as unable to get statistics under chia (and it also has the farmer symbol rather than the harvester symbol listed under chia). If I run just "farmr harvester", then it lists as a harvester only under both flax and chia, but with errors such as on the network space card.
Thanks again for all your great work. If I absolutely have to, I'll make one server the farmer for both, but I'm hoping there's a solution as it would be nice to not have to have all the logging for both on one server's desktop, and can instead dedicate the desktop of two different servers for each farming and monitoring a single fork.
First of all thank you for this "tracker" is very useful to me.
There is a way to check the cold wallets for Flax-Chg like the chia one?¿ i tried adding the XHC cold wallet lines and changing the addes but didnt work.
First of all thanks for a fantastic tool!
Now I use it for XCH, XFX, CGN and SPARE. The first three run without issues. SPARE however reports:
Unable` to parse farmed SPARE. Is wallet service running?
Unable to parse last height farmed for SPARE. Is wallet service running?
I have my blockchain/spare.json file like this:
{
"Binary Name": "spare",
"Folder Name": ".spare-blockchain",
"Currency Symbol": "SPARE",
"Minor Currency Symbol": "graviton",
"Net": "mainnet",
"Block Rewards": 4.0,
"Blocks Per 10 Minutes": 32.0,
"Config Path": "c:\Users\USER\.spare-blockchain\mainnet\config",
"Log Path": "c:\Users\USER\.spare-blockchain\mainnet\log"
}
...and my config/config-spare.json like this:
[
{
"Name": "Farmer",
"Currency": "USD",
"Show Farmed SPARE": true,
"Show Wallet Balance": false,
"Show Hardware Info": true,
"Block Notifications": true,
"Plot Notifications": false,
"Hard Drive Notifications": true,
"Offline Notifications": false,
"Farm Status Notifications": true,
"Parse Logs": true,
"Number of Discord Users": 1,
"Public API": false,
"Swar's Chia Plot Manager Path": ""
}
]
Any idea what I did wrong?
Is there a way I can run the bot to listen on my personal discord? A docker image perhaps?
Hey Joaquim,
First of all nice work with the bot, we have a group of friends hanging out in the discord chat and we always wondered in what hardware are some of these guys using in order to achieve some of the metrics (just to help us have an idea what to buy, or if we need to tune the config).
So I would say that we might have a parameter on the configuration for people who want to share their hw specs? if you think it's a good feature I might try to pull up my sleeves and try to make a patch (I never coded in dart but I can try to do something)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.