devgrants icon indicating copy to clipboard operation
devgrants copied to clipboard

Next Step Microgrant: SoftLoadBalanceClient

Open FroghubMan opened this issue 2 years ago • 2 comments

1. What is your project? (max 100 words)

Implement a soft load balancing client (as a library) with the heaviest chain selector for miner node.

Since a single chain node is prone to delay in chain synchronization due to network problems, it will affect the block production of miner node.Using our chain node client can solve this problem.

By dynamically selecting the heaviest chain node, it reduces the impact of network factors on chain synchronization, improves the stability of miner node' block production, and avoids the problem of single point of failure.

2. Project links

Link to Github repo: https://github.com/froghub-io/lotus-load-balance-client

3. How is IPFS, Filecoin, or related technology used in this project? (max 100 words)

The Lotus API will be used for this project

4. How will you improve your project with this grant? What steps will you take to meet this objective? (max 200 words)

Since the load balancing client is provided to the miner nodes, there are many API interfaces involved, and more comprehensive testing is required.

With funding, We are mainly used for leasing computing resources and deploying more chain nodes for more comprehensive testing.

In the future we intend to implement the following features:

  • Allow independent configuration of the list of chain nodes used to sign messages, to avoid all nodes importing the wallet
  • Allows to run as a gateway service and Wallet unified management in the gateway.

5. Do you agree to share grant reports upon request, including a final grant report at the end of the three month period?

Yes

6. Does your proposal comply with our Community Code of Conduct?

Yes

7. Links and submissions

Additional questions:

Name Email Github Role
samuerio [email protected] https://github.com/samuerio developer

FroghubMan avatar Aug 11 '22 06:08 FroghubMan

Hi @FroghubMan, can you confirm if this project is open source?

ErinOCon avatar Aug 15 '22 20:08 ErinOCon

Yes, it is open source and licensed under MIT.

FroghubMan avatar Aug 16 '22 02:08 FroghubMan

This microgrant has been approved! We will send an email to confirm payment details.

Please note that your final grant report is due within three months and can be submitted here. Please let us know if you have any questions!

ErinOCon avatar Sep 13 '22 09:09 ErinOCon

Hi @FroghubMan, can you provide a final report for this project? Please let me know of questions.

ErinOCon avatar Feb 28 '23 14:02 ErinOCon

To test the effectiveness of the lotus node load balancing client in a real network environment,we integrated it into lotus-miner and started six lotus nodes, all of which imported wallets for message signing.

After several months of testing, we obtained the following results:

Achieved expected effects:

  1. lotus-miner can still work normally unless all six lotus nodes are down.
  2. By dynamically selecting the heaviest chain node, the block-producing stability of lotus-miner has been improved to some extent.

Issues discovered:

When bypassing the load balancing client and independently sending messages to a node in the cluster, other cluster nodes will be in a state of inconsistent nonce during the time when the other nodes have not yet synchronized with the message. In this case, the other nodes in the cluster cannot send the correct message.

FroghubMan avatar Mar 02 '23 07:03 FroghubMan

We have submitted the final grant report through Airtable.

FroghubMan avatar Mar 02 '23 07:03 FroghubMan