BitWrk - Distributed Peer-to-Peer rendering goes BETA

The next five participants to post their BitWrk account IDs here receive 20 mBTC on BitWrk!
(3 remaining)

Dear Blender Community,

I am very proud to announce the release of BitWrk 0.5.0 “Earth” today.

Homepage: http://bitwrk.net/

BitWrk is a network rendering service, i.e. it distributes large-scale rendering tasks among multiple computers (actually BitWrk is aiming to be more general than that). In contrast to other services of this kind, BitWrk follows a peer-to-peer approach, i.e. it doesn’t send jobs to a central render farm. Instead, every participant can switch roles and compute jobs for others, earning money in the course. BitWrk uses Bitcoin for this purpose, the famous internet currency, because it is well-suited for micro-transactions.

BitWrk’s latest release finally adds the possibility to perform real payments into the BitWrk system. For now, it is only possible to buy compute power on BitWrk. Selling comes later.

I’ve been working in BitWrk for more than two years now, in my spare time. I even held a Lightning Talk at the latest Chaos Communication Congress (31C3): https://www.youtube.com/watch?v=BHBe5g5KKiw

This year brought some real-life distractions, such as moving into a new apartment and changing jobs, and things didn’t proceed the way I planned.

Now it’s finally time to announce that BitWrk is entering BETA TEST phase, and I rely on you as a community for it. My goal is to find out whether my work will pay out some day, whether it is possiblie to provide this kind of service and cover my costs. Whether it makes sense for me to invest further into this project.

You profit from a novel type of rendering service with some unique advantages:

  • No registration needed, no subscription
  • Significant acceleration of rendering
  • Minimal, predictable costs
  • Well-suited for occasional users, too
  • Cheaper in times of low demand
  • Directly integrated into Blender’s user interface
  • It’s a community project, the source code is Open Source!

What you need to do is to install BitWrk’s client software and the Blender add-on. There are some installation instructions here: https://github.com/indyjo/bitwrk/blob/master/QUICKSTART.md
There is also a (slightly outdated) tutorial video giving instructions for installation on Mac OS X: https://www.youtube.com/watch?v=-Exzq0g8I8o

During the next months, in the test phase, I will not run BitWrk the open way it is supposed to be, where everybody can sell compute power. Instead I will rent a small fleet of Computers on cloud services and have them sell Blender rendering for a minimum of 10 micro-Bitcoin.

To give an example: a test project I am rendering right now demands for 10 such compute units per HD-res frame. One Bitcoin is worth about 242€ to, i.e. an animation of 100 frames will cost 2.42€.

As BitWrk works like a stock exchange, the price of computation will rise with demand. I calculated that I can cover my costs with a price of about 40 uBTC per unit. As soon as it is viable, I will increase the number of computers rendering for you.

For everything to work, please use Blender 2.75a and keep the default “complexity” setting of 0.5 Giga-Rays.

Binary versions for Windows and Mac OS X are available on the home page. Linux users will be able to easiliy compile their own binaries (instructions here: https://github.com/indyjo/bitwrk/blob/master/COMPILING.md).

I will gladly answer your questions and provide technical support.

Happy blendering!
Jonas

Oh, and the first five participants to post their BitWrk account IDs here receive 20 mBTC on BitWrk! :yes:

I am off my Blender rendering projects at the moment but once back on will get involved. Good luck with your endeavour

Looks like awesome idea! What i can see from your page though is that regular user (not IT/developer) will not know how to use it

Which port should i open on router (in case of NAT) so that others can connect to my client? And how can i help you? I work as a SW developer in Germany and i am a fan of both Blender and Bitcoin.

Thank God we’re dealing with Blender users here :wink:
But I know what you’re saying. May I ask, what was the most difficult thing for you?

With regard to ports, you can pick any port you like and pass it to bitwrk-client -extport. Only sellers need an open port. I usually pick 8082.

My account NO 1MH2RKHJDjHEMiLZkSDkeUbP7GL9r7zTKh
i even started the blender slave but i get stuck in Waiting for permission stage oO

2015/08/13 12:57:56 Bitwrk URL: http://bitwrk.appspot.com/
2015/08/13 12:57:56 Resource directory: resources
2015/08/13 12:57:56 External address: [REDACTED]
2015/08/13 12:57:56 External port: 9999
2015/08/13 12:57:56 Internal port: 8081
2015/08/13 12:57:56 Own BitWrk account: 1MH2RKHJDjHEMiLZkSDkeUbP7GL9r7zTKh
2015/08/13 12:57:56 Trusted account: 1TrsjuCvBch1D9h6nRkadGKakv9KyaiP6
2015/08/13 12:57:58 [Worker “blender-46500”] Registered: {blender-46500 net.bitw
rk/blender/0/2.75/512M http-push http://127.0.0.1:46500/work}
2015/08/13 12:57:58 [Worker “blender-46500”/Sell #1] Waiting for permission

Well i go to your page and i press download. It downloads exe file and you don’t know what to do… e.g. wither it really needs installer which will ask what do you want (e.g. only post renders or also share my computing power) or at least on front page it should be immediately visible how to configure/install and use it, instead of going on readme in github and so on (I was able to find it but even i was first 15minutes in state of confusion on how to use it)

Giving permission is the one thing you have to do manually. Go to http://localhost:8081/ for the UI.
Also, you should try buying first, before you sell. Less things that can go wrong.

BTW, congrats for being the first here! Have fun with your 20 mBTC! :cool:

And thanks for the feedback!

Hmmm, cannot find where or how to add this permission?

Hmm… interesting i think it is a bug… The Permit sell button in Home tab got shown only after i tried to render using your service… e.g. sell button doesn’t show until you add buy

Does the UI look something like this?



If yes, just click one of the blue “Permit” buttons, enter a price and off you go. Otherwise, are there any activities with a blue background color at all?

Yeah now i have it there… it was missing though when there was only sell permit… as soon as I actually requested render also sell button popped up. What is annoying though is in bigger render with more chunks i need to press this permit buy buttons all the time… e.g. didn’t find a way until now how to do render without me having to sit in front of PC and clicking permit button all the time.

In the dialog that pops up when you press “Permit”, you can grant a mandate for buying up to N units for up to M minutes.



Also, watch the price you’re buying for: 100 uBTC. My workers are selling for 10 uBTC. No need to pay ten times as much :wink:

Hey, thank you for warning and help. Love the service so far. Could you explain also this Complexity picker? I see it says net.bitwrk/blender/0/2.72/512M… what is this 512M?? What is 0.5 Gigarays? How should i properly configure my worker depending on performance of my PC (e.g. if i have 8core CPU and 32 Gigs of ram? should i split it into 8 spearate workers or sell it as one bigger)? etc.etc.

Is OK :wink: As I said i love the service… love bitcoin and love blender… This tool of yours is all together… I can use cloud rendering for price driven by market and at the same time sell my computer power to somebody else when it would be just sitting in room doing nothing. And all in Bitcoin :slight_smile: :slight_smile: :slight_smile:

Thanks, that really means a lot to me. As you can imagine, if I tell my friends and relatives about it, there are so many new concepts involved hardly anybody understands…

So, what about this complexity thing? This whole BitWrk idea is all about buying and selling computation work. There are different kinds of work. And there are different work unit sizes. In order to make computation work tradeable, the unit sizes have to be standardized, so that one 512M work unit is roughy the same amount of work as another. 512M stands for 512 million ray intersection tests (“0.5 giga-rays”), i.e. what Blender calls “samples”.

I intend to use the 512M size as a starter size, with possibilities to scale up by factors of 4 if the network becomes big enough: 2G, 8G, 32G. Bigger work units means less overhead. At the moment, the 512M size should be sufficient.

Hmmm… ok I understand that now… Question is now how to adjust on high performance workstation for selling work… 512M size means that on faster computer it will compute faster… how about multi-core stuff… if i sell one 512M unit will it utilize all 8 of my cores? or should i start multiple slaves?

Blender will try to max out your cores as long as it can. So, yes, a single 512M unit will max out the cores for some time. If there are many cores, that might be a short time. CPU usage drops shortly before completing a work unit. this is where per-unit overhead kicks in.

Sometimes it makes sense to have two workers running, but rarely more. Ideally one would be computing, while the other would be transferring, but it rarely works out that efficiently.

I haven’t got any real-world data yet to predict what is the most effective way to run a worker. I think I shouldn’t optimize too much for now.

Hi yes in this case it doesn’t make sense… thanks for explanation. What i would say is most important is to make this tool BFU friendly.