Remote delegated harvesting error

When trying to use use remote delegated harvesting following this procedure: Activating delegated harvesting manually — Symbol Documentation ; And the optional step of announcing PersistentDelegationRequestTransaction with a third Announcer account, the request is getting rejected with the error: “rejecting delegation from …: invalid signing public key”

It seems that it will only accept a request if the announcing account is the main account that is delegating importance to the node.

What am I doing wrong?

Could you check if removing all key links (Key links tab) and relinking it + start harvesting will work for you?

Thank you for the answer!

The documentation says that PersistentDelegationRequestTransaction can be signed by any account, not only by main harvesting account. Perhaps we get it wrong because when signing with an arbitrary key (with enough funds to pay fee) the transaction fails validation with the above error.

This problem is in the core (code).

Yes, sorry. Missread. I think you are right (request is accepted from main account only). It should be fixed in docs.

Hi,

This was changed in the core and I did not realize, hence the out-of-sync docs. I just updated them to state clearly that the PersistentDelegationRequest must be signed by the Main account:
https://docs.symbolplatform.com/guides/harvesting/activating-delegated-harvesting-manual.html

Apologies,
Xavi

1 Like

Thank you!

Is there a reason behind validating that the main account signs PersistentDelegationRequest? Why it can’t be signed by an arbitrary account?

There are actually multiple elements.
The reason for arbitrary account, was that we did not want to derive shared encryption key from main account key.
Node link was introduced to limit delegation to single node. So using arbitrary account would no longer make the delegation ‘invisible’.

Next part is that we introduced ephemeral key (used to derived shared encryption key) inside the request itself.

So combing node link requirment + ephemeral key, there is no longer need to use arbitrary account to sign, and removing handling of it makes the code cleaner.

note: those changes happened somewhere at the beginning of 2020 and combined with some more changes from May 2020 it completely disabled arbitrary account (we somehow forgot to update @Xavi on this :grimacing:)

Now that’s clear, much appreciated!:+1: