Bitshares BOINC project brainstorming thread! All ideas welcome!steemCreated with Sketch.

in #bitshares8 years ago (edited)

banner

Note: This is a replicated thread from the bitsharestalk forum, please post in said thread when this post closes in 30 days.


Hey,

I'm Customminer from the Gridcoin community, I've been a holder of BTS since BTSX days & have a very positive outlook on the future of Bitshares!

I have been paying attention to the recent Bitshares testnet stress-testing which yielded a rate of approx 3k TX/s, it was mentioned in the 13th Bitshares hangout that a potential reason that we were limited to 3k TX/s was the lack of computing power at the disposal of the stress-test organizers - I believe that the BOINC & Gridcoin community can help!

BOINC is an open-source kit for volunteer distributed computing, it can distribute any kind of computing task and has between 250k & 560k active users (differing estimates depending on what site you go to.. it's difficult to guesstimate) & 4 million registered users in total. To put the scale of available computing power in perspective, team Gridcoin has 100k hosts at its disposal and currently only rewards 0.5% of the active BOINC community. The majority of the BOINC community contributes their resources entirely for free, those that crunch under team Gridcoin are rewarded GRC by the network on behalf of whitelisted projects (project owners pay nothing).

I spoke during episode 200 of the BeyondBitcoin hangout and the 14th Bitshares hangout on this topic.

I try to encourage the development of new BOINC projects each month, join in the latest discussion!

The Tools

https://github.com/marius311/boinc-server-docker
https://github.com/marius311/boinc2docker
https://www.docker.com/
https://github.com/xeroc/python-bitshares
https://github.com/xeroc/bitshares-docker
https://github.com/grctest/project-rain-site

The Ideas

Bitshares Testnet Load Generator!

It was mentioned in the last Bitshares hangout that the Bitshares testnet stress test may have been limited due to a lack of resources available for creating a larger transaction volume - what about distributing testnet load generating software out to a few thousand computers around the world via a BOINC project?

Such a project wouldn't be eligible for Gridcoin whitelist status (no GRC rewards) due to the bursty nature of stress testing (GRC needs continuous work availability).

You could easily distribute an UIA to your volunteers proportionally to their completed work by adding a Bitshares field to the BOINC signup page and user profile.

I'd imagine that for this idea, you would distribute a docker container which contained python dependencies, the testnet stress-test python script, and the bitshares client.

Once running on an user's machine, it would need to create a testnet user account, the project admin would send enough testnet BTS to each volunteer bitshares account, each account would register as lifetime (for less fees, but not neccessary), then the main stress-test script would begin bombarding testnet with transactions.

The 3000+ TX/s rate achieved in the recent Bitshares testnet stress-test was great, but let's try to push it to 1 million + TX/s!

Relevant links:
Bitshares testnet stress-test thread
Bitshares stress-test video


Bitshares Full/API node distribution

Alongside the testnet load generator, you could distribute full node servers out to volunteers to supply additional network resources to the Bitshares network.

This would require the development of a proof-of-bandwidth credit mechanism (how to reward credit to users based on their full node availability/capacity/consumed-resources).

Since full-nodes are always required, this would make a Bitshares BOINC project eligible for Gridcoin whitelisting.

This would require setting minimum computer spec requirements, so not everyone would be able to participate unlike the load generator.


Machine Learning + BTS

You could distribute TensorFlow docker containers, and perform machine learning against data gathered from the BTS DEX.


Witness experiments

We currently have ~25 witnesses, down from 100 in the switch from BTS 1.0 to BTS 2.0, we could experiment with different quantities of witnesses in an automated manner to evaluate optimal quantities of witnesses.


Volunteer incentives!

The BOINC web server is programmed in PHP, you can easily add a Bitshares (and bitshares testnet) account field to the account signup page (and profile page), then expose said account name within the user statistics xml files (which is generated every 24hrs) then you can proportionally distribute an UIA on the BTS network to each BOINC volunteer proportionally to their contributed computation (RAC). Since these xml files are public, anyone could distribute their own UIA against your volunteers (new sharedrop vector!).

If there is a continuous availability of work units for volunteers, then the project would be eligible for Gridcoin whitelist status (the Gridcoin network would distribute rewards to your volunteers).


Do you have an idea for Bitshares which requires vast amount of distributed computing power? Please post your ideas in this thread! +5%

Thoughts?

Regards,
CM.

Sort:  

BOINC vs Commercial Cloud Computing

Research papers

Research TL;DR: (Note - 7 year old statistics!)

  • In the best-case scenario, hosts register at a rate of 124 cloud nodes per day.
  • The ratio of volunteer nodes needed to achieve the compute power of a small EC2 instance is about 2.83 active volunteer hosts to 1.
  • Effectively, with a commercial BOINC project, there exists the opportunity to create a cloud computing service without actually owning/providing the computing capabilities yourself. Imagine creating Azure at a fraction of the cost..

The 14th Bitshares hangout recording has been released in which I spoke about this topic: https://steemit.com/beyondbitcoin/@officialfuzzy/bitshares-hangout-14-w-chris4210-and-officialfuzzy-2017-03-31-fridays-1300utc

Promoted the thread, it's now at the top of most of the tags :)

I'm not intelligent enough to contribute an idea here, but the limitless potential of BOINC never ceases to amaze me. Get a bunch of like-minded individuals and we can quite literally change the world one computer cycle at a time.

The amount of computing power at disposal within the BOINC network is truly astonishing!

Someone promoted your post. Promotions help every steemians.
Your reward is an upvote and 0.022 SBD extra promotion.
Good job, see you next time in Promoted! ;)

You can propose to BOINC to mine steem and to distribute the mined steem equally to all the bitshares account holders. Good marketing for steem and bitshares :)

Isn't steemit moving away from POW in the near future though?

If steemit is moving away, then mine Grantcoin.

Mining will likely be phased out in 2017, as Grantcoin transitions to a new system based on a unique modification of Peercoin’s proof-of-stake technology.

GrantCoin too looks like it's migrating away from POW.

I am happy to learn that everybody is moving away from POW, it is really a stupid way to spend electricity.

I concur, why waste electricity on POW when you can dedicate it towards computing BOINC projects?

This post has been ranked within the top 10 most undervalued posts in the first half of Apr 02. We estimate that this post is undervalued by $0.17 as compared to a scenario in which every voter had an equal say.

See the full rankings and details in The Daily Tribune: Apr 02 - Part I. You can also read about some of our methodology, data analysis and technical details in our initial post.

If you are the author and would prefer not to receive these comments, simply reply "Stop" to this comment.

Thanks for the high ranking, keep up the great work :)

Have you thought about scheduled BTS UIA distributions? Or even using graphene if you wanted your own blockchain?

Stress-test whitepaper released!

Read the above PDF report for the recent stress test within the Bitshares testnet!

Relevant quotes from above whitepaper:

Transaction Production

In order to stress-test a network, we need to produce actual stress which is not easy to achieve at the scale that we needed for our tests. Furthermore, we wanted to simulate a more or less realistic scenario in which multiple in-dependent parties distributed on the globe produce transactions, each transaction trying to make it into the next block.

For this reasons, we have asked the BitSharesTalk community to participate in the stress-testing not only by means of providng validation nodes across the planet, but also to produce the re-quired stress.

Sounds like we could help out here!

However, the Peer-2-Peer networking code has been optimized for a block interval of about 10 s and thus leaves a lot of room for optimizations when talking about high-throughput at low latencies.

Ok so the lack of computer resources available to create transactions wasn't the sole bottleneck for maximizing TPS, this is potentially an area of witness experimentation or machine learning (to find optimal parameter optimization for ranges of TPS load).

Conclusion section

The Peer-2-Peer code seems to be working nicely but results show that it could be one of the bottlenecks currently preventing us from going further. The computational resources of our validators have more than enough back-off for higher throughputs but the networking code was not able to provide sufficient data (e.g. transactions) to raise it during our stress-test.

Ok, so perhaps the lack of computing power isn't required until the network code is optimized?