Pages:
Author

Topic: [ANNOUNCE] BitWrk: Better ways to earn Bitcoins than mining - page 2. (Read 35126 times)

t3a
full member
Activity: 179
Merit: 100
After reading the Wikipedia article on currency, I had a similar idea for a design for a currency.  Bitcoin, they say, is a currency not backed by a commodity.  However, there is a fungible, divisible, commodity that is readily available that could be used to back a pure virtual currency: computer time.  Not the computer time expenditure used to mine a Bitcoin, because that time has already been spent.  Rather, each unit of currency would be exchangeable for the ability to run a program in a sandbox on someone's computer for a fixed amount of execution time.  At some point in the future, this could actually work.  The currency would be backed by IOUs of computer time.  At present, I'm not sure if it would work because there is little demand by individuals to run programs on other people's computers.  But their idle computer time does have value, and the value could conceivably be driven by large organizations wishing to purchase mass computer time from individuals, that could provide a basis for a particular microeconomy.  Although such a currency would have its roots in a particular commodity, it could of course be used as a medium of exchange for other things.  It would also experience a high rate of technological depreciation as the value of one fixed unit of execution of computer time steadily drops (that would be inflation).  On the other hand, I think there is still a use for such a currency, since it would help manage the scarcity of available computer time and provide the virtual currency with a defined backing.

If I do a certain amount of computational work for another party, how do I prove I did it?
newbie
Activity: 30
Merit: 0
I'm interested in trying this out, it sounds like a great way to earn a bit of extra coin Tongue
[EDIT2] derp, I didn't scroll down at first
member
Activity: 74
Merit: 10
Developer of BitWrk
Inviting everyone to try today's version of the client.

Feedback is very much welcome! It shouldn't take more than 5 minutes to get running.
member
Activity: 74
Merit: 10
Developer of BitWrk
Just an update, live from the center of BitWrk development Wink



The first image shows the dialog that pops up when you permit a trade. The second screenshot shows off the client's new abilities to manage workers and mandates.

If you'd like to try it out: http://bitwrk.net has step-by step instructions.
member
Activity: 74
Merit: 10
Developer of BitWrk
Im interested in participating. What can I do?
Hi Marco, I appreciate your offer!

Please try out the software, that's my main goal for today.

Additionally,
  • Do you have ideas for software with a high demand for distributed computing power?
  • Do you have software development experience? You could help with the main software or adapt existing software (such as Blender) to use BitWr. People who integrate software will get half of the fees BitWrk collects with it.
  • Do you have a couple of CPU cycles to spare while mining? You could run a BitWrk slave for a while.

And, for anyone interested in supporting this project with money: I am planning to perform a test run involving a couple of real (u)BTC as bounty (date will be announced here, but I would like to do it within a month). Donations to 1BiTWrKBPKT2yKdfEw77EAsCHgpjkqgPkv are welcome and will be fully redistributed in the test, as bounties!

Thanks again for your support,
Jonas
legendary
Activity: 2072
Merit: 1049
┴puoʎǝq ʞool┴
Im interested in participating. What can I do?
member
Activity: 74
Merit: 10
Developer of BitWrk
Hi everybody!

Just wanted to let you know that this project is alive and kicking. Currently, there is a simple demo application and the user interface is under heavy development. This is what it looks like, right now:

As you can see, there are three sections, and only the first one, "Activities", is currently implemented. It shows all active and pending activities. Pending activities must be permitted by the user.

The activity you can currently see is a buy, i.e. your client is buying one unit of net.bitwrk/gorays/0 for the price of uBTC 100 (BTC 0.00001). This is actually the very first BitWrk-enabled application: http://github.com/indyjo/rays, a very simple raytracer.

The transaction was made with the BitWrk server currently running on Google AppEngine. You can see all the details here: http://bitwrk.appspot.com/tx/aghzfmJpdHdya3I3CxINQXJ0aWNsZUVudGl0eSIVYV9uZXQuYml0d3JrL2dvcmF5cy8wDAsSAlR4GICAgICQtpYKDA

And this is what came out:


It looks so cheesy and iconic, I had to post it.

If you would like to test BitWrk, follow these steps:
  • Go to https://code.google.com/p/go/downloads/list and download the Go SDK for your platform. I recommend version 1.1.2
  • Go to https://github.com/indyjo/bitwrk/ and click on "Download ZIP". Unpack it somewhere and cd into it.
  • Compile the client: . env-vars.sh && cd bitwrk-client && go build
  • Run the client (if you're behind a router, you need to enable port forwarding for port 8082): ./bitwrk-client -extport 8082
  • navigate to http://localhost:8081/
  • Go to Go to https://github.com/indyjo/rays/ and click on "Download ZIP". Unpack it somewhere and cd into it.
  • cd gorays && go build
  • To buy: ./gorays -a BITWRK -bitwrk-master
  • To sell: ./gorays -bitwrk-slave
Your BitWrk client will ask you for permission on what to do. Although all prices are in BTC, at the moment no integration into Bitcoin has been done. You can neither win nor lose money. Every BitWrk client will have BTC 1.0 available to play with.

I will keep offering to buy gorays renderings for uBTC 42, and to sell them for uBTC 1337  for a couple of hours. Trade with me if you like Cheesy
member
Activity: 74
Merit: 10
Developer of BitWrk
Status update: Today, the client was able for the first time to complete a full transaction. BitWrk is making progress!  Cool
Next thing on the list is the client's user interface. It will be browser based and display at least the following information:
  • Current account balance (available and blocked)
  • List of currently running activities (buys and sells)
  • List of activities needing a permission
  • List of completed and aborted activities
  • List of registered workers
  • List of account movements
See https://github.com/indyjo/bitwrk for more details.
legendary
Activity: 1094
Merit: 1006
Look up FastF12 thats the super old version. Basically you pass FastF12 the render settings, it renders it out, and passes back the rendered image. After that its pretty simple to keep track of them, and do distributed rendering.
Ok, I see what you're doing. With BitWrk it would be important to guarantee predictability of the output. All random number generators would have to be initialized with the same seed, maybe restricted to single-threaded rendering to make everything deterministic. Also, having the user interface integrated with Blender would be a necessity to get more than just a handful of artists (maybe possible with a Python extension?).

So, I think the effort is quite considerable and deserves a monetary compensation.

Quote
Why 1% when I could just do the whole thing and take 100%?
I meant one percent point of the fees I am going to collect (which will be in the order of a couple percent). You can still do whatever you want to with your software, that's not mutually exclusive. If you want to, take my source code and build your own BitWrk service.
Yeah Blender has nice APIs and plugin. Ideally the user would just install the plugin, and push a few buttons. Doing this on fixed or flexible bids would be best. I don't do percentages, if you want to hire me thats a different story.
member
Activity: 74
Merit: 10
Developer of BitWrk
Look up FastF12 thats the super old version. Basically you pass FastF12 the render settings, it renders it out, and passes back the rendered image. After that its pretty simple to keep track of them, and do distributed rendering.
Ok, I see what you're doing. With BitWrk it would be important to guarantee predictability of the output. All random number generators would have to be initialized with the same seed, maybe restricted to single-threaded rendering to make everything deterministic. Also, having the user interface integrated with Blender would be a necessity to get more than just a handful of artists (maybe possible with a Python extension?).

So, I think the effort is quite considerable and deserves a monetary compensation.

Quote
Why 1% when I could just do the whole thing and take 100%?
I meant one percent point of the fees I am going to collect (which will be in the order of a couple percent). You can still do whatever you want to with your software, that's not mutually exclusive. If you want to, take my source code and build your own BitWrk service.
legendary
Activity: 1094
Merit: 1006
Agreed. Blender users will pay a decent amount of money to have their stuff render faster too. With Cycles rendering GPU is the perfect tool, just need to write the software to get it done. I have a quarter of a codebase to do this stuff, but not really sure if I want to devote the time to it.

I see a lot of potential for BitWrk in semi-professional user groups, like design and architecture students.

Would you like to give some more details on what you have?  Would you be interested in writing an integration plugin for Blender? With regard to motivation, how about one percent of revenue? :-)
Look up FastF12 thats the super old version. Basically you pass FastF12 the render settings, it renders it out, and passes back the rendered image. After that its pretty simple to keep track of them, and do distributed rendering. Why 1% when I could just do the whole thing and take 100%?
member
Activity: 74
Merit: 10
Developer of BitWrk
Agreed. Blender users will pay a decent amount of money to have their stuff render faster too. With Cycles rendering GPU is the perfect tool, just need to write the software to get it done. I have a quarter of a codebase to do this stuff, but not really sure if I want to devote the time to it.

I see a lot of potential for BitWrk in semi-professional user groups, like design and architecture students.

Would you like to give some more details on what you have?  Would you be interested in writing an integration plugin for Blender? With regard to motivation, how about one percent of revenue? :-)
legendary
Activity: 1094
Merit: 1006
Sounds like a promising project if this gets going! Once the ASIC have taken over there's gonna be a whole Lotta cuda processing power available haha.
Agreed. Blender users will pay a decent amount of money to have their stuff render faster too. With Cycles rendering GPU is the perfect tool, just need to write the software to get it done. I have a quarter of a codebase to do this stuff, but not really sure if I want to devote the time to it.
member
Activity: 74
Merit: 10
Developer of BitWrk
For those of you who are interested on the technical side of BitWrk, here is a state chart of the phases of a transaction. In BitWrk, a transaction is what is created if two bids (a buy and a sell) match.

The messages (in the boxes) are the messages the two participants send to the BitWrk server. Behind the scenes, the participants transmit work and result information directly. All communication is done via HTTP.

A message sent to the BitWrk server is realized with a HTTP POST to http://bitwrk.appspot.com/tx/aghzfmJpdHdya3IlCxINQXJ0aWNsZUVudGl0eSIIYV9mb29iYXIMCxICVHgY5bgCDA (as an example).

Data is transferred as form data (application/x-www-form-urlencoded). To make things secure, participants must provide a signature (using the same mechanism the Bitcoin client offers) of the sent data. The signature proves that the message was created by the participants.

Explanation of message arguments
argumenttypedescription
workhashhex-encoded, 32 bytesA SHA-256 sum of the work package
worksecrethashhex-encoded, 32 bytesSHA-256(workhash|buyersecret), both inputs to SHA256 are the binary 32 byte values of workhash and buyersecret
workerurlURLThe address the seller wants to have the work package delivered to. Will be used for all direct communication between buyer and seller.
buyersecrethex-encoded, 32 bytesRandom value generated by the buyer and sent to the seller after transmitting the work package. Its purpose is to prevent sellers from hijacking other seller's workers.
encresulthashhex-encoded, 32 bytesAfter the seller has computed the result, it sends it back to the buyer, but encrypted with a one-time key (encresulthash). This way, the buyer will not immediately be able to take the result (and run with it), but needs to sign of a receipt for the received, encrypted, result data. This is the encrypted result's SHA256 check sum
encresulthashsigbase64-encoded, 65 bytesA Bitcoin-like signature, issued by the buyer, of the encrypted result's hash value. By providing this signature, the seller can prove that the buyer has received the result correctly. There is no denial for the buyer.
encresultkeyhex-encoded, 32 bytesThe secret AES-256 key used for encrypting the result. By publishing the key together with the buyer's signature of the encrypted result, the seller proves that the buyer has received the result, and releases the encryption.
acceptwork, rejectwork, rejectresult"on"Tags to accept work, reject work or reject a result.

Could anyone with some crypto experience have a look at the scheme?

Quote
full member
Activity: 238
Merit: 100
KUPO!
Sounds like a promising project if this gets going! Once the ASIC have taken over there's gonna be a whole Lotta cuda processing power available haha.
member
Activity: 74
Merit: 10
Developer of BitWrk
We have to find first a unit of measure. Some people in the project will have very fast new computers, some other guys will want to participate with much older machines. When I looked into bitcoin mining, it took me a while to understand that my computer was not strong enough for it. I could have left it running one whole month and earn only peanuts.
You're very right in that work loads need to be standardized somehow, so that results are comparable. E.g., one unit of "Blender rendering" may only amount to X raytracing operations. Something like that.

There should also be a time limit on operations, and I am still thinking about whether the time limit should be something that is negotiated (part of the bid,  like the price) or standardized too. Both has its merits.

Those limits shouldn't be too strict. If a seller fails to do the work in time or within the limits, the buyer gets back his money but doesn't get to see the (partial) result. Nobody profits from that.

Whether you can make a profit from selling work at market prices is a different question. Contrary to Bitcoin mining, there is no algorithm involved artificially eating up your profits, i.e. the profit margin is potentially higher. You'd still have to decide on when to replace hardware by more efficient one.

Quote
So there should be an easy test for anyone who thinks about joining the program, to give an idea about how much profit this could make. Is this in the works?
Sounds like a benchmark! It's not in the works but surely someone will provide one should the project succeed.
You could also just give it a try - entry barrier is as low as it gets, not even a signup.
legendary
Activity: 3066
Merit: 1047
Your country may be your worst enemy
We have to find first a unit of measure. Some people in the project will have very fast new computers, some other guys will want to participate with much older machines. When I looked into bitcoin mining, it took me a while to understand that my computer was not strong enough for it. I could have left it running one whole month and earn only peanuts.

So there should be an easy test for anyone who thinks about joining the program, to give an idea about how much profit this could make. Is this in the works?
sr. member
Activity: 363
Merit: 285
This project seems really great, I'm keeping an eye to be there when this launch officially.
member
Activity: 74
Merit: 10
Developer of BitWrk
One necessary part of the project is being able to verify that the work was actually done rather than being faked.
That's a big problem indeed. Some results are easily verifiable, making them easy to accept or reject. Other types of computations must be dispatched to multiple peers so that the results can be compared. But of course, those peers must be really independent. How can we prevent them from being rigged?

I would like to introduce a reputation system, making it desirable to have a good statistic, by offering monetary incentives. More fees in the beginning and if you behaved badly, less fees if your reputation is good. This also protects the servers from spamming. Users could put a reputation threshold in their offers so that a certain quality of service is to be expected.

Then I would offer a set of trusted peers to resolve disputes in the remaining cases. As any justice, such a system would probably be underfunded and only be able to resolve a certain percentage of (randomly selected) disputed transactions, but that might be enough in combination with the reputation system.

Quote
Bitcoin micropayments would make the "miners" have to have very little faith in the buyers so miner confidence is not likely to be an issue. We also want to make sure that malicious code can't be run through the program by limiting the types of operations that the program can do.
I would actually only trade a couple of "articles" (computation tasks), each implemented by a plugin running on the client computers.

Quote
Also if the results of the simulations could be obscured in a safe way from the person doing them it would give confidence to computing time buyers that their work would not be stolen. Encryption of output data as well as a way of verifying that a simulation was done rather than faked are necessary.
End-to-end encryption is no problem (using Bitcoin addresses as participant IDs makes it quite easy to derive a cryptography scheme). Splitting huge workloads into lots of little puzzle pieces might be a good way to conceal the nature of the workload from the eyes of the workers.
That is unfortunately not going to be possible with all types of tasks.
full member
Activity: 146
Merit: 100
Hey, I've seen this idea tossed around before and I think it would be a great success if coded properly.
One necessary part of the project is being able to verify that the work was actually done rather than being faked.

We've got to be able to convince academics and businesses that Bitwrk simulations are just as good as a local supercomputer.
Bitcoin micropayments would make the "miners" have to have very little faith in the buyers so miner confidence is not likely to be an issue. We also want to make sure that malicious code can't be run through the program by limiting the types of operations that the program can do. Also if the results of the simulations could be obscured in a safe way from the person doing them it would give confidence to computing time buyers that their work would not be stolen. Encryption of output data as well as a way of verifying that a simulation was done rather than faked are necessary.
Pages:
Jump to: