2018-01-18T18:56Z mt: Hi 2018-01-18T18:57Z bernd: Hallo! 2018-01-18T18:57Z mt: Hallo Bernd 2018-01-18T18:58Z bernd: Ich habe mir jetzt zwei Baustellen aufgemacht: Gstreamer, damit ich endlich Videos unter Linux abspielen kann (und Windows, da gibt's auch ein Gstreamer-Framework) 2018-01-18T18:58Z bernd: Und meine Crypto-Währung. 2018-01-18T18:58Z mt: Hübsch. 2018-01-18T18:59Z bernd: Dabei werde ich als Test-Vehikel noch eine Währung names $cam einbauen, die die traditionellen Eigenschaften einer Crypto-Währung hat, nämlich die fixe Geldmenge. 2018-01-18T19:00Z bernd: Beim Kauf kommt dann immer eine Warnung „wer das kauft ist doof“ 2018-01-18T19:00Z mt: Ich bin grad dabei, mein IoT neu zu designen. Der Anfang mit etlichen 1-wire Sensoren, eienr Datenbank zum Speichern und ein paar Skripten, die dann Bildchen gemalt haben, hat sich eindeutig überholt. 2018-01-18T19:01Z mt: Ich nehm dann 1% vom Gesamtvolumen und hebs mir auf, bis es mal viel wert ist ;) 2018-01-18T19:01Z bernd: Heute braucht man doch sogar für IoT eine BlockChain oder so (siehe IOTA) 2018-01-18T19:02Z mt: Erst mal habe ich einen Message Broker und eine time series Datenbank eingeführt. Danach war es total einfach, die ganzen anderen Gadgets einzubinden (Fritzbox Aktoren usw) 2018-01-18T19:02Z bernd: Ausgabe: 42 Mega$cams, und 2ct ICO-Preis (nein, ich nehme keine BitCoins ;-) 2018-01-18T19:03Z bernd: D.h. mit 8,4k€ wärst du dabei ;-) 2018-01-18T19:03Z mt: Ok, ein Softwaretest sind dann $42 $cams ;) 2018-01-18T19:03Z mt: Ein BUg auch 2018-01-18T19:04Z bernd: Meiner Berechnung nach ist ein $cam so knapp eine Sekunde meiner Arbeitszeit für net2o. 2018-01-18T19:05Z mt: Dann willst Du also nur 42Ms noch dran arbeiten?? 2018-01-18T19:05Z bernd: Nein, das ist für die Vergangenheit. 2018-01-18T19:06Z bernd: Nur bei Kurswachstum lohnt es sich für mich, in Zukunft auch weiterhin dran zu arbeiten ;-). 2018-01-18T19:07Z mt: Es ist aber schon etwas nerdig, sich selbst mit selbst geschaffenem Geld zu belohnen. Gefällt mir ;) 2018-01-18T19:07Z bernd: Ich kann auch gern meine Mittester mit meinem selbstgeschaffenen Geld belohnen. 2018-01-18T19:08Z mt: wie erwähnt: $42 von deinen $cams pro Test 2018-01-18T19:09Z bernd: Geht klar. 2018-01-18T19:09Z bernd: Damit du deine $cams nicht wieder verlegst wie den BitCoin, wird es die Möglichkeit geben, das Wallet als 20-Zeichen-base86-String aufzuschreiben. 2018-01-18T19:10Z mt: Prima. Damit sind die Dinger schon mal eher Geld als die BC's :) 2018-01-18T19:10Z bernd: Das ist aber nur der Seed für die secret keys des Wallets. 2018-01-18T19:11Z mt: andererseits weiss ich ja jetzt um die Gefahren für das Vermögen. 2018-01-18T19:11Z bernd: Aber solange es irgendwelche „Full Nodes“ gibt, die alle Transaktionen mitschreiben, kann man an sein Geld kommen. 2018-01-18T19:11Z mt: Da kann man die FIles schon mal ordentlich streuen. 2018-01-18T19:12Z mt: da wirds irgendwann vermutlich platzen. Es sei denn, Du planst gelegentliche Cleaning-Points ein 2018-01-18T19:12Z mt: wo dann alle "alten" Transaktionen konsolidiert werden. 2018-01-18T19:12Z bernd: Ja, geplant ist, dass nur die aktuellen Zustände gesichert werden müssen, und dass alte Transaktionen weggeworfen werden können. 2018-01-18T19:13Z mt: Also nur Kontostände gepflegt werden? 2018-01-18T19:13Z mt: Dann könnte das mit den "Full Nodes" was werden. 2018-01-18T19:14Z bernd: Ja, grundsätzlich jedenfalls. Signiert wird natürlich schon eine verteilte Block-Chain, und mit Merkle-Trees kann dann jeder seine eigenen Transaktions-Logs selber speichern. 2018-01-18T19:14Z bernd: Damit kann er bei Verlust des zugehörigen Full Nodes beweisen, dass er die Transaktionen tatsächlich gemacht hat. 2018-01-18T19:15Z mt: klingt gut 2018-01-18T19:15Z bernd: Ich gehe davon aus, dass man für einen weltweiten Zahlungsverkehr das Netzwerk in mindestens 1000 Teile partitionieren muss. 2018-01-18T19:16Z bernd: Bei 7 Milliarden Teilnehmern ca. 7 Millionen Accounts pro Knoten. 2018-01-18T19:16Z bernd: Wenn jeder nur einen hat. 2018-01-18T19:16Z bernd: Pro Account reichen aber etwas mehr als 100 Bytes. 2018-01-18T19:16Z bernd: Pubkey+Wert+Einheit+Signatur. 2018-01-18T19:17Z bernd: Einheit=Währung 2018-01-18T19:17Z mt: Dann reicht ein Raspi aus. Der hat 1GB RAM 2018-01-18T19:17Z mt: DAnn kannst auch mehr Partitionen einplanen. 2018-01-18T19:17Z bernd: Kann man gern, das mit den 1000 ist „reicht“, nicht „darf nicht mehr werden“ 2018-01-18T19:18Z mt: Da kann sicher jeder so eine Box in den Keller legen (oder unter die Matraze) und so sein Geld sicher aufbewahren. Braucht nur Strim und WLAN. 2018-01-18T19:18Z bernd: Die eigenen Transaktionen werden sowieso im eigenen net2o-Client sicher aufbewahrt. 2018-01-18T19:18Z bernd: Und wer mag, kann sich halt noch eine Box als Backup nehmen. 2018-01-18T19:20Z bernd: Primärer Einsatz meiner BlockChain ist aber eigentlich, echte Assets zu speichern. Nicht die von mir selber erfundenen $cams und $quids (letztere sind nicht in der Menge begrenzt, sondern werden durch Schaffen freier Software erzeugt). 2018-01-18T19:21Z bernd: Und statt Smart Contracts habe ich mir dumb contracts überlegt. 2018-01-18T19:21Z mt: Pack doch die SOftware selbst in die BC. 2018-01-18T19:21Z bernd: Jedenfalls für das Konsens-Protokoll sollte man das tun ;-) 2018-01-18T19:21Z bernd: Dann gibt's keine Forks. 2018-01-18T19:21Z mt: LOL 2018-01-18T19:22Z bernd: Ein dumb contract ist eine Liste an Offers und Asks. 2018-01-18T19:22Z bernd: Ist die Balance 0, ist er erfüllt. 2018-01-18T19:22Z bernd: Und jeder der eine Offer gemacht hat, musste unterschreiben. 2018-01-18T19:23Z mt: Das heisst, er entsteht, sobald jemand einen Ask einstellt? 2018-01-18T19:23Z bernd: Ja. 2018-01-18T19:23Z bernd: In der Regel wird man eine Offer und einen Ask zusammen packen. 2018-01-18T19:23Z bernd: Also z.B. "Biete 3ct, möchte einen $cam" 2018-01-18T19:24Z bernd: Wer dann "möchte 3ct, habe einen $cam" dazufügt, macht daraus einen gültigen dumb contract. 2018-01-18T19:24Z mt: da gehen aber sowas wie Versteigerungen nicht, oder? 2018-01-18T19:24Z mt: "habe einen $cam, wer binnen 10 MInuten das meiste bietet bekommt den" 2018-01-18T19:24Z bernd: Du kannst sagen "Habe einen $cam, signiert 10 Minuten in der Zukunft" 2018-01-18T19:25Z bernd: Und dann zusammen mit dem höchsten Gebot einreichen. 2018-01-18T19:25Z mt: ok, dann hab ich aber noch nicht das Maximalgebot 2018-01-18T19:25Z bernd: Hm, wahrscheinlich macht man dann besser holländische Versteigerungen. 2018-01-18T19:25Z bernd: "Habe einen $cam, möchte 10..9..8..7..6 Millionen" 2018-01-18T19:26Z bernd: Wer als erster zugreift, muss den jeweils aktuellen Betrag zahlen, dann ist der $cam weg. 2018-01-18T19:26Z mt: auch dabei gibts nicht das Maximum an Erlös 2018-01-18T19:27Z mt: Es gibt maximal das von mir vermutete maximum. Das kann grob zu wenig sein. 2018-01-18T19:27Z bernd: Ja, kann. 2018-01-18T19:29Z bernd: Für alle komplexen Contracts habe ich mir überlegt, muss man ein Token generieren, das off-chain berechnet wird. 2018-01-18T19:30Z bernd: D.h. "Biete ein Ding, möchte ein max(Preis)-Token in 10 Minuten" wäre dann eine klassische Versteigerung. 2018-01-18T19:30Z bernd: Das max(Preis)-Token wäre aber nicht Teil der On-Chain-Logik. 2018-01-18T19:31Z bernd: Wenn man einfach noch sagt, bei mehreren Transaktionen zur gleichen Zeit gewinnt die mit dem höchsten Wert, hätte man die Versteigerung auch im dumb contract. 2018-01-18T19:31Z mt: "gleiche" Zeit erscheint mir da problematisch zu sein. 2018-01-18T19:32Z bernd: Die Gebote könnten ja früher abgegeben werden, aufgrund der Signatur des Offers in der Zukunft kann der Contract erst gültig werden, wenn diese gültig wird. 2018-01-18T19:32Z bernd: Und dann würden alle Transaktionen gleichzeitig gültig werden, es kann aber nur eine ausgeführt werden 2018-01-18T19:32Z mt: "biete ein Ding, Zuschlag erhält max(offer) in x Zeiteinheiten|um xx:yy Uhr" 2018-01-18T19:33Z bernd: Du kriegst auf jeden Fall schon mal die ersten 42 $cams ;-) 2018-01-18T19:33Z mt: Oder auch "min(offer)" sowas solls auch geben 2018-01-18T19:33Z mt: also irgendeine numerische Sortierung der offers 2018-01-18T19:33Z mt: Oh, danke :) 2018-01-18T19:34Z bernd: Wenn ich was biete: max(), wenn ich was haben will: min(). 2018-01-18T19:34Z mt: das dürfte fast immer stimmen, aber ich vermute halt nur "fast immer". 2018-01-18T19:34Z bernd: Für den Rest gibt's die off-chain-Token-Generierung. 2018-01-18T19:35Z bernd: Als Forther reicht „fast immer“ 2018-01-18T19:35Z mt: ok. 2018-01-18T19:35Z bernd: Es soll ein dumb contract sein. Etwas, was sofort und jedem einleuchtet, was gemeint ist. 2018-01-18T19:36Z mt: Naja, ich dachte halt, anstelle von max(X) eine frei(er) definierbare Quotation mit dem default max ist jetzt nicht so sehr viel komplizierter 2018-01-18T19:36Z bernd: Wo man weder einen Juristen noch einen Programmierer braucht. 2018-01-18T19:37Z bernd: Ach, solange selbst Bankster ihre High-Speed-Trading-Systeme auf „buy high, sell low“ einstellen, und dann in der Mittagspause das Unternehmen verzocken, bin ich da nicht für Einstellmöglichkeiten der User. 2018-01-18T19:37Z bernd: min und max werden gern verwechselt. 2018-01-18T19:38Z mt: ok, aus dieser Perspektive ist das wirklich ein Argument gegen Flexibilität 2018-01-18T19:38Z bernd: Mindestgebot kann man erreichen, indem man noch eine Forderung in das Angebot dazupackt. Dann muss die auf jeden Fall erfüllt sein, auch wenn das Angebot in der Zukunft liegt. 2018-01-18T19:39Z bernd: Ich möchte auf jeden Fall den obligatorischen Spekulations-Handelsplatz gleich direkt in der BlockChain abwickeln. 2018-01-18T19:39Z mt: das ist aber hart an der Grenze zum smart contract. Dumb isses zumindest nicht mehr 2018-01-18T19:40Z bernd: Es gibt nach wie vor ganz triviale Regeln, darum geht es. 2018-01-18T19:40Z mt: wobei ist jetzt die GRenze zwischen den beiden da setze, dass die smarten echten Code beinhalten, wohingegen die dumb'en eher Template-abzüge sind 2018-01-18T19:40Z bernd: Und sie bleiben alle implizit. Es gibt nur sources und sinks. 2018-01-18T19:41Z bernd: Die Chain kann eine Transaktion immer erst einpflegen, wenn die sources alle existieren, und die Bilanz 0 ist. 2018-01-18T19:42Z bernd: Und bei konkurrierenden Transaktionen wird die genommen, bei der die sources maximal und die sinks minimal sind. 2018-01-18T19:42Z bernd: Wobei da die Reihenfolge die wichtige Rolle spielt, ob man jetzt max() oder min() macht. 2018-01-18T19:42Z mt: das wird ein Spaß zu debuggen ;) 2018-01-18T19:42Z bernd: Am besten, ein trivialer String-Vergleich tut's ;-) 2018-01-18T19:45Z mt: gibt's nicht. Strings sind entweder identisch/nicht identisch oder länger/kürzer. Mehr kann man bei den Dingern nicht sinnvoll vergleichen. IMHO. 2018-01-18T19:48Z bernd: UTF-8 und meine Variante von variabler Länge-Zahlen sind extra so konstruiert, dass sie mit Byte-String-Vergleich auch die Codepoints korrekt vergleichen. 2018-01-18T19:48Z bernd: Wobei bei UTF-8 die Codepoints keinen Zusammenhang mit der Sortierung haben. 2018-01-18T19:49Z bernd: Bei meiner Variante bin ich mir nicht ganz sicher, ist zwar anders als Googles Big Endian, aber ich habe das nie fertig gedacht ;-) 2018-01-18T19:49Z bernd: Bei UTF-8 ist es fertig gedacht. 2018-01-18T19:49Z bernd: Und mit festen big-endian-Zahlen geht es auch. 2018-01-18T19:50Z mt: Ich hab mich noch nie mit UTF-8 beschäftigt. War einfach noch nie nötig. 2018-01-18T19:50Z bernd: Ansonsten: Mir ist aufgefallen, dass man so eine Versteigerung eh noch mit einer Annahme des Gebots abschließen muss, weil sonst nicht alles ausgeglichen ist. 2018-01-18T19:50Z bernd: Damit kann der Versteigerer selbst entscheiden, welches Gebot er nimmt. 2018-01-18T19:51Z mt: stimmt 2018-01-18T19:51Z mt: das macht's dann auch wieder einfacher bei der max/min/whatever Auswahl 2018-01-18T19:53Z mt: Das ist dann eher keine Versteigerung (da erfahren die anderen Bieter die GEbote der anderen) sondern eine AUsschreibung (jeder gibt eine Gebot ab) 2018-01-18T19:53Z bernd: Wenn das in einer öffentlichen Chat-Gruppe gemacht wird, erfährt jeder vom anderen Gebot. 2018-01-18T19:54Z mt: Allerdings. Dein Weltmodell "alles ist ein Chat" hat noch unerwartete Auswirkungen ;) 2018-01-18T19:54Z bernd: Ob man also Ausschreibung oder Versteigerung macht, ist dann off-chain. 2018-01-18T19:55Z bernd: Ich bin mit dieser Weltsicht eigentlich ganz gut zufrieden, bis jetzt ;-) 2018-01-18T19:57Z mt: Manchmal will man als Anbieter aber vermeiden, dass die konkurrierenden Angebote bekannt werden. Sowohl Inhalt wie Existenz 2018-01-18T19:57Z bernd: Ja, dann wickelt man das halt über 1:1-Chats ab, nicht über einen Gruppenchat. 2018-01-18T19:58Z bernd: Ähnlich wie bei der holländischen Auktion setzt die Ausschreibung alle unter Druck, sich einen Preis einfallen zu lassen, bei dem sie gewinnen. 2018-01-18T19:58Z bernd: Während die Versteigerung einen Bieterwettbewerb in Gang setzt, aber alle mit Mondzahlen einsteigen können, ohne etwas zu verlieren. 2018-01-18T19:59Z mt: Der Unterschied ist, dass die Inhalte der Angebote nur dem Empfänger bekannt werden dürfen. Eine Auktion ist da anders gestrickt. 2018-01-18T19:59Z bernd: Insbesondere kann bei einer Ausschreibung off-the-record noch etwas Bestechungsgeld fließen ;-) 2018-01-18T20:00Z bernd: Bei der Auktion wäre das komisch, wenn nicht der günstigste Anbieter gewinnt. 2018-01-18T20:02Z bernd: Bei einer Ausschreibung können die „technischen Qualitäten“ natürlich auch von Bedeutung sein. 2018-01-18T20:03Z bernd: Einen Anbieter, der verspricht, das ganze in verteiltem Echtzeit-Java auf BlockChain-Basis zu implementieren, kann man doch nicht widerstehen, oder? 2018-01-18T20:03Z mt: Ich schon ;) 2018-01-18T20:04Z mt: Sehr zum Leidwesen so mancher Anbieter. Macht manchmal Spaß, denen ihrer Angebote zu umzudrehen, dass sie selbst zugeben, dass sie nicht den Marketingblasen entsprechen. 2018-01-18T20:04Z mt: Je namhafter der Anbieter, desto mehr Spaß 2018-01-18T20:05Z bernd: Den BeA-Vortrag vom 34c3 muss ich mir auch noch angucken... 2018-01-18T20:05Z mt: So einem Verkaufsdroiden beim Übergang von "lässig cool" zu "schwitzen" zuzusehen ist wirklich schön. 2018-01-18T20:06Z mt: Wenn dann noch eine ganze Meute von denen aufschlägt, und die dann gegenseitig ihr Gesicht verlieren ist das ein Bonuspunkt :) 2018-01-18T20:06Z mt: Das BeA Ding ist wirklich gut gelungen. Vor allem der Zertifizierungstelle dürfte das Bauchschmerzen machen. Die sind faktisch verbrannt 2018-01-18T20:10Z bernd: Hm, hat die Zertifizierungsstelle nicht einfach nur das Zertifikat für bealocalhost.de ausgestellt? 2018-01-18T20:10Z bernd: Und Atos dann einfach den geheimen Key mitgeliefert? 2018-01-18T20:10Z bernd: Das ganze ist natürlich schon tolles Verkacken. 2018-01-18T20:11Z mt: irgendwer hat das Design auditiert und das ist denen nicht aufgefallen. Atos war noch nie was besseres als t-systems (auch wenn ich weiss, das die gute Leute haben) 2018-01-18T20:11Z bernd: Für sowas lässt man sich ein Intermediate-Zertifikat ausstellen, und betreibt dann einen Zertifizierungs-Server, der für den Kunden bei der Installation dessen lokal erzeugtes bealocalhost.de mit einem Zertifikat versieht. 2018-01-18T20:11Z bernd: Jeder Kunde hat seinen eigenen secret key, und sein eigenes Zertifikat. 2018-01-18T20:12Z mt: Lustig war aber die Panikattacke kurz vor Weihnachten, da waren die Leute, die sich wenigstens rudimentär auskannten, wohl schon alle im Urlaub. 2018-01-18T20:12Z bernd: Du meinst, auf dem Weg zum 34c3 ;-) 2018-01-18T20:12Z mt: Der CCC ist schon gemein 2018-01-18T20:12Z mt: Vermutlich 2018-01-18T20:13Z mt: Wieviele Leute liefen denn da rum mit aufgesetzten Kapuzen? 2018-01-18T20:13Z bernd: Du meinst mit den brown paperbags über dem Kopf? 2018-01-18T20:14Z mt: jo 2018-01-18T20:14Z bernd: Weil Hoodies ja eh so ein Nerd-Ding sind... 2018-01-18T20:14Z bernd: Gesehen habe ich keine ;-) 2018-01-18T20:18Z bernd: Allerdings bin ich auch bei den Vorträgen draußen geblieben, und habe nur Assemblies und Sef-organized-Sessions gemacht. 2018-01-18T20:18Z bernd: Die Vorträge kann man ja dank Video alle hinterher angucken. 2018-01-18T20:18Z mt: stimmt, das haben die inzwischen wirklich gut im Griff 2018-01-18T20:20Z bernd: Wobei sogar die selst-organisierte Session, auf der ich vorgetragen habe, aufgezeichnet wurde. 2018-01-18T20:20Z bernd: Das wird wohl Ende Januar auf media.ccc.de auftauchen. 2018-01-18T20:20Z mt: cool. 2018-01-18T20:20Z bernd: Da sind nicht so viele Freiwillige am Werk. 2018-01-18T20:20Z bernd: Gut, ich habe mich auch selbst aufgenommen, aber mit hellem Hintergrund bin ich nur ein Schatten vor meiner Präsentation 2018-01-18T20:21Z bernd: https://fossil.net2o.de/net2o/doc/trunk/wiki/34c3.md 2018-01-18T20:21Z mt: schau ich mir mal an. Danke 2018-01-18T20:21Z bernd: IIRC schon mal angemerkt. 2018-01-18T20:22Z bernd: Gemäß dem Fefe-Motto: Inhalte, nicht das Gesicht sind wichtig. 2018-01-18T20:22Z bernd: Und am Anfang sieht man ja mein Gesicht. 2018-01-18T20:22Z mt: jo. ack 2018-01-18T20:22Z mt: ich bin dann mal weg für heute. Bis neulich dann 2018-01-18T20:22Z mt: ciao 2018-01-18T20:22Z bernd: Ciao! 2018-01-18T20:22Z bernd macht das Licht aus