Skip to content
This repository has been archived by the owner on Jun 7, 2023. It is now read-only.

Quorum refinements #884

Conversation

laumair
Copy link
Contributor

@laumair laumair commented Jan 7, 2019

Description

  • Remove unnecessary node sync checks.
  • Use default timeout for getNodeInfo & getTrytes while checking node's health

Type of change

  • Enhancement

How Has This Been Tested?

  • Manually tested iOS debug.

Checklist:

  • My code follows the style guidelines for this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • For changes to mobile that include native code (including React Native modules): I have verified that both iOS and Android successfully build in both Debug and Release modes
  • For changes to shared: If applicable, I have verified that my changes are implemented correctly in desktop and mobile

With quorum integration, some node sync checks are now unnecessary as quorum will ensure we always query synced nodes. This commit removes these checks.
@laumair laumair added C - Shared L - Do not merge Lifecycle - Do not merge this pull request L - WIP Lifecycle - Work in Progress E - Performance Epic - Performance related labels Jan 7, 2019
@laumair laumair added L - Need reviews Lifecycle - Each PR must have at least two reviewers and removed L - Do not merge Lifecycle - Do not merge this pull request L - WIP Lifecycle - Work in Progress labels Jan 7, 2019
@cvarley100 cvarley100 merged commit 6a085ec into iotaledger:mobile-0.6.0-alpha-quorum Jan 8, 2019
@laumair laumair deleted the hotfix/node-health-checks branch January 8, 2019 16:14
cvarley100 added a commit that referenced this pull request Jan 15, 2019
* Mobile: Fix bar colours

* Mobile: Add new receive page UI

* Mobile: Clear timeouts on unmount

* Mobile: Adjust receive page animations

* Mobile: Rename component

* Mobile: Fix progress bar on fingerprint authentication

* Mobile: Fix topbar spacing

* Mobile: Fix topbar opacity when disabled

* Mobile: Fix Android alert padding when modal is open

* Shared: Localise strings

* Mobile: Update transaction history modal buttons

* Mobile: Adjust topbar scrollable

* Node Quorum (#631)

* Implement quorum for wereAddressesSpentFrom

* Simply #findSyncedNodes implementation

* Add quorum support for getBalances IRI endpoint

* Minor updates

- Add quorum support for getTrytes IRI endpoint
- Minor clean up in quorum methods

* Add quorum support for findTransactions IRI endpoint

* Rename quorum methods for better readability

* Integrate quorum methods with extended api

* Remove findTransactions & getTrytes endpoints from quorum

* Refactor quorum implementation and do minor fixes

- Update JSDoc typos
- Simplify quorum implementation (Remove duplications)
- Add a timeout for network request to each node
- Fix issues in findSyncedNodes implementation
- Update error messages

* Add coverage
- Add coverage for #determineQuorumResult
- Add coverage for #fallbackToSafeResult
- Add coverage for #findSyncedNodes

* Add empty payload checks in quorum methods

* Wrap percentage calculation in parentheses for clarity

Co-Authored-By: laumair <aquadestructor@icloud.com>

* Use develop branch of iota.lib.js

* Enforce quorum (by default) on supported methods

* Fix tests failing because of quorum enforcement

* Add code documentation and rename parameters & variables for clarity

- Related discussion #631 (comment)

* [Security] Bump cryptiles from 3.1.2 to 3.1.4 (#829)

* [Security] Bump nokogiri from 1.8.4 to 1.9.1 in /src/mobile/android (#828)

* Make sure accounts are always iterated in correct order (by account index) (#824)

Object.keys(<object>) function does not always preseve the order, especially if the object key starts with a number. This causes an issue when Object.keys is used for iterating on account names. #715 adds account indexes to state to make sure the order of accounts is always intact. However, some components in desktop use Object.keys directly on accounts object, which leads to certain issues of incorrect references to accounts. This commit fixes this issue by replacing Object.keys implementation on accounts with getAccountNamesFromState selector that guarantees the accounts order.

Fixes #811

Note that the issues Object.keys create are not always noticeable. Steps to reproduce these issues are:

- Add account with name "M"
- Add another account with name "0"
- Notice account names order in sidebar (Instead of "0" being the second account, it becomes the first)
- Generate receive address from account "M" (Instead of generating receive address for account "M", it generates receive address for account "0")

* New Crowdin translations [ci skip] (#826)

* New translations translation.json (Czech)

* New translations translation.json (Czech)

* New translations translation.json (Japanese)

* New translations translation.json (Spanish)

* Mobile: Update findSyncedNodes

* Update quorum.js

* Improve parameters and variable names

* Include custom nodes in quorum nodes

* Reduce node request timeout for getNodeInfo api calls (in quorum)

* Mobile: Minor cleanup

* Mobile: Bump build numbers for release v0.6.0 (33) (#808)

* Mobile: Bump build no

* Mobile: Bump build numbers for release 0.6.0 (35) (#844)

* Mobile: Fix account name opacity during certain tasks

* Mobile: Adjust chart animations

* Mobile: Adjust chart timeframe order

* Mobile: Fix View Addresses scrollable area

* Fix failing tests (#879)

* Mobile: Fix issues with animations in settings (#881)

* Mobile: Fix settings animations issues

* Mobile: Fix settings animations issues

* Mobile: Fade out on logout

* Mobile: Fix login animation direction

* Mobile: Remove unused prop

* Mobile: Fix notification icon when modal is open

* Mobile: Fix retry text opacity during promotion

* Quorum refinements (#884)

* Remove unnecessary node sync checks

With quorum integration, some node sync checks are now unnecessary as quorum will ensure we always query synced nodes. This commit removes these checks.

* Use default timeout for getNodeInfo while checking node's health

* Disable quorum for getLatestInclusion (#900)

- Add node health checks for account sync utils because getLatestInclusion support for quorum is (temporarily) disabled.

* Mobile: Add request-specific timeouts to quorum

* Mobile: Add request-specific timeouts to quorum (#903)

* Mobile: Add request-specific timeouts to quorum

* Mobile: Update GET_NODE_INFO_REQUEST_TIMEOUT in config

* Alpha 0.6.0 (36) Release (#904)

* Mobile: Add request-specific timeouts to quorum

* Mobile: bump build no

* Fix findSyncedNodes implementation (#915)

findSyncedNodes wasn't filtering unsynced nodes from selected nodes in one case. This commit fixes the issue.

* Fix modal layout issues on Android and iPhone X (#916)

* Mobile: Add request-specific timeouts to quorum

* Mobile: Fix modal layout issues and refactor

* Update src/mobile/src/ui/components/ModalView.js

Co-Authored-By: cvarley100 <cvarley100@gmail.com>
@laumair laumair mentioned this pull request Jan 17, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
C - Shared E - Performance Epic - Performance related L - Need reviews Lifecycle - Each PR must have at least two reviewers
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants