Bug? Where is the pk list? "Plot has a farmer public key that is not in the farmer's pk list"

Everything I’ve found about this suggests that it is fixed by adding the mnemonic, but I have done that.

I have three plotters, and I wanted to have only one farmer. I shared all the plot directories with nfs, and set them up in my farming node.

As I mentioned, I used the same mnemonic, though on some nodes I may have initially generated a new one, and then immediately imported the old one.

Initially, plots complained about missing the pool public key as well as the farmer public key. I was able to resolve the former by pulling the key out of config.yaml on my former farmer / current plotter node.

I did in fact have two keys in that config file, which I assume means I generated a new key before importing the old one. I’ve used chia keys show to confirm the mnemonic matches everywhere currently.

However, I cannot figure out what is meant by “farmer pk list”, and cannot resolve the other error. There is a section in the config.yaml where one can put a list of pool public keys, but with respect to the farmer public key, all I could find was the .chia/mainnet/config/ssl/farmer directory, where each node has exactly one pair of private and public certs and keys. Hence, the error makes no sense.

So I figured I would try to make a list right in the directory, and I copied my public_farmer.[key,crt] files over to the new node, and named them public_farmer_2.[key,crt]. Unfortunately, when I chia plots check, the error about the public farmer key persists, so that must not be a farmer pk list.

Of course I checked the documentation, which only says:

# Moving plots to a different machine

Pre-requisite: You'd need to have the same keys on the new machine.

1. Install chia on the new machine
2. Find your private keys using `chia keys show --show-mnemonic-seed` on the old machine, or on the UI by clicking on "Keys".
3. Copy the 24 mnemonic words (this is your private key) and add them to the new machine using `chia keys add`
4. Move the plot file
5. Add the new plot directory
  * For command line: do `chia plots add -d '/Users/example/folder'`
  * For GUI: go to the `Farmer` tab and click `Add plots`, and select the new directory.

After following these steps, and restarting your farmer, the new plots should be visible.

Well, they’re visible, but not useable.

I’ve found some posts online suggesting this could be a bug, but there is never a resolution.

Can anyone tell me what a farmer pk list is, so that I may add my former farmer’s key to it?

Step 1: You did or did not plot with multiple private keys?

Step 2: Did you copy the ca folder and do chia init -c on the other machines?

Step 3: Why bother with NFS? That’s horribly inefficient, just run harvesters on each machine and one farmer.

1 Like

Thanks for the reply.

Step 1: You did or did not plot with multiple private keys?

Step 2: Did you copy the ca folder and do chia init -c on the other machines?

Step 3: Why bother with NFS? That’s horribly inefficient, just run harvesters on each machine and one farmer.

  1. I never started plotting before importing my keys. It’s possible that I started plotting after importing my keys but before restarting the service, if that makes a difference. Plots from two of the three plotters work fine on the farmer, the third one’s plots throw this error, but not when I check the plots from the plotter itself (i.e. the error only appears on the new farming node, not the node that plotted them).

  2. I did “chia keys add”, but not chia init -c on the other machines (I assume by ‘other machines’ you mean the plotters), I did not copy any ca folder. I read the instructions I referenced in my OP about moving plots to another node, and saw/see nothing about that. My intention was always to go from 3 plotter/farmers to 3 plotters and one farmer, so that’s what I’m trying to do now. Are you saying I should pick a ca file to use on all my plotters and farmer?

  3. I’m not transferring the files over NFS, just making them visible to the farmer. Maybe there are disadvantages to this that I am not seeing.

I forgot to post the error that I get after I chia plots check:

There are 40 plots with a farmer or pool public key that is not on this machine. The farmer private key must be in the keychain in order to farm them, use ‘chia keys’ to transfer keys.

It also says to use chia keys to transfer them. Everything I read seems to indicate that that’s all should have to do. This looks a lot like a bug.

I don’t see a bug, seems like you lost track of your keys. That message is fine on a harvester, mine all say it, and have won plenty. When you run chia plots check compare the “Pool public key” and “Farmer public key” with what you have in the config on your farmer. If it matches, you’ll be fine. If it doesn’t match you’ll need to figure out where your other set of keys are and get them loaded into the farmer, or else you may have to replot.

NFS is slower that just running the harvester on the machine where the disks are. With NFS you’re going to move file blocks over the network for your single farmer/harvester to evaluate. If you run the harvester on the node with the disks, the farmer will tell it the challenge, and the harvester will respond with the proof if there is one.

1 Like

Luckdog: here’s what I’m not understanding:

If I had started plotting with the wrong keys then why is the machine that plotted them able to farm them, given that chia keys show only shows the keys I’m using everywhere. I.e. why isn’t the plotter complaining about the farmer public key?

In fact, this same machine is still making plots that it can farm, but the farmer cannot.

Plot /srv/node1/chia0/plot-k32-2021-06-20-04-19-0ab8775a14727e1e58dd2f78e01f34208b7098c5db3281630b741fdf03d37666.plot has a farmer public key that is not in the farmer’s pk list

Meanwhile, the new farmer has no problem with plots that were made yesterday:

Found plot /srv/node1/chia1/plot-k32-2021-06-19-04-26-55bb08a47f229443b3aa96da6d93eabb6aa22b8275f8307a3339e48e06649e9a.plot of size 32

I’m sure I did not generate new keys today for one of my nodes, but just to be double sure:

(on plotter)
#chia keys show | grep 
<public_farmer_key_copied_from_new_farmer>
Farmer public key (m/12381/8444/0/0): <public_farmer_key_copied_from_new_farmer>

So they have the same public key today, the same day that one is making plots the other can’t farm.

Checking the debug.log, I can’t see what key that might be, but I’m only seeing that same key as above in all the other plots.

Here is the plot from above on the plotter, passing chia plots check:

 chia plots check -g b741fdf03d37666
2021-06-21T01:12:59.782  chia.plotting.check_plots        : INFO     Loading plots in config.yaml using plot_tools loading code

2021-06-21T01:13:02.294  chia.plotting.plot_tools         : INFO     Searching directories ['/chia0', '/chia1', '/chia2']
2021-06-21T01:13:02.295  chia.plotting.plot_tools         : INFO     Only loading plots that contain "b741fdf03d37666" in the file or directory name
2021-06-21T01:13:02.455  chia.plotting.plot_tools         : INFO     Found plot /chia0/plot-k32-2021-06-20-04-19-0ab8775a14727e1e58dd2f78e01f34208b7098c5db3281630b741fdf03d37666.plot of size 32
2021-06-21T01:13:02.471  chia.plotting.plot_tools         : INFO     Loaded a total of 1 plots of size 0.09898081221672328 TiB, in 0.22062087059020996 seconds
2021-06-21T01:13:02.471  chia.plotting.check_plots        : INFO
2021-06-21T01:13:02.471  chia.plotting.check_plots        : INFO
2021-06-21T01:13:02.471  chia.plotting.check_plots        : INFO     Starting to test each plot with 30 challenges each
<snip>

2021-06-21T01:13:14.887  chia.plotting.check_plots        : INFO        Proofs 22 / 30, 0.7333
2021-06-21T01:13:14.887  chia.plotting.check_plots        : INFO
2021-06-21T01:13:14.887  chia.plotting.check_plots        : INFO
2021-06-21T01:13:14.887  chia.plotting.check_plots        : INFO     Summary
2021-06-21T01:13:14.887  chia.plotting.check_plots        : INFO     Found 1 valid plots, total size 0.09898 TiB
2021-06-21T01:13:14.887  chia.plotting.check_plots        : INFO     1 plots of size 32

So in summation, we have a plot created today, by a plotter with the same keys as a farmer, that only the plotter can farm.

You compared chia keys show on all machines?

I would (and did) follow the Farming on many machines · Chia-Network/chia-blockchain Wiki · GitHub guide to run the farmer only on the full node (with node and wallet), and harvester on all other machines to connect to the single farmer.

Yes

I guess I can try that, pending another solution. I wasn’t interested in running a harvester per node at this point, but I’m stuck anyway.

That’s a good enough reason to set it up per the docs you referenced.

All you need is 1 farmer in total. 1 farmer, 1 node, 1 wallet. Then have as many harvesters reporting to that farmer as you want, and they don’t need your private keys to do so if you set it up with chia init -c from the “farming on multiple machines” wiki. Plotters don’t need ANY keys (unless you are also running a harvester on them).

2 Likes

This problem happened to me too when I updated to version 1.6.
Even though I have 1 farmer, 1 node, 1 wallet.
I raised the problem here and so far I have not received a suitable answer.