indyjo (OP)
Member
![*](https://bitcointalk.org/Themes/custom1/images/star.gif)
Offline
Activity: 74
Merit: 10
Developer of BitWrk
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
August 10, 2013, 07:43:58 PM |
|
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 argument | type | description | workhash | hex-encoded, 32 bytes | A SHA-256 sum of the work package | worksecrethash | hex-encoded, 32 bytes | SHA-256(workhash|buyersecret), both inputs to SHA256 are the binary 32 byte values of workhash and buyersecret | workerurl | URL | The address the seller wants to have the work package delivered to. Will be used for all direct communication between buyer and seller. | buyersecret | hex-encoded, 32 bytes | Random 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. | encresulthash | hex-encoded, 32 bytes | After 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 | encresulthashsig | base64-encoded, 65 bytes | A 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. | encresultkey | hex-encoded, 32 bytes | The 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?
|
Developing BitWrk - make your hardware work for BTC.
|
|
|
super3
Legendary
Offline
Activity: 1094
Merit: 1006
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
August 10, 2013, 08:11:16 PM |
|
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.
|
|
|
|
indyjo (OP)
Member
![*](https://bitcointalk.org/Themes/custom1/images/star.gif)
Offline
Activity: 74
Merit: 10
Developer of BitWrk
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
August 11, 2013, 02:55:22 PM |
|
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? :-)
|
Developing BitWrk - make your hardware work for BTC.
|
|
|
super3
Legendary
Offline
Activity: 1094
Merit: 1006
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
August 11, 2013, 06:11:44 PM |
|
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%?
|
|
|
|
indyjo (OP)
Member
![*](https://bitcointalk.org/Themes/custom1/images/star.gif)
Offline
Activity: 74
Merit: 10
Developer of BitWrk
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
August 11, 2013, 07:32:22 PM |
|
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. 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.
|
Developing BitWrk - make your hardware work for BTC.
|
|
|
super3
Legendary
Offline
Activity: 1094
Merit: 1006
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
August 11, 2013, 08:45:25 PM |
|
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. 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.
|
|
|
|
indyjo (OP)
Member
![*](https://bitcointalk.org/Themes/custom1/images/star.gif)
Offline
Activity: 74
Merit: 10
Developer of BitWrk
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
August 16, 2013, 02:10:04 PM |
|
Status update: Today, the client was able for the first time to complete a full transaction. BitWrk is making progress! ![Cool](https://bitcointalk.org/Smileys/default/cool.gif) 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.
|
Developing BitWrk - make your hardware work for BTC.
|
|
|
indyjo (OP)
Member
![*](https://bitcointalk.org/Themes/custom1/images/star.gif)
Offline
Activity: 74
Merit: 10
Developer of BitWrk
|
![](https://bitcointalk.org/Themes/custom1/images/post/thumbup.gif) |
November 30, 2013, 11:31:30 AM |
|
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: ![](https://ip.bitcointalk.org/?u=http%3A%2F%2Ffiles.bitwrk.net%2Fscreenshot-20131130.png&t=665&c=1ZIf3q_PtiZf1w) 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/aghzfmJpdHdya3I3CxINQXJ0aWNsZUVudGl0eSIVYV9uZXQuYml0d3JrL2dvcmF5cy8wDAsSAlR4GICAgICQtpYKDAAnd this is what came out: ![](https://ip.bitcointalk.org/?u=http%3A%2F%2Ffiles.bitwrk.net%2Fbitwrk-rulez.jpg&t=665&c=XvwWD8X2PnHnpQ) 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](https://bitcointalk.org/Smileys/default/cheesy.gif)
|
Developing BitWrk - make your hardware work for BTC.
|
|
|
marcotheminer
Legendary
Offline
Activity: 2072
Merit: 1049
┴puoʎǝq ʞool┴
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
November 30, 2013, 01:16:02 PM |
|
Im interested in participating. What can I do?
|
|
|
|
indyjo (OP)
Member
![*](https://bitcointalk.org/Themes/custom1/images/star.gif)
Offline
Activity: 74
Merit: 10
Developer of BitWrk
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
November 30, 2013, 01:44:06 PM |
|
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
|
Developing BitWrk - make your hardware work for BTC.
|
|
|
indyjo (OP)
Member
![*](https://bitcointalk.org/Themes/custom1/images/star.gif)
Offline
Activity: 74
Merit: 10
Developer of BitWrk
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
December 04, 2013, 05:23:42 PM |
|
Just an update, live from the center of BitWrk development ![Wink](https://bitcointalk.org/Smileys/default/wink.gif) ![](https://ip.bitcointalk.org/?u=http%3A%2F%2Ffiles.bitwrk.net%2Fscreenshot-20131204-2.png&t=665&c=It_OFVLkmDlQ4A) ![](https://ip.bitcointalk.org/?u=http%3A%2F%2Ffiles.bitwrk.net%2Fscreenshot-20131204-1.png&t=665&c=y2vDx0vbalPwRQ) 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.
|
Developing BitWrk - make your hardware work for BTC.
|
|
|
indyjo (OP)
Member
![*](https://bitcointalk.org/Themes/custom1/images/star.gif)
Offline
Activity: 74
Merit: 10
Developer of BitWrk
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
December 04, 2013, 06:25:40 PM |
|
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.
|
Developing BitWrk - make your hardware work for BTC.
|
|
|
agaruna
Newbie
Offline
Activity: 30
Merit: 0
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
December 05, 2013, 06:58:10 AM Last edit: December 05, 2013, 07:21:53 AM by agaruna |
|
I'm interested in trying this out, it sounds like a great way to earn a bit of extra coin ![Tongue](https://bitcointalk.org/Smileys/default/tongue.gif) [EDIT2] derp, I didn't scroll down at first
|
|
|
|
t3a
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
December 05, 2013, 07:08:53 AM |
|
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?
|
Advertise here for 10btc/day
|
|
|
indyjo (OP)
Member
![*](https://bitcointalk.org/Themes/custom1/images/star.gif)
Offline
Activity: 74
Merit: 10
Developer of BitWrk
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
December 05, 2013, 04:41:14 PM |
|
If I do a certain amount of computational work for another party, how do I prove I did it?
The buyer has posted a hash sum of the work data. You post a hash sum of the result to the publicly visible transaction log. Equal work must (by BitWrk's specification) lead to an equal result. All messages are cryptographically signed. In case of a dispute, the correctness of the computation can be verified by a third party. The third party could be a computer owned by the BitWrk service operator (who must be trusted in anyway) or by the market itself (this hasn't been decided on yet). Losing a dispute will be punished by reputation loss. Good reputation will be rewarded with lower fees.
|
Developing BitWrk - make your hardware work for BTC.
|
|
|
t3a
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
December 05, 2013, 05:27:09 PM |
|
If I do a certain amount of computational work for another party, how do I prove I did it?
The buyer has posted a hash sum of the work data. You post a hash sum of the result to the publicly visible transaction log. Equal work must (by BitWrk's specification) lead to an equal result. All messages are cryptographically signed. So the buyer of the computer time would have to know what the result of the work was before-hand? In case of a dispute, the correctness of the computation can be verified by a third party. The third party could be a computer owned by the BitWrk service operator (who must be trusted in anyway) or by the market itself (this hasn't been decided on yet). Losing a dispute will be punished by reputation loss. Good reputation will be rewarded with lower fees.
I think a web of trust is viable, but proving arbitrary computational work was done with zero trust is not.
|
Advertise here for 10btc/day
|
|
|
indyjo (OP)
Member
![*](https://bitcointalk.org/Themes/custom1/images/star.gif)
Offline
Activity: 74
Merit: 10
Developer of BitWrk
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
December 06, 2013, 12:26:10 PM |
|
I think a web of trust is viable, but proving arbitrary computational work was done with zero trust is not.
Well, computational work will not be arbitrary, but defined by a rigid specification how to compute the result from a given input. This is what the "article ID" is used for in BitWrk: specifying which kind of computation to perform. Apart from dummy article IDs like "foobar", currently the only valid one is net.bitwrk/gorays/0: - net.bitwrk is the namespace prefix I will use for my articles, i.e. software I integrate into BitWrk.
- gorays is the name of the sample application (the raytracer I mentioned).
- 0 is the version of the article specification, in order to remain compatible. Whenever I break backwards compatibility, I will assign a new version number.
- There might be more suffixes later, e.g. to specify a maximum complexity class.
|
Developing BitWrk - make your hardware work for BTC.
|
|
|
theaftermath
Newbie
Offline
Activity: 10
Merit: 0
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
December 06, 2013, 03:04:49 PM |
|
Alright so I decided to try this out. I got the client compiled and running as well as net.bitwrk/gorays/0. I also made sure to port forward port 8082. I saw that there were no current buy orders on the server so I decided to run the net.bitwrk/gorays/0 as master. But, it keeps saying "Got status code 500 (500 Internal Server Error)". Do you know why? Also I tried to run a slave to do the work the my master had created, however the client keeps saying 2013/12/06 09:54:02 Error receiving result from BitWrk network: Error transmitting work and receiving encrypted result: Error fetching request &{POST http://xx.xxx.xxx.xxx::8082/ef9163af HTTP/1.1 1 1 map[User-Agent:[BitWrkGoClient/0.0.1] Content-Type:[multipart/form-data; boundary=7293f83d9824dae8c9a1b9b7fe1fd67558fb9f5 e8c5f6111ffbe2d92b424]] 0xc084108f30 0 [] false xx.xxx.xxx.xxx::8082 map[] map[] <nil> map[] <nil>}: Post http://xx.xxx.xxx.xxx::8082/ef9163af: dial tcp xx.xxx.xxx.xxx:8082: ConnectEx tcp: No connection could be made because the target machine actively refused it. 2013/12/06 09:54:02 Temporary disposed: 243e20170658331cc17bf444afe0ced18d6f0184 22e35d781a2d1290c2ed3a7d The x's are to hide my ip address.
|
|
|
|
indyjo (OP)
Member
![*](https://bitcointalk.org/Themes/custom1/images/star.gif)
Offline
Activity: 74
Merit: 10
Developer of BitWrk
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
December 06, 2013, 04:15:59 PM |
|
Alright so I decided to try this out.
Cool! ![Cool](https://bitcointalk.org/Smileys/default/cool.gif) I got the client compiled and running as well as net.bitwrk/gorays/0. I also made sure to port forward port 8082. I saw that there were no current buy orders on the server so I decided to run the net.bitwrk/gorays/0 as master. But, it keeps saying "Got status code 500 (500 Internal Server Error)". Do you know why?
I'll be running buy orders for uBTC 333 for a couple of hours. The 500 error code is just what the raytracer is seeing. You can see what's really going wrong in the client's console. Yes, I know that's inconvenient! WRT to port forwarding, looks like there is still something blocking port 8082. What does http://www.yougetsignal.com/tools/open-ports/ say? Edit: Oh, and I am seeing this error in the server's log: Invalid price satoshi 10, must be >= uBTC 10
|
Developing BitWrk - make your hardware work for BTC.
|
|
|
kuverty
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
December 06, 2013, 06:44:56 PM |
|
This sounds great, though this is a very difficult project but at least as important. I hope you all the best with this and I'll keep watching this.
|
|
|
|
|