Veil-Project / veil

Veil-Project
MIT License
118 stars 91 forks source link

Lightwallet Daemon Mode, Watchonly Daemon Mode Inital Code #1003

Closed blondfrogs closed 2 years ago

blondfrogs commented 2 years ago

This is the first PR which includes the needed code for lightwallet ringct and stealth transactions.

the flag -lightwallet is added. If this flag is added to the veil.conf or as a startup flag this daemon will only act as an RPC server. It will not sync blocks, it will not connect to peers. This daemon will be used for building the ringct and stealth transactions.

the flag -watchonly is added. If this flag is added to the veil.conf or as a startup flag this daemon will act like a fullnode, however will not have a functional wallet. So we don't send veil to this wallets addresses. This daemon will act like the backend server which light wallet clients will connect to to retrieve information about their stealth addresses.

This PR has been tested on testnet as a normal veil node, lightwallet, and watchonly node. The node functions correctly in all states.

If you want to know more information on how lightwallet transactions work please visit the new README file in doc/lightwallet.md

blondfrogs commented 2 years ago

@Zannick Was there any issues related to the code or just the documentation of the code?

Zannick commented 2 years ago

I don't know what happened to my other comment, maybe I changed my mind and removed it. My opinion on the code was that it seemed much like copied and modified code from elsewhere and so it was hard to follow what the new elements were; I was not able to finish the code review at that time. But I do not want to block this review on a refactor. So, the majority of comments for this pass are on documentation, and then in a couple of days I will make another pass.

seanPhill commented 2 years ago

I'll take a day or so at least of testing, and maybe that will enable me to clarify the instructions a bit.

seanPhill commented 2 years ago

@blondfrogs What can I do to test this? Can we use a Zelcore wallet in testnet mode?

I have run in lightwallet mode, but not with every required component.

But right now (when trying on testnet) I'm getting:

Error parsing command line arguments: Invalid parameter -watchonly=1

seanPhill commented 2 years ago

Not waiting for any further reviews. I've been running this on numerous active wallets for some time, so it at least doesn't break normal wallet operation. Time for Zelcore wallet.