Der Ganze Kram mit der Coin Validation / Tainted Coins wird unheimlich aufgeblasen.
- Erstens wird das eh kommen, in der technischer Hinsicht zumindest. Die Frage ist dann eher, wer das in der Praxis nutzt. Das kann nämlich auch ganz schnell geschäftsschädigend wirken, wie gesehen reagieren viele Bitcoiner da ziemlich allergisch - Zweitens kann man eh niemanden daran hindern, die Blockchain zu analysieren und bestimmte Coins nicht anzunehmen. Freiheit und Transparenz gilt eben für alle. - Drittens weiß doch noch gar keiner, wie das in der Praxis in ein paar Jahren aussieht. Das kann auch durchaus sein, dass solche Analysen durch zu viele Möglichkeiten, unverfolgbar offchain zu gehen, ziemlich sinnlos werden.
Der im Fred ( https://bitcointalk.org/index.php?topic=334040.0) angeführte Wiki-Artikel ist doch ziemlich eindeutig: Wenn eine Regierung eine Geldsorte gegenüber einer anderen Geldsorte gesetzlich unterbewertet, wird die unterbewertete Geldsorte das Land verlassen oder durch Hortung aus dem Umlauf verschwinden; die überbewertete Geldsorte hingegen wird den Geldumlauf dominieren. ( http://de.wikipedia.org/wiki/Greshamsches_Gesetz) Anhand dieser Definition wird doch deutlich, dass BTC über lange Sicht hin verschwinden wird (wenn sowas kommt). Die Anzahl der Coins ist bei BTC begrenzt, klassisches Geld dagegen nicht. "Böses" Geld kann bei klassischen Währungen also durch "gutes" Geld ersetzt werden. Bei BTC geht das aber nicht so einfach, denn es gibt nur 21 Mio. Infolgedessen können bei BTC die "bösen" Coins nicht durch Gute ersetzt werden, sondern die verbleibenden werden (zunächst) immer wertvoller. Die Leute, die noch gute Coins haben, werden diese aber versuchen zu halten (ähnlich wie jetzt auch - man sieht ja jetzt schon, dass an den Börsen immer weniger BTC zum verkauf stehen). Der Kreislauf wird also irgendwie irgendwo zusammenbrechen, weil immer weniger Leute BTC haben und immer mehr gehortet wird. Fasst man die Einführung etwas weiter könnte man sich auch ein anderes Szenario bzw. Ausgangslage ausmalen... es ist ja weithin bekannt, dass BTC den US und A nicht so richtig in ihre "Weltherrschaft" passt. Was haben sie vom BTC? Abgesehen von den Coins vom SR-Fall (die sie bisher sowieso nicht einsetzen dürfen/können)... nichts. Keine Steuereinnahmen, kein kontrollierter Geldfluss, keine neuen Arbeitsplätze... einfach nix. Wie kann man also eine Währung vom Markt verschwinden lassen, ohne dass man sie weltweit gesetzlich verbietet? Genau... indem man die Währung in einen guten und schlechten Teil spaltet. Wie beschrieben würde bei BTC der "gute" Teil immer kleiner werden, da der "böse" Teil nicht mehr durch neue, gute Coins ersetzt werden kann. Das sind jetzt nur ein paar Verschwörungstheorien oder sagen wir lieber "Hirngespinster" meinerseits, aber ich persönlich sehe die Einführung/Idee äußerst kritisch. Auf den Kurs wird sich das wie vormals erwähnt noch nicht auswirken. Längerfristig gesehen aber schon...
|
|
|
Die Frage ist, wie sich das auf den Kurs auswirkt? man hofft wohl auf nen Crash, riecht nämlich ziemlich nach FUD Langfristig wird sich das sicher auf den Kurs auswirken. Aber wie im entsprechenden Thread bereits angemerkt wurde, ist die Umsetzung halt fraglich. Wie soll die Unterscheidung in "gute" und "böse" Coins realisiert werden usw. Nichtsdestotrotz steigen wir erstmal weiter: 477$ auf Gox. Die 500$ kommt in greifbare Nähe
|
|
|
Any chance to add the parameter/argument d like cgminer has to use a specific device?
|
|
|
Not to claim the bounty, but here goes my kernel. Poclbm API, hashes at ~140MHs @7870 @1150MHz. Probably best with modern SDK and GCN, being vectors and all. Feel free to use it whatever you like. #include "crycl.h"
inline uint sha256_res(uint16 data) { u32 temp1, W[62]; vstore16(TOBE32V16(data), 0, W);
#define S0(x) (ROL32(x, 25) ^ ROL32(x, 14) ^ SHR(x, 3)) #define S1(x) (ROL32(x, 15) ^ ROL32(x, 13) ^ SHR(x, 10))
#define S2(x) (ROL32(x, 30) ^ ROL32(x, 19) ^ ROL32(x, 10)) #define S3(x) (ROL32(x, 26) ^ ROL32(x, 21) ^ ROL32(x, 7))
#define F0(y, x, z) bitselect(z, y, z ^ x) #define F1(x, y, z) bitselect(z, y, x)
#define R(t) \ ( \ W[t] = S1(W[t - 2]) + W[t - 7] + \ S0(W[t - 15]) + W[t - 16] \ )
#define RD(t) \ ( \ S1(W[t - 2]) + W[t - 7] + \ S0(W[t - 15]) + W[t - 16] \ )
#define P(a,b,c,d,e,f,g,h,x,K) \ { \ temp1 = h + S3(e) + F1(e,f,g) + K + x; \ d += temp1; h = temp1 + S2(a) + F0(a,b,c); \ } #define PS(a,b,c,d,e,f,g,h,S) \ { \ temp1 = h + S3(e) + F1(e,f,g) + S; \ d += temp1; h = temp1 + S2(a) + F0(a,b,c); \ }
#define PSLAST(a,b,c,d,e,f,g,h,S) \ { \ d += h + S3(e) + F1(e,f,g) + S; \ }
uint8 state = (uint8)(0x6A09E667, 0xBB67AE85, 0x3C6EF372, 0xA54FF53A, 0x510E527F, 0x9B05688C, 0x1F83D9AB, 0x5BE0CD19); uint8 vars = state;
P( vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, W[ 0], 0x428A2F98 ); P( vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, W[ 1], 0x71374491 ); P( vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, W[ 2], 0xB5C0FBCF ); P( vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, W[ 3], 0xE9B5DBA5 ); P( vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, W[ 4], 0x3956C25B ); P( vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, W[ 5], 0x59F111F1 ); P( vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, W[ 6], 0x923F82A4 ); P( vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, W[ 7], 0xAB1C5ED5 ); P( vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, W[ 8], 0xD807AA98 ); P( vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, W[ 9], 0x12835B01 ); P( vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, W[10], 0x243185BE ); P( vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, W[11], 0x550C7DC3 ); P( vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, W[12], 0x72BE5D74 ); P( vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, W[13], 0x80DEB1FE ); P( vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, W[14], 0x9BDC06A7 ); P( vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, W[15], 0xC19BF174 ); P( vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, R(16), 0xE49B69C1 ); P( vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, R(17), 0xEFBE4786 ); P( vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, R(18), 0x0FC19DC6 ); P( vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, R(19), 0x240CA1CC ); P( vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, R(20), 0x2DE92C6F ); P( vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, R(21), 0x4A7484AA ); P( vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, R(22), 0x5CB0A9DC ); P( vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, R(23), 0x76F988DA ); P( vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, R(24), 0x983E5152 ); P( vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, R(25), 0xA831C66D ); P( vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, R(26), 0xB00327C8 ); P( vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, R(27), 0xBF597FC7 ); P( vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, R(28), 0xC6E00BF3 ); P( vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, R(29), 0xD5A79147 ); P( vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, R(30), 0x06CA6351 ); P( vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, R(31), 0x14292967 ); P( vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, R(32), 0x27B70A85 ); P( vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, R(33), 0x2E1B2138 ); P( vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, R(34), 0x4D2C6DFC ); P( vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, R(35), 0x53380D13 ); P( vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, R(36), 0x650A7354 ); P( vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, R(37), 0x766A0ABB ); P( vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, R(38), 0x81C2C92E ); P( vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, R(39), 0x92722C85 ); P( vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, R(40), 0xA2BFE8A1 ); P( vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, R(41), 0xA81A664B ); P( vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, R(42), 0xC24B8B70 ); P( vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, R(43), 0xC76C51A3 ); P( vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, R(44), 0xD192E819 ); P( vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, R(45), 0xD6990624 ); P( vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, R(46), 0xF40E3585 ); P( vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, R(47), 0x106AA070 ); P( vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, R(48), 0x19A4C116 ); P( vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, R(49), 0x1E376C08 ); P( vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, R(50), 0x2748774C ); P( vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, R(51), 0x34B0BCB5 ); P( vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, R(52), 0x391C0CB3 ); P( vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, R(53), 0x4ED8AA4A ); P( vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, R(54), 0x5B9CCA4F ); P( vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, R(55), 0x682E6FF3 ); P( vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, R(56), 0x748F82EE ); P( vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, R(57), 0x78A5636F ); P( vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, R(58), 0x84C87814 ); P( vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, R(59), 0x8CC70208 ); P( vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, R(60), 0x90BEFFFA ); P( vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, R(61), 0xA4506CEB ); P( vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, RD(62), 0xBEF9A3F7 ); P( vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, RD(63), 0xC67178F2 );
state += vars; vars = state;
PS( vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, 0x80000000 + 0x428A2F98 ); PS( vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, 0 + 0x71374491 ); PS( vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, 0 + 0xB5C0FBCF ); PS( vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, 0 + 0xE9B5DBA5 ); PS( vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, 0 + 0x3956C25B ); PS( vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, 0 + 0x59F111F1 ); PS( vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, 0 + 0x923F82A4 ); PS( vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, 0 + 0xAB1C5ED5 ); PS( vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, 0 + 0xD807AA98 ); PS( vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, 0 + 0x12835B01 ); PS( vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, 0 + 0x243185BE ); PS( vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, 0 + 0x550C7DC3 ); PS( vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, 0 + 0x72BE5D74 ); PS( vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, 0 + 0x80DEB1FE ); PS( vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, 0 + 0x9BDC06A7 ); PS( vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, 512 + 0xC19BF174 );
PS( vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, 0x80000000 + 0xE49B69C1 ); PS( vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, 0x01400000 + 0xEFBE4786 ); PS( vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, 0x00205000 + 0x0FC19DC6 ); PS( vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, 0x00005088 + 0x240CA1CC ); PS( vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, 0x22000800 + 0x2DE92C6F ); PS( vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, 0x22550014 + 0x4A7484AA ); PS( vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, 0x05089742 + 0x5CB0A9DC ); PS( vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, 0xa0000020 + 0x76F988DA ); PS( vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, 0x5a880000 + 0x983E5152 ); PS( vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, 0x005c9400 + 0xA831C66D ); PS( vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, 0x0016d49d + 0xB00327C8 ); PS( vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, 0xfa801f00 + 0xBF597FC7 ); PS( vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, 0xd33225d0 + 0xC6E00BF3 ); PS( vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, 0x11675959 + 0xD5A79147 ); PS( vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, 0xf6e6bfda + 0x06CA6351 ); PS( vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, 0xb30c1549 + 0x14292967 ); PS( vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, 0x08b2b050 + 0x27B70A85 ); PS( vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, 0x9d7c4c27 + 0x2E1B2138 ); PS( vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, 0x0ce2a393 + 0x4D2C6DFC ); PS( vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, 0x88e6e1ea + 0x53380D13 ); PS( vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, 0xa52b4335 + 0x650A7354 ); PS( vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, 0x67a16f49 + 0x766A0ABB ); PS( vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, 0xd732016f + 0x81C2C92E ); PS( vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, 0x4eeb2e91 + 0x92722C85 ); PS( vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, 0x5dbf55e5 + 0xA2BFE8A1 ); PS( vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, 0x8eee2335 + 0xA81A664B ); PS( vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, 0xe2bc5ec2 + 0xC24B8B70 ); PS( vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, 0xa83f4394 + 0xC76C51A3 ); PS( vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, 0x45ad78f7 + 0xD192E819 ); PS( vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, 0x36f3d0cd + 0xD6990624 ); PS( vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, 0xd99c05e8 + 0xF40E3585 ); PS( vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, 0xb0511dc7 + 0x106AA070 ); PS( vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, 0x69bc7ac4 + 0x19A4C116 ); PS( vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, 0xbd11375b + 0x1E376C08 ); PS( vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, 0xe3ba71e5 + 0x2748774C ); PS( vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, 0x3b209ff2 + 0x34B0BCB5 ); PS( vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, 0x18feee17 + 0x391C0CB3 ); PS( vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, 0xe25ad9e7 + 0x4ED8AA4A ); PS( vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, 0x13375046 + 0x5B9CCA4F ); PS( vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, 0x0515089d + 0x682E6FF3 ); PS( vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, vars.s7, 0x4f0d0f04 + 0x748F82EE ); PS( vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, vars.s6, 0x2627484e + 0x78A5636F ); PS( vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, vars.s5, 0x310128d2 + 0x84C87814 ); PS( vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, vars.s4, 0xc668b434 + 0x8CC70208 ); PSLAST( vars.s4, vars.s5, vars.s6, vars.s7, vars.s0, vars.s1, vars.s2, vars.s3, 0x420841cc + 0x90BEFFFA );
return vars.s7 + state.s7; }
#define rolhackl(n) \ inline ulong rol ## n (ulong l) \ { \ uint2 t = rotate(as_uint2(l), (n)); \ return as_ulong((uint2)(bitselect(t.s0, t.s1, (uint)(1 << (n)) - 1), bitselect(t.s0, t.s1, (uint)(~((1 << (n)) - 1))))); \ }
rolhackl(8) rolhackl(9) rolhackl(10) rolhackl(13) rolhackl(14) rolhackl(17) rolhackl(19) rolhackl(22) rolhackl(24) rolhackl(25) rolhackl(27) rolhackl(29) rolhackl(30)
#define rolhackr(n) \ inline ulong rol ## n (ulong l) \ { \ uint2 t = rotate(as_uint2(l), (n - 32)); \ return as_ulong((uint2)(bitselect(t.s1, t.s0, (uint)(1 << (n - 32)) - 1), bitselect(t.s1, t.s0, (uint)(~((1 << (n - 32)) - 1))))); \ }
rolhackr(33) rolhackr(34) rolhackr(35) rolhackr(36) rolhackr(37) rolhackr(39) rolhackr(42) rolhackr(43) rolhackr(44) rolhackr(46) rolhackr(49) rolhackr(50) rolhackr(54) rolhackr(56)
#define SKEIN_ROL_0_0(x) rol46(x) #define SKEIN_ROL_0_1(x) rol36(x) #define SKEIN_ROL_0_2(x) rol19(x) #define SKEIN_ROL_0_3(x) rol37(x) #define SKEIN_ROL_1_0(x) rol33(x) #define SKEIN_ROL_1_1(x) rol27(x) #define SKEIN_ROL_1_2(x) rol14(x) #define SKEIN_ROL_1_3(x) rol42(x) #define SKEIN_ROL_2_0(x) rol17(x) #define SKEIN_ROL_2_1(x) rol49(x) #define SKEIN_ROL_2_2(x) rol36(x) #define SKEIN_ROL_2_3(x) rol39(x) #define SKEIN_ROL_3_0(x) rol44(x) #define SKEIN_ROL_3_1(x) rol9(x) #define SKEIN_ROL_3_2(x) rol54(x) #define SKEIN_ROL_3_3(x) rol56(x) #define SKEIN_ROL_4_0(x) rol39(x) #define SKEIN_ROL_4_1(x) rol30(x) #define SKEIN_ROL_4_2(x) rol34(x) #define SKEIN_ROL_4_3(x) rol24(x) #define SKEIN_ROL_5_0(x) rol13(x) #define SKEIN_ROL_5_1(x) rol50(x) #define SKEIN_ROL_5_2(x) rol10(x) #define SKEIN_ROL_5_3(x) rol17(x) #define SKEIN_ROL_6_0(x) rol25(x) #define SKEIN_ROL_6_1(x) rol29(x) #define SKEIN_ROL_6_2(x) rol39(x) #define SKEIN_ROL_6_3(x) rol43(x) #define SKEIN_ROL_7_0(x) rol8(x) #define SKEIN_ROL_7_1(x) rol35(x) #define SKEIN_ROL_7_2(x) rol56(x) #define SKEIN_ROL_7_3(x) rol22(x)
#define SKEIN_KS_PARITY 0x1BD11BDAA9FC1A22UL
#define SKEIN_R512(p0,p1,p2,p3,p4,p5,p6,p7,ROTS) \ X.s##p0 += X.s##p1; \ X.s##p2 += X.s##p3; \ X.s##p4 += X.s##p5; \ X.s##p6 += X.s##p7; \ X.s##p1 = SKEIN_ROL_ ## ROTS ## _0(X.s##p1) ^ X.s##p0; \ X.s##p3 = SKEIN_ROL_ ## ROTS ## _1(X.s##p3) ^ X.s##p2; \ X.s##p5 = SKEIN_ROL_ ## ROTS ## _2(X.s##p5) ^ X.s##p4; \ X.s##p7 = SKEIN_ROL_ ## ROTS ## _3(X.s##p7) ^ X.s##p6;
#define SKEIN_I512(R) \ X.s0 += ks[((R)+1) % 9]; /* inject the key schedule value */ \ X.s1 += ks[((R)+2) % 9]; \ X.s2 += ks[((R)+3) % 9]; \ X.s3 += ks[((R)+4) % 9]; \ X.s4 += ks[((R)+5) % 9]; \ X.s5 += ks[((R)+6) % 9] + ts[((R)+1) % 3]; \ X.s6 += ks[((R)+7) % 9] + ts[((R)+2) % 3]; \ X.s7 += ks[((R)+8) % 9] + (R)+1; \
#define SKEIN_R512_8_rounds(R) \ SKEIN_R512(0,1,2,3,4,5,6,7, 0); \ SKEIN_R512(2,1,4,7,6,5,0,3, 1); \ SKEIN_R512(4,1,6,3,0,5,2,7, 2); \ SKEIN_R512(6,1,0,7,2,5,4,3, 3); \ SKEIN_I512(2*(R)); \ SKEIN_R512(0,1,2,3,4,5,6,7, 4); \ SKEIN_R512(2,1,4,7,6,5,0,3, 5); \ SKEIN_R512(4,1,6,3,0,5,2,7, 6); \ SKEIN_R512(6,1,0,7,2,5,4,3, 7); \ SKEIN_I512(2*(R)+1);
inline ulong8 skein512_mid_impl(ulong8 X, ulong2 msg) { u64 ts[3], ks[9];
vstore8(X, 0, ks); X.s01 += msg;
ks[8] = ks[0] ^ ks[1] ^ ks[2] ^ ks[3] ^ ks[4] ^ ks[5] ^ ks[6] ^ ks[7] ^ SKEIN_KS_PARITY;
ts[0] = 80; ts[1] = 176UL << 56; ts[2] = 0xB000000000000050UL;
X.s5 += 80; X.s6 += 176UL << 56;
SKEIN_R512_8_rounds( 0); SKEIN_R512_8_rounds( 1); SKEIN_R512_8_rounds( 2); SKEIN_R512_8_rounds( 3); SKEIN_R512_8_rounds( 4); SKEIN_R512_8_rounds( 5); SKEIN_R512_8_rounds( 6); SKEIN_R512_8_rounds( 7); SKEIN_R512_8_rounds( 8);
X.s01 ^= msg; vstore8(X, 0, ks);
ks[8] = ks[0] ^ ks[1] ^ ks[2] ^ ks[3] ^ ks[4] ^ ks[5] ^ ks[6] ^ ks[7] ^ SKEIN_KS_PARITY;
ts[0] = 8UL; ts[1] = 255UL << 56; ts[2] = 0xFF00000000000008UL;
X.s5 += 8UL; X.s6 += 255UL << 56;
SKEIN_R512_8_rounds( 0); SKEIN_R512_8_rounds( 1); SKEIN_R512_8_rounds( 2); SKEIN_R512_8_rounds( 3); SKEIN_R512_8_rounds( 4); SKEIN_R512_8_rounds( 5); SKEIN_R512_8_rounds( 6); SKEIN_R512_8_rounds( 7); SKEIN_R512_8_rounds( 8);
return TOLE64V8(X); }
__kernel void search(const u64 state0, const u64 state1, const u64 state2, const u64 state3, const u64 state4, const u64 state5, const u64 state6, const u64 state7, const u32 data16, const u32 data17, const u32 data18, const u32 base, __global u32* output) { local u32 nonce; nonce = FROMLE32(base) + get_global_id(0); ulong8 state = (ulong8)(FROMLE64(state0), FROMLE64(state1), FROMLE64(state2), FROMLE64(state3), FROMLE64(state4), FROMLE64(state5), FROMLE64(state6), FROMLE64(state7));
ulong2 msg = as_ulong2((uint4)(data16, data17, data18, TOBE32(nonce)));
if(sha256_res(as_uint16(skein512_mid_impl(state, msg)))/* & 0xc0ffffff*/) return; output[OUTPUT_SIZE] = output[nonce & OUTPUT_MASK] = nonce; }
Thanks reorder! But I never used poclbm - what is "crycl.h"? I found no information where I can get it...
|
|
|
were you around when orbitcoin happened? or where you there when gamecoin was dumped? or recently have you seen COL? if you still think like that, you are yet to understand the norms of cryptos. I don't really need another rebuttal. I was trying to inject some common sense, but ended up with your paranoid reply. I understand greedy unskilled cocksuckers is the norm for coins. As for the condescension, I don't need a lecture. I've been around the block a few times. What I was trying to push across is if someone had a GPU miner, and put in the effort into it, they would be more likely to release it, instead of killing a worthless coin and slipping into the darkness. Hyping, then dumping X coin isn't quite the same. Come to me with proof the coin dev has a gpu implementation. I am running two amd quad core phenom II, and a pentium p6000 in a laptop. I would imagine i7's and i5's on their own would do better than my whole setup. I come in at ~7-8mhash. A little bit of MATH and REASON would show reorder has an office full of machines at his disposal, and not tuning a gpu miner. When gpu miners hit, you will know it. You will pray for a diff of 11 again. I've a half-way working GPU (OpenCL) implementation for SKC but it's currently for testing purposes only (no fully working miner). It's been the first time I wrote code for GPU's, hence the code is poorly written with some register spillings (doesn't take any effect to the result, but lowers the performance) and some other issues. So I think other developers can create much better code. I can't say anything regarding hashing speed or similar... but for OpenCL developers it should be pretty simple to implement the given algorithm...
|
|
|
bitstamp kratzt mit 399 an der 400 usd marke.... komm schon ... alle anderen sind über 400 bitstamp du schaffst das BTCe ist auch noch unter 400$ (398 aktuell) Übrigens... unser Market Cap liegt jetzt bei knapp 5 Mrd:
|
|
|
does anyone think that this coin has a future ? I almost see no activity within the community, and the difficulty is so low. will it ever be on cryptsy ?
I think so - other coins are having less support than SKC and they are on Cryptsy. It usually takes some weeks until Cryptsy adds new coins.
|
|
|
Wer in Steine investiert muss aber auch schon sehr verzweifelt sein, übrigens ist genau das ein weiterer Faktor warum wir noch ne Weile steigen werden. (Meine Meinung)
Ist wie in der "freien Welt" mit dem Gold Stimmt, mal kurz den Blick für Parallelen verloren. Gold ist ja eigentlich auch nichts anderes. gold besitzt im gegensatz zu edelsteinen jedoch eine komplett andere normierungs-möglichkeit. 1 goldbarren = 1 goldbarren. bei edelsteinen geht das nicht. jeder ist unterschiedlich und jeder bewertet muster farbe etc anders. ist folglich eben nicht zu vergleichen. gold = rohstoff edelsteine = dekoration Bevor ich Bitcoin kannte, hab ich mich neben Gold und Silber auch ein bisschen mit Edelsteinen (vornehmlich mit Diamanten und Smaragden) beschäftigt. Ich hab aber letztlich die Finger davon gelassen, weil es einfach zu viele "Unwegbarkeiten" gibt. Man wird schnell über den Tisch gezogen und muss wirklich Ahnung haben. Da spielen Schliffproportionen (sofern es sich nicht um einen rohen Edelstein handelt), Ausgeber des Zertifikats (IGI, EGL, HRD, GIA usw.), Farbgebung (mind. Wesselton), Größe, Herkunftsland usw. eine Rolle. Zudem sollte man die nicht in DE oder so, sondern vor Ort bei den Minen kaufen, weil man nur so an "Schnäppchen" kommt, die auch wirklich echt sind. Die besten und teuersten (abgesehen vom Bahia) Smaragde gibt es z.B. in Kolumbien. Bis man den Wert eines Edelsteins richtig einschätzen kann, vergehen also mehrere Jahre. Am Ende kauft man vlt. einen Edelstein für 50 000 und letztlich ist das Zertifikat gefälscht, der Edelstein nur ein billiger Nachbau, ein Blutdiamant oder was auch immer. Schwierig ist auch der Verkauf. Mit seinem Goldbarren geht man einfach zum Händler und verkauft das Teil. Bei Edelsteinen kann es Monate oder Jahre dauern, bis er verkauft ist...
|
|
|
Um mal ne andere Zahl zu nennen:
300€
419,5$ klingt aber viel besser Noch besser: 2495 CNY
|
|
|
Ich hab den Eindruck, dass lediglich die Chinesen den Preis nach oben treiben. Wenn in China alle ins Bettchen gehen, dann sinkt der Preis immer wieder leicht und steigt am nächsten Tag wieder an. Man kann momentan also eigentlich 2 Trends beobachten. Der eine ist der Aufwärtstrend (bedingt durch die Chinesen) und der andere der Abwärtstrend (bewirkt durch alle anderen ) in einem geschätzten Verhältnis von 70:30. Deshalb immer kaufen, wenn alle Chinesen im Bettchen sind
|
|
|
Ganz ehrlich, lohnt es sich mit dem Einkaufen auf niedrigere Preise zu warten?
Wie günstig sollen die noch werden? Investier lieber jetzt, bevor wir bei 500 oder 1000 sind Mt.Lag ist doch garnicht offline...
war eben für 84 minuten nich aktiv. aber geht jetzt wieder Ich hatte eben HTTP-Fehler 502. Nach einer Aktualisierung gings aber auch wieder...
|
|
|
Not yet - looking forward that Cryptsy or similar adds SKC to their Exchange
|
|
|
Die 7$ machen's jetzt auch nicht mehr oder? BTW: Guten Hunger!
|
|
|
Ich würde das eher mit einem 6er im Lotto vergleichen. Er hatte einfach nur wahnsinniges Glück. Im übrigen... kann mich mal jemand anstupsen? Sind wir wirklich knapp bei 400$ und ein Market-Cap von rund 4.4 Mrd oder träume ich das nur?
|
|
|
SSCLecXd1i9GHbZivtH6Hpt1ohphWrW2yf
help me mine no gpu means 15 coins a day here
it all comes back in karma
SSCLecXd1i9GHbZivtH6Hpt1ohphWrW2yf
I may help => selling 2500 SKC for 4.5 LTC or as already mentioned I can sell my hashing power for 1 week (averaging 16 MHs) for 7 LTC. You'll get ~ 1500 coins per day (depends on diff).
|
|
|
So, dann mach ich mir mal einen MEGA HASH auf, in 5 Stunden beginnt der Tanz wieder, da will man ja wach sein und dabei sein. Und schonmal ein: "GO CHINA!" in die Runde geschmettert. ^^ Nicht schlecht. Ich habe am Wochenende aber zwischenmenschliche Kontakte. Bin Full-In, hoffe, es passiert nichts. Mir persönlich ist es mittlerweile relativ egal, ob der Kurs absackt oder nicht, denn der Kurs erholt sich definitiv wieder. Im Umkehrschluss werde ich nicht verkaufen, nur weil der Kurs sinkt. Buy & forget
|
|
|
Correction incoming.
Das passiert jetzt immer Abends. Diese "Korrekturen" sind aber kaum mehr als das Feigenblatt vor einer nahezu ungehemmten Rallye. Bleibt die Frage wie lange das so weiter geht. Klaus hatte vor Tagen, als es so richtig los ging, auf 800$ bis 1000$ getippt, mit einem Rückfall dann auf 300$. Aber wer das schon. Nachher ist man immer schlauer. Wer hätte gedacht, dass wir heute bis 350$ kommen? Wahnsinn. Ich sehe bereits relativ starken Support um die 300$. Ab 225$ wird der Support heftig. Aber, wenn wir die Supportlinien auf einem Weg nach unten genauso mühelos durchdringen wie die Resistance nach oben, dann wird das eine muntere Talfahrt. Wir kennen die chinesische Abwärtsperformance halt noch nicht. Eine eintägige Korrektur, die in Richtung 250$ gehen würde, wäre eigentlich mehr als überfällig. Das sieht man im Chart ganz deutlich, finde ich. Ich traue mich aber derzeit nicht darauf zu spekulieren. Und ihr? Vielleicht doch ein paar Coins verkaufen und bei 250$ zurückkaufen? Schon krass wie man über Nacht zum Zuschauer degradiert wird und dass die Staatsangehörigen eines (ehemals?) kommunistischen Landes jetzt den Kurs machen. Ich habe keine Ahnung wozu chinesische Spekulanten fähig sind, aber das hier kann einem Angst machen: http://www.spiegel.de/kultur/gesellschaft/retortenstadt-new-ordos-chinas-boomende-geisterstadt-a-737810.htmlIch bezweifle allerdings (zumindest aktuell noch), dass die chinesischen Investoren von Ordos auch BTC kennen. Wenn die einestages Ordos platt machen und stattdessen in BTC investieren, dann ist man mit einem BTC schon reich und mit 2 Superreich
|
|
|
PLease CoNsIdEr
POW Hash: Skein-SHA2 Block target: 2 minutes Block reward: 32 SKC, halving every year (262,800 blocks) No premine. Total coins: Around 17 million Default RPC Port: 21230 P2P Port: 11230
CPU mining @ +300mh/s
+1
|
|
|
New ATH 340$ Von wegen 340$ => 342.47813
|
|
|
Wir sind auf dem besten Weg zu 4$ Mrd. Markt-Cap:
|
|
|
|