In what way?
You should theoretically be able to visualize a proof-of-work block-chain as a dataflow diagram, for example. But generally speaking, Pd doesn't seem like it can offer much since it would be quite slow to do hashes or cryptographic functions.
-Jonathan
On Thursday, February 6, 2014 4:09 AM, i go bananas hard.off@gmail.com wrote:
Has anything been done to try to marry these together yet? _______________________________________________ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Hi,
i go bananas wrote:
In what way?
that's what i want to know!
If that's a general question, then the answer is yes, as you can get and send bytes over a network and do math with pd. It's also the answer for all general questions like "can I do something a computer does with pd ?"
It does not mean it fits you needs, or the amount of work you want to put in :).
Not giving contexts does not lead to useful answers.
So, do you have something in mind ?
On 02/06/2014 02:08 PM, Charles Goyard wrote:
Hi,
i go bananas wrote:
In what way?
that's what i want to know!
If that's a general question, then the answer is yes, as you can get and send bytes over a network and do math with pd. It's also the answer for all general questions like "can I do something a computer does with pd ?"
It does not mean it fits you needs, or the amount of work you want to put in :).
Not giving contexts does not lead to useful answers.
That's a self-fulfilling prophecy.
It also turns out to be wrong, because I made another self-fulfilling prophecy which turns out to be useful.
-Jonathan
So, do you have something in mind ?
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Jonathan Wilkes wrote:
On 02/06/2014 02:08 PM, Charles Goyard wrote:
Hi,
i go bananas wrote:
In what way?
that's what i want to know!
If that's a general question, then the answer is yes, as you can get and send bytes over a network and do math with pd. It's also the answer for all general questions like "can I do something a computer does with pd ?"
It does not mean it fits you needs, or the amount of work you want to put in :).
Not giving contexts does not lead to useful answers.
That's a self-fulfilling prophecy.
You're right. Also maybe it's a bit rude, too.
But I still find I'm right about giving context. While your answer IS instructive (thanks about that), not having context made you assume the question was about Bitcoin, which can be wrong, and makes your answer something specific about a possibly more general question, or about another cryptocurrency of some sort (I guess I'm nitpicking at bit on this one).
That's why I asked about details and context.
But yes, my message was not useful in itself, nor is this one :).
Happy hacking in pd,
On 02/06/2014 11:03 AM, i go bananas wrote:
In what way?
that's what i want to know!
I don't know the specifics, but I think both cryptography and finance are areas where the feature of "everything is a float" actually gets in the way. In either case you cannot afford to lose precision.
But you can prototype some of the features of a cryptocurrency in Pd.
For example, Bitcoin uses the hashcash algorithm to verify each block of
the transaction database. (If I understand it correctly it's like
brute-forcing SHA256 keys, although they never completely succeed.) The
miners basically start a counter, do a mathematical function on the
value plus the previous value from the last entry in the transaction
database, and finally check if the output has a certain number of
leading zeros.
If you ignore for the moment the counter and the mathematical function, you can see how the process works. Attached is a patch that just keeps spitting out pseudo-random numbers between 0 and 1 until all of the [random] objects happen to output zeros. It's essentially like a slot machine that keeps playing until you win. Now notice that when you hook up another [random] to the chain you double the average time it takes to find a "winner". Add enough [random] objects to the chain and you will quickly hit a point where you can't compute a "winner" at all (even if you change the patch to compute answers as fast as possible).
Bitcoin's "block difficulty" uses the same principle. The software has
a hardcoded rule that it should take 10 minutes to find a "winner". But
instead of using a bunch of binary values, it uses a single number and
requires the "winner" to be below a certain value (which is equivalent
to counting the leading zeros in the representation of the number).
Over a certain number of days it measures the average time it takes the
network to compute a "winner". If it's way less than 10 minutes on
average then the software automatically does the equivalent of adding a
[random] to the patch to make it twice as hard. If it takes too long
then the software removes a [random]. The actual algo is probably more
sophisticated but that's what it boils down to.
Now, let's say you hook up 50 [random] objects in that patch and happen to find a "winner". That'd be pretty spectacular, but how do you convince everyone that you are being truthful about your claim? This is where the hashing function and the counter come into play. Instead of the attached patch, imagine a [hash] abstraction that takes a counter value in the left inlet and the previous transaction hash in the right inlet. It will output a seemingly unrelated number in response to the input, but that number will be unique to the input you give it (or so close to unique that we can just call it unique). That's what a hashing function does. So you essentially do the same thing you did above, except you're looking for leading zeros in a single number rather than the collective output of a bunch of [random] objects.
When you hit a "winner" you then broadcast your counter value and the
new transactions to the rest of the network to add to the database. The
rest of the network already has the previous entries in the transaction
database, so they can take those with your counter value and verify that
the resulting hash actually has the correct number of leading zeros.
Then everyone starts working on the next "winner". And why do they do
that instead of trying to lie and say they were the one that actually
found the "winner"? Because the first new transaction in the database
is the real winner giving 50 bitcoins to themselves, and that
transaction uses public key cryptography to ensure that it can't be
forged or changed.
One last thing-- the hashing function is designed so that it's extremely difficult (read: impossible) to start with a hash value that has the required number of leading zeros and work backwards to figure out the right counter value. Like a slot machine, you have to just keep trying until win. And just like a slot machine, if someone can figure out how get a winner without putting in the same work/money everybody else does, then the entire system breaks down.
-Jonathan
On 06.02.2014 10:09, i go bananas wrote:
Has anything been done to try to marry these together yet?
PuREST JSON includes a sonification for Bitcoin values going back to 2011, but I guess, that is not what you wanted to know.
Thanks, Thomas
On 07/02/14 09:56, Thomas Mayer wrote:
On 06.02.2014 10:09, i go bananas wrote:
Has anything been done to try to marry these together yet?
PuREST JSON includes a sonification for Bitcoin values going back to 2011, but I guess, that is not what you wanted to know.
it sounds the more likely kind of dsp/bitcoin marriage, otherwise perhaps a pd concert with the ticket price in bitcoin???
simon
Pd or otherwise, I'd be very careful about sending any messages back and forth with the actual Bitcoin network. By doing so you are essentially telling the internet that fungible, irreversible tokens might exist on your machine, the value of which could far exceed anything that you have ever or will ever store on your computer.
Also, blockchain.info likes to store the IP of the first node that told it about a transaction. It's pretty well connected, so if you make a transaction from your machine your IP is very likely associated forever with that transaction. (Just one of many ways in which Bitcoin is not anonymous.)
But of course if you happen to be in Sochi then everything of value on your machine has already been stolen, so knock yourself out. :)
-Jonathan
On Thursday, February 6, 2014 5:59 PM, Thomas Mayer thomas@residuum.org wrote:
On 06.02.2014 10:09, i go bananas wrote:
Has anything been done to try to marry these together yet?
PuREST JSON includes a sonification for Bitcoin values going back to 2011, but I guess, that is not what you wanted to know.
Thanks, Thomas
maybe our own "Pdcoin" w/ mining ability only through/with Pd externals/patches
m
On Thu, Feb 6, 2014 at 4:09 AM, i go bananas hard.off@gmail.com wrote:
Has anything been done to try to marry these together yet?
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
I would be a little cautious about this. If you ended up implementing something that garnered wider interest, you'd raise the reward for attacks on normal Pd users and on Pd community infrastructure. That'd be a major burden for Pd users-- keeping an eye out for me.grimm@blah vs me.grim@blah, running patches in a virtual machine, having to learn GPG...
That last one makes me shudder.
-Jonathan
On Saturday, February 8, 2014 10:38 AM, me.grimm megrimm@gmail.com wrote:
maybe our own "Pdcoin" w/ mining ability only through/with Pd externals/patches
m
On Thu, Feb 6, 2014 at 4:09 AM, i go bananas hard.off@gmail.com wrote:
Has anything been done to try to marry these together yet?
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list