-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Finish the password-change logic #728
Comments
The front-end team has already put in some code to work around the existing failures here; synchronize with them about the changes you plan to make. |
Review this comment by @bertllll while recontinuing the work on this card: @utkarshg6 @dnwiebe Your whole assumption is wrong. You keep forgetting that the problem relates to the unique moment when the Node has been installed recently and it has its database half empty. a) the password is missing Now, this is the situation you should be looking at. This is the where the issue arises. Nowhere else. Of now, the workaround: the user shuts down the Node and starts it over which will fix the issue with the wallet information not properly loaded into the system. Hopefully (one of the) objectives of Utkarshe’s card: To change things so that the BlockchainBridge can update its state based on receiving a message saying: hey there are new wallets down there in the database, you should know, because look at your knowledge, yours says “no wallets”, because the field is (probably) None. Sorry Utkarsh that I didn’t explain clearly enough first time we discussed this. |
Testing OutlineObjectiveVerify if Node restart is no longer needed during wallet generation/recovery when initializing a new Node with a password for the first time. BackgroundProblemIn the past, when setting the password for the first time and initializing/recovering a new consuming wallet, a Node restart was required. This was because the information about new wallets wasn't communicated to the actors that needed it. As a result, users had to restart the Node to ensure that actors were informed about the new consuming wallet. SolutionThe actors (Neighborhood and the Accountant) become aware of the change through the Test ScenariosTest Scenario 1Step 1: Start the Node.
Step 5: Look at the Neighborhood's logs.
Test Scenario 2Step 1: Setup a fresh Node and set a new consuming wallet using
Step 3: Look at the Neighborhood's logs.
Step 4: Browse the internet. Step 5: Look at the blockchain explorer to see if payments were successful. Test Scenario 3 (Optional)Step 1: Setup a fresh Node and set a new earning wallet using
Step 3: Relay the data over the network. Step 4: Look at the blockchain explorer to see if payments were successful. Note: Make sure all the test scenarios pass without restarting the Node. |
When the password is changed from the UI, a lot of correct things happen, but not enough of them.
In general, when it receives a
UiChangePasswordRequest
, theConfigurator
actor sends aNewPasswordMessage
to each of the actors listed in itsnew_password_subs
field. That's good.The problem is that when the
Configurator
receives aBindMessage
, it populates thenew_password_subs
field with only theNeighborhood
's recipient. This means that when the password changes, only theNeighborhood
finds out about the change, and every other actor that needs encrypted data from thePersistentConfiguration
keeps the old password. That means the Node goes crazy and has to be restarted whenever the password is changed.Tasks:
PersistentConfiguration
and find all the methods that require a password.NewPassword
message in each of those actors, and make sure theBindMessage
contains aNewPassword
recipient for each of those actors.Configurator
'sBindMessage
handler, add those new recipients to theConfigurator
'snew_password_subs
list._integration
test) that changes a Node's database password and then verifies that every actor that uses the database password is using the new password properly to access the database.The text was updated successfully, but these errors were encountered: