Archiv für die Kategorie „Linux“

diy: einfacher smart contract mit solidity

Solidity ist die Programmiersprache von Ethereum, eine Turing-vollständige Programmiersprache, exklusiv entwickelt für diese eine Kryptowährung. Wobei, Ethereum ist eine vollständig neue Plattform, Solidity nur die Sprache dieser Plattform. Sie ist JavaScript sehr ähnlich, jeder mit Erfahrung in JavaScript sollte sich hier sehr gut zurecht finden. Aber Vorsicht: JavaScript != Java. JavaScript ist zwar schnell, aber nicht schön und leider auch keine Hochsprache.

Anyways. „Smart Contracts“ sind wohl das Killer-Feature von Ethereum. Im Kern handelt es sich hierbei um unfälschbaren, verfizierten Code, der zu einer bestimmten Bedingung ausgeführt wird. Es soll sehr einfach sein „smart contracts“ zu schreiben, von daher möchte ich in diesem Beitrag die Aufmerksamkeit auf ein einfaches Tutorial lenken, das wir Entwickler alle kennen: „Hello World“. Der Code und auch die Details dazu sind auf GitHub hinterlegt: https://github.com/evbots/greeter_contract.

Ich bin im Übersetzen sehr schnell (und meist auch sehr präzise), von daher gebe ich die Einführung einfach in deutscher Sprache weiter. Eure Versuche gehen natürlich auf euer Risikokonto. 😉

=== Der Gruß-Vertrag ===

Ein einfacher „Hallo Welt“-Smart-Contract geschrieben in Solidity.

=== Hintergrund ===

Dieser Code stammt direkt aus dem Anfänger-Tutorial der Ethereum-Entwickler, den ihr hier findet. Das Tutorial selbst erwähnte jedoch eine alte web3.js-Spezifikation, von daher wurde der Vertrag leicht angepasst.

=== Vorbereitungen ===

* Die Fähigkeit, Ether zu akzeptieren, die Währung von Ethereum. Benutzt eine Tauschbörse oder leiht euch ein paar Ether von einem Freund.
* Ladet euch Go Ethereum herunter und führt es aus mit geth --rpc
* Erstellt einen Ethereum-Account mit geth über die Kommandozeile oder JavaScript-Konsole. Mehr dazu hier.
* Überweist Ether zu diesem neuen Account.

=== Setup ===

Nachdem ihr die Paketquelle geklont habt, installiert die Abhängigkeiten.

yarn

Stellt sicher, dass geth läuft, sofern noch nicht geschehen.

geth --rpc

Bereitet das Build-Skript vor, damit es ausgeführt werden kann:

yarn build

Sofern ihr Ether zu eurem Account transferiert habt (es genügt sehr wenig), entsperrt den Account, damit ihr das Geld ausgeben könnt. Dies geschieht über die Konsole von geth. Sobald geth aufgesetzt ist und läuft, öffnet ein neues Terminal und benutzt diese Befehle:

geth attach

Danach schreibt ihr in eure Konsole:

personal.unlockAccount(eth.accounts[0], , 15000)

Jetzt, davon ausgehend ihr seid im Projektverzeichnis, führt den Code aus:

node lib.js

Ihr verbindet euch so mit geth über euer lokales Netzwerk und dessen API, dabei wird versucht ein Vertrag zu erstellen.

Notiert euch die Adresse des Vertrages, nachdem ihr diesen errechnet (geminet) habt. Sobald geth den letzten Block synchronisiert hat, werdet ihr die Adresse als Ausgabe sehen. Sollte das nicht der Fall sein, prüft eure Wallet-Adresse über etherscan.io und ebenso den Status eures Vertrags. Sobald der Vertrag errechnet wurde, könnt ihr wieder zur JavaScript-Konsole von geth zurückkehren und kreiert so eine Instanz eures Vertrags. Danach grüßt das Ding. ^^

Damit das funktioniert, benötigt ihr zwei Sachen: die ABI des Vertrags, sowie die Adresse. Um die ABI zu bekommen, habe ich ein einfaches Skript geschrieben, um diesen auszugeben. Führt einfach Folgendes aus:

yarn printAbi

=== Vertrag erstellen ===

Zurück in der JavaScript-Konsole von geth (Tipp: ihr erreicht diese mit geth attach in einem neuen Konsolen-Tab/-Fenster) erstellt ihr nun euren Vertrag mit dem Code:

var myContract = web3.eth.contract(YOUR_ABI).at(YOUR_CONTRACT_ADDRESS);

=== Vertrag ausführen ===

Ab jetzt lassen sich die Methoden eures Vertrags aufrufen:

myContract.greet();

und

myContract.kill();

Wie wir sahen ist das alles zum Glück kein großer Aufwand.

Auf die Frage, was man damit machen, hat der Kanton Zug (Schweiz) inzwischen schon eine praktische Antwort: die können nämlich bald ihre digitale ID in der Ethereum-Blockchain hinterlegen. Erwartet sowas mal in Deutschland. -.-

Alles Pfosten hier. Seid schlau, geht, aber geth mit Ethereum!

Ether spenden // Donate Ether
Bitcoin-Spenden hier akzeptiert ^^

kodi-entwickler auf mpaa-abschussliste

2017. Wer mal schnell wissen möchte, welche harten Kämpfe FOSS auch heute noch ausfechten muss, der soll sich bitte diesen Artikel zu „MPAA gegen Kodi-Addon-Entwickler“ ansehen. Das ist verrückt, was hier abgeht. Das ist Behinderung von Innovation in Reinform. Und schon auf dem Schreiben solltet ihr die Logos checken. Das sind nicht unsere oder eure Freunde.

Kurz zum Hintergrund: KODI, ehemals XMBC, ist wohl das Beste, was die XBOX je hervorgebracht hat.

Kodi Logo via Wikipedia

Am Anfang war es einfach ein Opensource-Medienplayer, mittlerweile ist es eine eigene Linux-Distribution, im Hintergrund ein komplettes Non-Profit-Konsortium, das sich großer Beliebtheit erfreut und auch eines der ersten Software-Spielzeuge für den Raspberry Pi war.

Man konnte ferner „dumme HD-Fernseher“, also TVs, die zwar HD anboten, aber keinen Internetanschluss hatten, im Handumdrehen „smart“ machen. Man findet den Quellcode zum Herumschrauben auch drüben bei GitHub: https://github.com/xbmc/xbmc.

Ich hatte die MPAA schon gar nicht mehr auf dem Radar. Die 1922 gegründete Motion Picture Producers and Distributors of America (MPPDA) kämpft noch heute gegen die Torrent-Technologie. Das Wort „Takedown“ gehört zum gängigen Vokabular in der Berichterstattung. Die brachten ein ganzes Protokoll zu Fall: eDonkey. Sie legen sich mit ganzen Ländern an, auch in Europa, siehe die Geschichte von „The Pirate Bay“ aus Schweden. Verklagen Leute, die verlinken, Blogs betreiben, oder, wie in Kodis Fall, eben Open-Source-Addons entwickeln.

In dem konkreten Fall geht es wirklich nur um die Addon-Funktion:

*jsergio123 stoppt die Entwicklung von urlresolver, metahandler umgehend
* The_Alpha aus UK, verantwortlich für das Addon bennu, hat das Schreiben online gepostet
* Ares Wizard ging noch am selben Tag des Postings offline

Die Kodi-Entwickler-Szene ist in Aufruhr, ruft öffentlich zur Unterstützung des Gerichtsverfahrens auf. Das sind schwere Schläge, die hier ausgeteilt werden, weitgehend ignoriert oder unverstanden von der medialen Öffentlichkeit.

Es hat sich auch etwas gedreht im Verhalten der Coder nach solchen Anschuldigungen: früher hätten sie sich quergestellt und ins Darknet oder sonstwo verdrückt. Heute wird viel schneller eingeknickt. Das ist entmutigend als Opensource-Entwickler so etwas zu lesen, doch der Selbstschutz sollte immer vorgehen. Das wurde früher oft verpennt. Die jungen Hacker sind reihenweise wegen Dummheit oder falschem Stolz oder einfach jugendlichem Leichtsinn in den Knast gewandert. Insofern sind diese Reaktionen der Entwickler nicht feige, sondern tatsächlich weise. Schmerzen verursacht es dennoch.

Vielleicht denkt ihr das nächste Mal beim Filmgucken kurz drüber nach, welche Scheiße ihr hier unterstützt. Wie kann es sein, dass eine Organisation, bestehend aus nur sechs Filmstudios aus den USA sich mit kompletten Ländern anlegen und Jagd auf Menschen machen kann!? In welcher „freien Welt“ leben wir eigentlich?

Ether spenden // Donate Ether
Bitcoin-Spenden hier akzeptiert ^^

die wertvollsten kryptos 2017

2017 war für Kryptowährungen wohl das verrückteste Jahr. Alleine die älteste Währung, Bitcoin, verteuerte sich innerhalb von nur einem Jahr um das Zehnfache: im Oktober 2016 konnte man eine digitale Münze noch für 500 Euro ergattern.

Steigt der Bitcoin, steigen auch alle anderen Kryptowährungen, die auf dem SHA-256-Algorithmus aufbauen, die sogenannten Altcoins. Auch für die war es ein sehr erfolgreiches Jahr. Vielleicht wird man in 20 Jahren auf 2017 zurückblicken und sagen, Kryptos sind damals erwachsen geworden.

Was ich in diesem Beitrag zeigen will ist, welche Kryptowährungen man bereits heute zu den wertvollsten zählen kann. Dabei wird alleine der Wert eines einzigen Tokens betrachtet. Für eine erste Auflistung möchte ich die Kryptowährungen zeigen, die den Wert von 100€ erreicht oder bereits um ein Vielfaches überstiegen haben. Here we go:

1. Bitcoin, 4844€

Bitcoin icon

„Die Mutter aller Kryptowährungen“ taugt im Jahr 2017 kaum noch als Zahlungsmittel. Wer beispielsweise im August Bitcoin im Wert von 1€ transferieren wollte, zahlte dafür bereits 2€ Transaktionsgebühr. Das macht Bitcoin als reines alternatives Zahlungsmittel heute unattraktiv.

Als „digitales Gold“ lässt sich die Währung allerdings nach wie vor betrachten. Durch Brexit und Trump-Wahnsinn wird der Wert weiter steigen. Im Gespräch sind locker fünfstellige Beträge. Ein Ende nicht absehbar. Das macht die Währung, neben ihrem attraktiven Charakter als Geldanlage, aber weiterhin zu einer Waffe gegen die Wirtschaft allgemein. Da können Mega-Banken wie J.P. Morgan Chase noch so Stimmung dagegen machen. Der wahre Feind von Bitcoin wurde schon von Beginn an tief in die DNS der Kryptowährung eingraviert. Das lässt sich, zum Glück, weder ändern noch rückgängig machen.

Ferner sind digitale Bitcoin-Münzen nach wie vor mit speziellen Minern, ASIC-Maschinen, weiterhin selbst produzierbar. Das ist zwar nicht wirtschaftlich und verbraucht viel zu viel Strom (Bsp.: eine 1,1TH-Maschine mit einem 590-Watt-Netzteil kostet pro Monat 119€ Stromkosten bei einem Preis von 0,28€/KWh. Wertverlust/Monat alleine durch Stromkosten: 84€), doch es ist ein cooles und attraktives Hobby und macht auch Spaß. Ferner stützt jeder kleine Miner das Bitcoin-Netzwerk allgemein.

2. Ethereum, 261€

Ethereum icon

Ethereum gehört mit zur „Champions League“ der Kryptowährungen. Das von Vitalik Buterin gestartete Projekt bietet mit Solidity eine eigene Programmiersprache. Außerdem ist Ethereum im Gegensatz zu Bitcoin turing-complete; allerdings ist weit und breit kein PC zu sehen, der nur auf Ethereum basiert. Das wäre hier nämlich möglich. Und auch wahrscheinlich _die_ Killer-Applikation.

Der Code wird derzeit weiterentwickelt und ein neuer Haupt-Release wartet auch. Mit smart contracts glänzt das System mit einer Art programmierbarem Vertrag als App, die fälschungssicher und ohne Mittelsmann-Schicht funktioniert. Doch auch hier gab es bisher keinen „Killer-Smart-Contract“. Das vielversprechende Projekt The DAO scheiterte letztes Jahr im Oktober komplett, daraus entstand das kontroverse Ethereum Classic. In der Krypto-Szene wird diese Währung wie Bitcoin Cash auch als dreistes Plagiat und Betrug gewertet.

3. Dash, 248€

Dash icon

Dash, auch „Digital Cash“, wird als Anwärter auf den Thron der Kryptos gesehen, die es als erste schafft eine DAO, also eine Dezentrale Autonome Organisation erfolgreich aufrecht zu erhalten. Die Anzahl Apps ist derzeit überschaubar und wenig attraktiv, was hier lockt ist zum einen das selbstständige Betreiben einer „Masternode“ (die jedoch teuer ist), wodurch man massive Stimmrechte erhält. Und zum anderen verfügt Dash über ein IO-System, das es schafft Monat für Monat sein Budget selbstständig(!) zu steigern, wodurch neue Projekte und neue Entwickler finanziert werden können. So etwas gab es meines Wissens noch nicht.

4. Zcash, 196€

Zcash icon

Um Zcash rankt sich die eine oder andere Verschwörungstheorie. Im Kern ist es einfach eine Kopie von Bitcoin, selbst die Anzahl von 21 Millionen Tokens ist die selbe. Niemand weiß genau, zu was es gut sein soll. Es gibt Gerüchte, es sei von gewissen Regierungen gesponsert. Was niemanden in der Szene wirklich wundern würde.

5. Byteball Bytes, 177€

Byteball icon

Ganz ehrlich: keine Ahnung. Auf Wikipedia in englischer Sprache keinerlei Einträge. Byteball Bytes will ein „smartes Bezahlsystem“ sein. Leider ist das nicht wirklich innovativ. Um die Popularität zu steigern werden immer mal wieder Events organisiert, zuletzt im August, wo Tokens für die verschenkt werden, die Bitcoin-Adressen bereitstellen. Das könnte auch mal nach hinten losgehen für Bitcoin-Fans. Ich persönlich kann mir nicht erklären, wieso der Wert hier so hoch angesetzt ist, zumal man die Währung _nicht_ minen kann. Der Community-Gedanke existiert hier also überhaupt nicht. Vielleicht ist der Mangel ein Phänomen hier: insgesamt sind nicht einmal 600.000 Tokens im Umlauf. Viele finden schon alleine diese Vorstellung attraktiv.

6. BitConnect, 172€

BitConnect icon

Den Abschluss der Liste macht BitConnect, ein seit Februar 2016 existiertendes „High-yield Investment Program“. Diese Programme sind organisierte Ponzi-Schemes und ergo: schlicht Betrug. Ich würde jedem davon abraten hier zu investieren. Insgesamt gibt es 28 Millionen Einheiten, 7,2 Millionen befinden sich aktuell im Umlauf. BitConnect ist ein sehr gutes Beispiel, dass wir in Bezug auf Kryptowährungen bis auf ein paar Ausnahmen auch noch sehr am Anfang stehen: hätten Leute Ahnung, oder einfach Erfahrung, wäre der Wert nicht so hoch und das Interesse gleich Null. Man soll es aber minen können, also immerhin dachte man bei der Entwicklung doch an eine Community. Wo es genau herkommt, Regierung oder Individuum, weiß selbst die Wikipedia nicht.

Dahinter warten vielversprechende Währungen und neue Technologien, etwa Monero (derzeit 76€), Litecoin (derzeit bei 51€) oder der nagelneue China-Krypto Neo (25€). Die drei möchte ich listen, da ich diese als besonders sicher und potenziell attraktiv ansehe. Wie immer helfen so subjektive Eindrücke meist nichts, wenn man selbst investieren will: die intensiven Recherchen wird euch niemand abnehmen können…

Man darf gespannt sein, wo die Reise hingeht. 2018 will ich erneut so eine Liste machen. Und nach meinem heutigen Wissensstand dürften Bitcoin und Ethereum die einzigen sicheren Vertreter sein. Für die anderen, ganz ehrlich, das klingt alles irgendwie cool und neu und so; doch bei etwas genauerer Betrachtung sind die einfach nur Unsinn.

Im Kern, die Menschen versuchen gerade gemeinsam eines der Hauptprobleme der Menschheit zu lösen. Und: es wurde ein nagelneues Medium zum Speichern und Austausch von Werten statt Informationen geschaffen, die Blockchain. Das ist schon aller Ehren wert, was hier passiert. Ob das Experiment gelingt? Es steht in den Sternen. Wie das bei Experimenten eben immer ist.

Quellen:
* Werte von Coinmarketcap.com, Stand 20.10.17
* Icons von Cryptocompare.com

Ether spenden // Donate Ether
Bitcoin-Spenden hier akzeptiert ^^

100.000 partikelkollisionen

Un-glaub-lich:

geknackt: 100000 Partikelkollisionen mit dem Laptop

Mit meinem Laptop heute die Marke von 100.000 Partikelkollisionen geknackt! Mit. Dem. Laptop. Ein Modell aus 2011.

Beim BOINC-Projekt ATLAS@Home vom CERN kann jeder die Grafik selbst über den Manager aufrufen, wer daran teilnimmt. Die Ergebnisse der eigenen Simulationen (laufen in VirtualBox und benötigen pro CPU-Thread 4GB RAM) werden dann mit Tausenden anderen zusammengeführt, an universitäre Rechenzentren verschickt und mit den Daten des echten ATLAS-Detektors abgeglichen.

Was man sich dadurch erhofft: eine Abweichung vom Standard-Modell der Physik, wie wir sie kennen. Und dadurch eine völlig neue Physik.

Einzig, bisher sieht es auch dank LHC und ATLAS und CMS nicht danach aus. Immerhin: 2012 wurde das unmöglich auffindbare Teilchen („god damn particle“) Higgs-Boson bestätigt.

Für 100.000 Partikelsimulationen brauchte meine eigene Maschine ca. 14 Monate. Sie lief nicht permanent durch. Schließlich ist das Teil immer noch mein Arbeitsgerät. Trotzdem will ich dem Ding nun erst einmal eine Pause gönnen; für die Hardware sind die ganzen BOINC-Projekte nicht Ohne.

Noch ein letzter Hinweis:

Sowohl das Projekt ATLAS, als auch CMS und ALICE gibt es nicht mehr als eigenständige Projekte seit diesem Sommer. Teilnehmen kann man nun über den LHC@Home-Account. Dort müsst ihr auch selbst an-/abschalten, welche Projekte ihr unterstützen wollt. Ergab Sinn, weil das alles Projekte vom CERN sind. Ich fand allerdings die Kommunikation dieses Umstands ungenügend. Wer noch einen alten LHC@Home-Account nutzt muss den ferner auch auf SSL umstellen. Projekte, die noch Accounts vom LHC@Home nutzen ohne SSL, werden nicht mehr unterstützt. Auch hier bitte selbst prüfen.

Ether spenden // Donate Ether
Bitcoin-Spenden hier akzeptiert ^^

updaten sie ihr bluetooth noch heute!

Bluetooth. Übersetzt Blauzahn. Wenn wir mal ehrlich sind, es klang von Anfang an ungesund.

Was internationale Handy- und Smartphone-Hersteller nicht daran hinderte diesen vermurksten und unsicheren Funk-Standard auf mittlerweile 8 Milliarden Geräten weltweit zu installieren. Mit Vernunft oder technischem Wissen hat das alles nichts zu tun.

Der einzige Grund, warum wir nicht permanent mit Bluetooth-Horrormeldungen vollgeballert werden liegt in dem Umstand, dass die kleine Antenne nur maximal 10 Meter weit funken kann. Wobei das mit dem neuesten Standard auf 30 Meter geändert werden soll. Wer’s braucht…

Okay, genug, jetzt zum Geschäft:

Eine ca. 1 Woche junge Sicherheitslücke im Bluetooth-Quellcode sorgt dafür, dass ein sich in 10-Meter-Umgebung befindlicher Angreifer durch eine Puffer-Unterlauf-Attacke (buffer underflow attack vector) Zugang zu jedem Gerät verschaffen kann, das Bluetooth aktiviert hat. Getauft wurde dieser Bug auf BlueBorne.
Als Smartphone-Nutzer mit PIN- oder Muster-Sperre kann man das daran merken, dass plötzlich das Display an- und wieder ausgeht. Pikant: ohne eine solche Sperre ist die komplette Übernahme und das Ausspähen des eigenen Geräts möglich.

Boing!

Ob man mit seinem mobilen Gerät davon betroffen ist, kann man z.B. mit folgender App herausfinden: BlueBorne Vulnerability Scanner von „Armis Security“, via Google Play Store. Diese App checkt einfach, ob die Sicherheits-Patch-Ebene von Android aktuell ist. Ist sie das nicht, zeigt die App ein rotes Icon. Ist das Gerät sicher, ein grünes. Für iOS gibt es sicher ähnliche Apps, aber ich habe keinerlei Ahnung von iOS und bin da auch froh drum.

Gerade was mobile Geräte betrifft, ist man ab letzter Woche abhängig von Google und Apple, sowie den Smartphone-Geräte-Herstellern wie Samsung, HTC und Konsorten. Bieten die ein Update an, kann man sich seit kurzem gegen BlueBorne schützen. Nutzt man etwa eine Android-Version vor KitKat (4.4), ist ein Schutz nicht mehr möglich(!). Auch bei den Custom ROMs ist man abhängig von den Programmierern: ein Update wird von manchen angeboten, von vielen nicht.

So, wir sprachen nun über BlueBorne auf Smartphones. Aber was ist mit Tablets, PCs, Laptops, Kühlschränken? Das selbe Problem! Wurde schon erwähnt, dass Bluetooth auf 8 Milliarden Geräten weltweit vorinstalliert ist!?

Bei Linux kam erst heute bei meiner Distribution ein Update von bluez, das ist der Bluetooth-Treiber unter Linux. Mein Notebook war also bis heute verwundbar. Nicht so toll.

Wer kein Update mehr machen kann, dem hilft nur noch eines, was bisher Bluetooth auch immer gerettet hat: man schaltet den Funkdienst einfach nicht an. Wobei das bei iOS 11 beispielsweise gar nicht mehr möglich ist. Tolle Technik, nicht!?

Ether spenden // Donate Ether
Bitcoin-Spenden hier akzeptiert ^^

mastodon: der twitter-killer

Die wirkliche Alternative zu T(z)witter heißt Mastodon, stammt aus der Feder des 25-jährigen Programmierers Eugen Rochko und bringt als Maskottchen ein Mastodon mit wie viel zu viel Fell mit (dafür mit Smartphone!):

Maskottchen von Mastodon

Und natürlich ist diese Lösung, wie generell zu erwarten von Menschen, die Internettechnologie verstanden haben: dezentral. Wie könnte es anders sein.

Mit Mastodon kann man derzeit live an einer kleinen Revolution teilnehmen. Und diese auch ganz gut mitbeobachten.

Die Anmeldung erfolgt über keinen zentral erreichbaren Dienst, klar. Vielmehr gibt es wie bei der Facebook-Alternative Diaspora* diverse „Pods“, genannt „Instances“, die jeder einrichten kann und irgendwo auf einem Server laufen. Da Mastodon mindestens 2GB RAM und viele Server-Rechte benötigt, eignet es sich nicht für übliche „shared server“.

Eine Anmeldung ist beispielsweise über den japanischen Digitalkunst-Dienst pixiv möglich. Dort im Profil reicht ein Klick um deren Instanz namens Pawoo beitreten zu können. Für mich als großer Japan-Fan natürlich ein Riesen-Plus. Es gibt auch eine kostenlose Pawoo-App für Smartphones und Tablets. Was einen dann erwartet ist eine Mischung aus Twitter und Tumblr. Über einen separaten Reiter greift man auf weitere Instanzen im föderierten Mastodon-Netzwerk zu.

meine Übersicht bei \"Pawoo\"
Oben: meine Übersicht bei Pawoo

Weitere Instanzen sind z.B. mastodon.social, mastodon.xyz oder friends.nico.

Im Kern hat man mit wenigen Mausklicks alles viel schöner & besser, als man es bei Twitter findet. Hier ein grober Überblick zu den, auch technischen, Kernfunktionen:

* ein „Tweet“ heißt hier „Tröt!“
* bis zu 500 Zeichen pro „Tröt!“
* wie Twitter: private Direktnachrichten zwischen Benutzern
* mehr wie Twitter: Privatnachrichten zwischen Benutzern, Privatnachrichten an Follower, öffentlich in einer Instanz oder öffentlich im gesamten Netzwerk
* Zeitleisten mit vollständiger Kontrolle über Einträge
* spezielle Filter anwendbar, etwa gegen NSFW oder Spoiler
* jede Instanz führt eigene Regeln, was
* im Umkehrschluss auch den Kampf gegen Hass und Hetze umsetzbar macht. Etwas, was Twitter nach wie vor nicht gelingt
* geschrieben in JavaScript und Ruby on Rails
* offizieller Start: 5. Oktober 2016

Das Phänomen Mastodon nahm im März/April so richtig an Fahrt auf. Die größte Community, mastodon.social, kam da bereits auf 42.000 Nutzer. Global ist die Tendenz weiter steigend: da jeder mit wenig Hardware eine eigene Instanz betreiben kann und man sich hier auch zu Spezialthemen (wie Memes, Mangas oder spezielle Videospiele) austauschen kann, liegt die derzeit registrierte Nutzeranzahl bei 852.388. Den aktuellen Status dieser Zahl kann man hier abfragen. Im August waren es noch 766.500 User.

Wer keine Lust auf diesen neuzeitlichen Social-Blödsinn hat, man kann auch selbst helfen den Code weiterzuentwickeln, hier der Link zum Projekt auf GitHub: https://github.com/tootsuite/mastodon.

Von den Erfahrungen die ich bisher gemacht habe, erst wenige Wochen, kann ich sagen, dass man technisch fast nichts mehr besser machen kann. Oder muss. Die Lade- und Ausführungszeiten sind extrem gering, der Dienst super-nutzbar; hakelig wird es eben etwa bei Grafiken, die man von Europa aus in Japan aufrufen möchte. Das war aber auch noch nie anders und ist ja ein kleines Wunder, dass so etwas überhaupt möglich ist.

Wer tatsächlich Twitter mit Mastodon ersetzen möchte, der kann das aus technischer Sicht also bereits tun. Wie mit jeder Pionierarbeit trifft man hier eben noch auf wenige Nutzer. Da der Dienst wirklich gut gemacht ist und weitere Instanzen folgen werden, wird sich das jedoch schnell ändern. Die Inhalte wirken noch teilweise sehr skurril, ist jedoch alles ein netter Haufen dort. Mastodon wird im Oktober gerade mal ein Jahr jung. Die Freiheiten sind hier viel größer als bei den angesprochenen zentralen Diensten. Wer möchte recherchiert kurz vor der Registrierung in welchem Land die Instanz betrieben wird (geht auch mit dem Firefox-Plugin „Flagfox“). In Summe steht heute mit Mastodon tatsächlich ein Dienst zur Verfügung, der die Bezeichnung „Twitter-Killer“ verdient. Alles Gute & viel Erfolg, dem smarten Mastodon!

Ether spenden // Donate Ether
Bitcoin-Spenden hier akzeptiert ^^

ethereum-knoten inklusive wallet mit raspberry pi betreiben

Ethereum mit Raspberry Pi verheiraten

Ist ein bisschen längerer Artikel, doch hier beschreibt jemand ein spannendes Projekt, einen Raspberry Pi 3 so einzurichten, dass man damit einen eigenen Knoten für das Ethereum-Netzwerk und ein Krypto-Wallet gleichzeitig mit Linux betreiben kann:

https://pgaleone.eu/raspberry/ethereum/archlinux/2017/09/06/ethereum-node-raspberri-pi-3/.

Die Gesamtkosten für die benötigte Hardware belaufen sich hierbei um die 200€.

Als Linux kommt ArchLinux ARM zum Einsatz. Es ist aber laut dem Autor auch möglich, Raspbian dafür zu benutzen. Bei Raspbian muss man sich nur geth und go selbst ziehen und installieren, danach den binären Pfad auf $GOPATH/bin umstellen. Bitte auch das Fazit unten lesen („Conclusion“), hier stehen noch ein paar Tipps wegen der Sicherheit. So sollte man bei dieser Lösung u.a. auf sudo verzichten.

200€ scheinen nicht so günstig zu sein auf den ersten Blick. Ich bezweifle jedoch stark, dass es billiger geht. Zudem ist Ethereum faktisch chronisch unterbewertet. Und mit vielen neuen Features in der Pipeline, u.a. kommt auch ein komplett neuer Release Anfang 2018 mit „Metropolis“, sollte der Preis schnell noch weiter nach oben gehen. Besser hier früh einsteigen als zu spät (wobei ich diesen Tipp derzeit auch für Dash (perpetuierendes Entlohnungssystem) und XEM (bald ein neuer Major Release) empfehle).

Ether spenden // Donate Ether
Bitcoin-Spenden hier akzeptiert ^^

der cpu geheimnisse entlocken

Wir bleiben einen Moment bei der komplizierten Materie der Computer-Prozessoren.

Mit sandsifter finden wir drüben bei GitHub ein ziemlich cooles Tool, das x86-Prozessoren nach Bugs und versteckten Instruktionen absuchen kann.

sandsifter: CPU-Fuzzer

Hier der Link:

github.com/xoreaxeaxeax/sandsifter.

Ein Standard-Lauf wird nach der Installation folgendermaßen gestartet:

sudo ./sifter.py --unk --dis --len --sync --tick -- -P1 -t

In der oberen Hälfte laufen dann die Schritte, die sandsifter gerade durchführt. In der unteren listet euch das Programm die Anomalien. Wichtig: je nach Geschwindigkeit und Komplexität eurer CPU kann ein Scan mehrere Stunden oder sogar Tage dauern, plant also genügend Zeit für den Test ein.

Sobald alles durch ist, fasst die Ergebnisse mit diesem Befehl in einem Log zusammen:

./summarize.py data/log

Es ist üblich, dass Millionen Instruktionen gefunden werden. Im Kern gibt es aber drei Bereiche, die euch Aussagen liefern sollen zu:

* CPU-Software-Bugs (z.B. im Hypervisor)
* CPU-Hardware-Bugs
* Undokumentierte Instruktionen (Instruktionen, die eure CPU zwar liefern kann, aber vom Hersteller nicht bestätigt werden)

Besonders der letzte Punkt dürfte für Hacker und Hardware-Freaks interessant sein.

Falls ihr Hilfe bei der Analyse benötigt, wendet euch einfach per EMail an den Entwickler und schickt das Log mit: xoreaxeaxeax@gmail.com.

Viel Spaß beim Jagen und schönes Wochenende!

Ether spenden // Donate Ether
Bitcoin-Spenden hier akzeptiert ^^

howto: eigenes privates ethereum-netzwerk

Hinter Bitcoin ist Ethereum die Kryptowährung mit dem höchsten Marktwert. Wenngleich wir heute noch auf _die_ Killer-App warten, das Meiste sind doch nur Coin-Börsen & Wallets, so ist Ethereum in der Hinsicht vielversprechend, als dass die Währung als „turing complete“ gilt, man kann also im Gegensatz zu Bitcoin dafür und damit „richtig programmieren“.

Mit der folgenden Anleitung bauen wir uns heute ein eigenes privates Ethereum-Netzwerk!

Ethereum Logo Portrait Black X-Small

WARNUNG: die Durchführung des Tutorials geschieht auf eigene Gefahr. Ich übernehme keinerlei Garantie dass irgendwas funktioniert! Auch solltet ihr darauf achten, dass ihr eure eigenen Ethereum von diesen erstellten Ethereum getrennt aufbewahrt. Das Tutorial soll dazu dienen, a) für Ethereum zu programmieren und richtet sich an Entwickler, b) einen einfachen „smart contract“ aufzusetzen, sowie c) das wohl Wichtigste, zu verstehen, wie Ethereum funktioniert.

Los geht’s! 🙂

1. Vorbereitungen

Ihr braucht Zugang zu einem eigenen Server-Bereich und den geth („Go Ethereum Client“). In dieser Anleitung nehmen wir mal an, ihr betreibt einen Ubuntu-Server. Hier findet ihr die Anleitung für die geth-Installation unter Ubuntu: geth installieren. Ferner solltet ihr um minen zu können mindestens 2GB RAM bereitstellen.

Das private Netzwerk wird „gizmeodoteu“ genannt. Es ist aufrufbar unter der Fake-IP-Adresse 101.102.103.104.

Öffnet nun ein Konsolenfenster, loggt euch über SSH in Ubuntu ein und erstellt ein Arbeitsverzeichnis:

ssh root@101.102.103.104
mkdir gizmeodoteu
cd gizmeodoteu
mkdir data
mkdir source

2. Generierung des Genesis-Blocks

Der Genesis-Block ist der allererste Block jeder Blockchain und die Parameter sind in der Datei genesis.json definiert. Die Datei speichern wir ab unter /root/gizmeodoteu/genesis.json. Hier der Inhalt der Datei:

{
"config": {
"chainId": 15,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},

"alloc" : {
"0x0000000000000000000000000000000000000001": {"balance": "111111111"},
"0x0000000000000000000000000000000000000002": {"balance": "222222222"}
},

"coinbase" : "0x0000000000000000000000000000000000000000",
"difficulty" : "0x00001",
"extraData" : "",
"gasLimit" : "0x2fefd8",
"nonce" : "0x0000000000000209",
"mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp" : "0x00"
}

Hierbei steht chainId=1 für das Ethereum-Hauptnetzwerk. Daher ist es wichtig eine eigene chainId für euer privates Netzwerk zu nehmen, damit euer privates Netzwerk die Blockchain nicht mit der offiziellen verwechselt.
Zum Testen und für ein allgemein besseres Verständnis, setzen wir die Schwierigkeit auf einen niedrigen Wert. Auch sollte ein einzigartiger Wert für nonce gewählt werden. Über das Feld alloc werden Accounts mit Ether (die Ethereum-Währung) vorgefüllt.

Geht nun in euer Verzeichnis, wo ihr die genesis.json abgelegt habt und initialisiert den bootnode. Das ist der Knoten, mit welchem sich euer Client mit dem privaten Netzwerk verbinden und auch mit anderen Knoten kommunizieren kann:

cd /root/gizmeodoteu/data
geth --datadir=/root/gizmeodoteu/data init /root/gizmeodoteu/genesis.json
bootnode --genkey=boot.key
bootnode --nodekey=boot.key

3. Neuen Account erstellen und Kontostand prüfen

Öffnet ein neues Konsolenfenster und wechselt über SSH auf euren virtuellen Server:

ssh root@101.102.103.104
geth attach /root/gizmeodoteu/data/geth.ipc
> eth.accounts

Natürlich gibt es noch keine Adressen von Konten. Den ersten Account eröffnen wir nun. Ersetzt „meinPW“ mit einem starken Passwort, bewahrt dieses an einem sehr sicheren Ort auf. Ethereum vergibt nicht: ohne dieses Passwort werdet ihr niemals mehr Zugang zu eurem Account haben:

> personal.newAccount("meinPW")
> web3.fromWei(eth.getBalance(eth.accounts[0]), "ether")

Speichert eure Adresse gut ab, diese beginnt mit dem Präfix 0x. Auch gibt es noch keine Ether in diesem Account, dazu kommen wir noch. Natürlich ist das geminte Ether hier nur nützlich in eurem privaten Netzwerk.

4. Im privaten Netzwerk minen

Das Minen hier hat doppelten Zweck: Ether erzeugen um die Transaktion durch gas, eine Ethereum-Untereinheit, zu betreiben. Zudem führt das Minen eure Transaktionen in die Blockchain.

Öffnet ein neues Konsolenfenster und verbindet euch zu eurem privaten Server:

ssh root@101.102.103.104
geth --datadir=/root/gizmeodoteu/data --mine --minerthreads=1 --etherbase=0x...

Der Parameter etherbase hier spezifiziert die Zieladresse, wohin eure durch das Mining generierten Ether gesendet werden sollen. Hier steht eure Wallet-Adresse aus Schritt 3. Wenn ihr nun den Kontostand erneut checkt (siehe Schritt 3), solltet ihr eine große Zahl angezeigt bekommen. Gratulation! Ihr seid nun Ether-Milliardär!

Klar, diese generierten Ether sind nur wertvoll innerhalb eures privaten Netzwerks. Trotzdem geil! Ihr wisst nun, wie ihr für Ethereum entwickeln könnt und _das_ ist wirklich unbezahlbar.

5. Einen einfachen Vertrag kompilieren

Die offizielle Dokumentation zu Ethereum erwähnt nicht, dass das Kompilieren über solC nicht mehr via RPC möglich ist. Alle Tutorials, die darauf aufbauen, enden in einer Art Fass ohne Boden. Es gibt wohl 2 Wege Verträge zu kompilieren, es ist für das eigene Verständnis wichtig, beide mal versucht zu haben.

Als Erstes installiert ihr den Kommandozeilen-Compiler solC:

sudo add-apt-repository ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install solc

Öffnet nun erneut ein Konsolenfenster, verbindet euch über SSH mit eurem Server und navigiert zum Verzeichnis, wo euer Quellcode abgelegt wird:

cd /root/gizmeodoteu/source

Speichert den folgenden „Begrüssungs“-Vertrag in /root/gizmeodoteu/greeter.sol:

contract mortal {

/* Variable "owner" vom Typ address definieren */
address owner;

/* diese Funktion wird bei Initialisierung ausgeführt und setzt den Besitzer des Vertrags */
function mortal() { owner = msg.sender; }

/* Funktion, um die Investionen des Vertrags wiederherzustellen */
function kill() { if (msg.sender == owner) selfdestruct(owner); }
}

contract greeter is mortal {
/* Variable "greeting" vom Typ string definieren */
string greeting;

/* das hier wird ausgeführt, wenn der Vertrag aufgerufen wird */
function greeter(string _greeting) public {
greeting = "Hallo, Welt!";
}

/* Hauptfunktion */
function greet() constant returns (string) {
return greeting;
}
}

Jetzt kompilieren wir den Vertrag mit solC:

solc --bin --abi -o /root/gizmeodoteu/source /root/gizmeodoteu/source/greeter.sol

Das Setzen von bin und abi sagen dem Compiler, dass „Ethereum Virtual Machine (EVM)“-Bytecode und eine Datei Application Binary Inferface (ABI) erstellt werden sollen. Mit -o legt man wie üblich ein Ausgabeverzeichnis fest, welches mit der zweiten Angabe des Verzeichnisses mit einer *.sol-Datei abgeschlossen wird.

Die Kompilierung hier erzeugt zwei Dateien:

– eine EVM-Datei, erkennbar an der Endung *.bin. Diese entspricht dem Vertrags-Bytecode, der vom webbasierten Compiler generiert wird; dieser ist einfacher zu verwenden und wird weiter unten vorgestellt.

– eine ABI-Datei, erkennbar an der Endung *.abi: stellt euch das application binary interface als eine Art Vorlage für den Vertrag vor. Das erleichtert die Kommunikation von euch und anderen mit dem Vertrag, sobald er sich in der Blockchain befindet.

Öffnet beide Dateien nun mit nano oder einem anderen Texteditor eurer Wahl. Indem ihr versteht, was darin steht, werdet ihr weniger Mühe damit haben eure Verträge zu veröffentlichen und mit ihnen zu interagieren.

Alternativ dazu könnt ihr auch den Online-Compiler benutzen. Durch einfaches Copy&Paste nimmt dieser euch die Arbeit ein bisschen ab. Jedoch sind beide Methoden gleichwertig.

Kopiert dazu einfach den Text aus greeter.sol von oben in den Online-Compiler. Wartet einen Moment und klickt dann auf den Link „Contract details…“. Der Inhalt des Felds Bytecode sollte mit dem aus der Datei greeter.bin übereinstimmen. Das Selbe gilt für das Feld Interface aus der Datei greeter.abi.

6. Einen „Begrüssungs“-Vertrag in eurem privaten Netzwerk veröffentlichen

Kopiert den Inhalt des Feldes Web3 deploy in den Online-Compiler. Fügt den Inhalt in einen Texteditor eures PCs und achtet auf die hervorgehobenen Bereiche:

var _greeting = 'gizmeoDOTeu rockt!';

var browser_ballot_sol_greeterContract = web3.eth.contract([{"constant":false,"inputs":[],"name":"kill","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"greet","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"inputs":[{"name":"_greeting","type":"string"}],"payable":false,"type":"constructor"}]);

var browser_ballot_sol_greeter = browser_ballot_sol_greeterContract.new(

_greeting,

{

from: web3.eth.accounts[0],

data: '0x6060604052341561000f57600080fd5b6040516103dd3803806103dd833981016040528080518201919050505b5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6040805190810160405280600d81526020017f48656c6c6f2c20576f726c642100000000000000000000000000000000000000815250600190805190602001906100b99291906100c1565b505b50610166565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061010257805160ff1916838001178555610130565b82800160010185558215610130579182015b8281111561012f578251825591602001919060010190610114565b5b50905061013d9190610141565b5090565b61016391905b8082111561015f576000816000905550600101610147565b5090565b90565b610268806101756000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806341c0e1b514610049578063cfae32171461005e575b600080fd5b341561005457600080fd5b61005c6100ed565b005b341561006957600080fd5b61007161017f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100b25780820151818401525b602081019050610096565b50505050905090810190601f1680156100df5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561017c576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b565b610187610228565b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561021d5780601f106101f25761010080835404028352916020019161021d565b820191906000526020600020905b81548152906001019060200180831161020057829003601f168201915b505050505090505b90565b6020604051908101604052806000815250905600a165627a7a7230582069d50e4318daa30d3f74bb817c3b0cb732c4ec6a493eb108266c548906c8b6d70029',

gas: '1000000'

}, function (e, contract){

console.log(e, contract);

if (typeof contract.address !== 'undefined') {

console.log('Contract mined! address: ' + contract.address + ' transactionHash: ' + contract.transactionHash);

}

})

Das oben abspeichern als myContract.js.

Bevor ihr fortfahrt prüfen, dass a) euer Kontostand nicht 0 ist und b) euer Account entsperrt ist. Ist der Kontostand zu niedrig oder der Account gesperrt, könnt ihr den Vertrag nicht veröffentlichen. Deshalb solltet ihr die obigen Schritte nochmals abarbeiten, um Ether zu minen und entsperrt dann euren Account wie folgt (ersetzt „meinPW“ mit eurem eigenen von oben):

Öffnet ein neues Konsolenfenster:

ssh root@101.102.103.104
geth attach /root/gizmeodoteu/data/geth.ipc
> web3.fromWei(eth.getBalance(eth.accounts[0]), "ether")
> personal.unlockAccount(eth.accounts[0], "meinPW")

Bitte nicht abschalten, denn es wird wichtig: auch hier gibt es kein Update der Dokumentation zu Ethereum, daher gibt es Verwirrungen, wie man Verträge kompiliert. Beachtet, dass die Funktion web3.eth.contract() ein Argument braucht. Das ist das selbe, wie die Datei greeter.abi, die wir mit dem solC erstellt haben. Das Feld data ist gleichbedeutend mit dem EVM-Bytecode der Datei greeter.bin. Der einzige Unterschied ist wieder das Präfix 0x.

Jetzt wird der Vertrag öffentlich gemacht:

loadScript(myContract.js)

Die Ausgabe sollte ungefähr so aussehen:

Contract mined! address: 0x4000737c8bd7bbe3dee190b6342ba1245f5452d1 transactionHash: 0x0a4c798467f9b40f2c4ec766657d0ec07c324659ea76fcc9c8ad28fc0a192319

Glückwunsch! Euer Vertrag „lebt“ und ist zu finden unter der Adresse 0x4000737c8bd7bbe3dee190b6342ba1245f5452d1 eurer privaten Blockchain.

Notiert euch diese, denn sowohl ihr oder auch andere werden diese brauchen, wenn ihr damit interagieren wollt.

Falls es nicht funktioniert hat: stellt sicher, dass ihr aktiv in einem anderen Fenster minet, damit die Transaktion in die Blockchain geführt werden kann.

7. Mit dem Vertrag interagieren

Auch hier gibt es noch keine Updates der offiziellen Ethereum-Doku. Die beschriebenen Funktionen werden schon nicht mehr benutzt. Startet erneut geth und versucht Folgendes:

> var abi = '[{"constant":false,"inputs":[],"name":"kill","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"greet","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"inputs":[{"name":"_greeting","type":"string"}],"payable":false,"type":"constructor"}]'
> var abi = JSON.parse(abi)
> var contract = web3.eth.contract(abi)
> var c = contract.at("0x4000737c8bd7bbe3dee190b6342ba1245f5452d1")
> c.greet()

Mit den ersten drei Eingaben legt ihr fest, wie der Vertrag laut ABI aussieht. Die Methode contract.at() braucht als Übergabeparameter die Adresse, wo euer Vertrag residiert. Ihr solltet nun die folgende Ausgabe sehen:

gizmeoDOTeu rockt!

Hinweis: geth bekommt Schnupfen, sobald eine eurer Eingaben illegale Zeichen beinhaltet, siehe:

“ (illegal) is not equal to " (legal)

und

‘ (illegal) is not equal to ' (legal)

9. Fazit

Wir haben nun mehr als nur kurz mal reingeschnuppert in Ethereum: wir haben ein eigenes (privates) Netzwerk aufgesetzt und sogar einen eigenen „smart contract“ kompiliert. Zudem haben wir Sackgassen der offiziellen Dokumentation vermieden. Wir haben ferner gesehen, wie man einen Vertrag veröffentlicht (deploy) und mit diesem interagiert.
Solltet ihr je Mist gebaut haben und müsst nochmals neu anfangen, startet „einfach“ euren Server neu und löscht eure Blockchain:

rm -R /root/gizmeodoteu/data/geth/chaindata

[via]

10. Ausblick

Die smart contracts sind, was Ethereum so stark macht. Durch diese Eigenschaft entfällt die Stelle des Vermittlers, Verträge werden dadurch fälschungssicher und günstig. Nicht nur Notare werden zukünftig dadurch überflüssig. smart contracts haben das Zeug dazu, ganze Institutionen, egal ob privat oder staatlich, zu ersetzen.

Ferner ist Ethereum „turing complete“: diese Eigenschaft besitzt das Bitcoin-Protokoll nicht. Dadurch kann man für Ethereum relativ leicht selbst Anwendungen entwickeln. Wer schonmal JavaScript programmiert hat, wird sich hier prima zurecht finden. Vielleicht hilft dieses Tutorial ja, mal mit einer anderen Anwendung an den Start zu gehen, als nur Wallets oder Coin-Börsen! 🙂

Falls euch das Tutorial gefallen hat, spendet mir doch ein paar Bitcoin! Die Adresse findet sich bei jedem Bitcoin-Button überall auf gizmeo.eu verstreut! Vielen Dank für die Aufmerksamkeit und happy hacking!

Ether spenden // Donate Ether
Bitcoin-Spenden hier akzeptiert ^^

vault 7: ssh-hacking

Es scheint, fast ist es ein bisschen ruhiger geworden um Vault 7. Doch was erst im März diesen Jahres von Wikileaks gestartet wurde und den größten Geheimdienst-Leak aller Zeiten darstellt, uns länger beschäftigen würde, war vorhersehbar. Ist auch gut so!

Die neuesten Enthüllungen drehen sich um die Tools BothanSpy und Gyrfalcon. Beides sind Werkzeuge um SSH-Sessions zu knacken und zwar sowohl auf Unix-/Linux-Systemen, woher man diese Art Sessions sehr gut kennt, aber auch von Windows-SSH.

Hintergrund: mit SSH ist es im Kern möglich Zugang zu jedem Rechner weltweit zu bekommen. Gerade auf Unix- und Linux-Systemen sind GUIs, also grafische Nutzeroberflächen, nur ein Schnickschnack um die User von der Konsole fernzuhalten. Hinter den schönen bunten Fensterchen laufen die selben Befehle ab, die man auch von den Terminals kennt. Linux lässt sich hervorragend von einem Laptop fernadministrieren. Ein Beispiel: ein Raspberry Pi liegt irgendwo im selben Netzwerk wie mein Laptop. Mit ssh pi@192.168.x.x kann ich auf diesen von meinem Laptop aus zugreifen, einrichten, Programme installieren/deinstallieren, etc. Viele nutzen ssh auch um ihren Webspace zu administrieren, etwa für eigene Webseiten und -projekte.

BothanSpy hier ist das Tool zum Hacken der XShell, also für Windows-Systeme. Wie es aussieht ist es aber eine Erweiterung von Shelltermn 3, die man erstmal dafür braucht. Die gestohlenen Daten können direkt an CIA-Server gesendet werden oder werden bis zur Internetverbindung in einer eigens dafür verschlüsselten Datei gespeichert.

Wie zu erwarten war ist Gyrfalcon das OpenSSH-Pendant. Unklar bleibt, ob außer Ubuntu, Debian, CentOS, Suse und Red Hat weitere Linux-Distributionen betroffen sind, da nur diese explizit im Manual beschrieben werden. Linux-Fragmentierung ist hier also gleichbedeutend mit Schutz. Gyrfalcon kann den kompletten Verkehr abgreifen, wenn gewollt. Außerdem wie bei BothanSpy auch Nutzernamen und Passwörter.

Mit diesen Informationen geht Wikileaks nun schon in die 15. Verlängerung. Nicht immer sind meine Beiträge hier auf dem neuesten Stand. Es lohnt sich eventuell der Blick ins Archiv von href.ninja. Dinge, die hier nicht behandelt wurden, tauchen wahrscheinlich dann dort auf. Mir fehlt für eine Art permanenter Chronik leider viel zu oft die Zeit (auch wenn man das von mir früher nicht gewohnt war). Dafür entschuldige ich mich, geht aber nicht mehr anders.

Ether spenden // Donate Ether
Bitcoin-Spenden hier akzeptiert ^^

anbox: android in a box

Viele Versuche Android mit Linux zu verheiraten gab es bisher nicht, umgekehrt sieht es noch viel schlimmer aus. Ich warte immer noch auf Apps wie Amarok oder Audacious oder GIMP. Auch einfach, weil diese Programme (wie viele andere von Linux auch) viel mehr Publikum verdient hätten und davon gäbe es auf Android mehr als genug.

Vielleicht ist das aber auch bald völlig egal, denn da ist etwas in Alpha, was zumindest die eine Richtung abdecken würde:

Anbox steht einfach für Android in einer Box und läuft, ohne Emulation übrigens, in einem Linux Container (LXC) auf (jedem?) Desktop-Linux.

Der Clou ist, diese Alpha läuft jetzt schon mit dem neuesten Android 7.1.1 (Nougat), wie man oben sehen kann.

Mehr dazu: http://anbox.io/. [via]

Den Play Store findet man erst einmal nicht, stattdessen werden Apps mit

adb install /path/to/.apk

installiert.

Um Anbox selbst auf Linux zu installieren wird die Nutzung von Snaps vorausgesetzt, das geht dann ganz einfach mit:

sudo snap install --classic anbox-installer && anbox-installer

Das Anbox-Projekt ist öffentlich und jeder kann mitmischen: Anbox auf GitHub. Auf IRC reicht #anbox zum Mitreden.

Have fun! <3

Ether spenden // Donate Ether
Bitcoin-Spenden hier akzeptiert ^^

believe. nothing.

Gnädige Herren, werte Damen. Es ist Wochenende. Bitte schalten Sie jetzt Ihre Gänge herunter. Gönnen Sie sich etwas Gutes! Die Empfehlung des Tages unseres geschätzten Professors kommt genau zur rechten Stunde:

believe. nothing. via: mein liferea

Ich warf heute seit gefühlten 50 Jahren mal wieder meinen Liferea an und bei FFFFOUND! findet man wohl auch nichts mehr als Titten, Titten, Titten. Da kommt eine wichtige, bunt-poppig verpackte Lebenslektion zwischendurch gerade recht. Nicht, dass ich etwas gegen Titten hätte, ich mag sie nur am liebsten mit meiner Banane in der Mitte und nicht in schwarzweiß und 2D auf einem viel zu kleinen Tische.

winkekatze

Ether spenden // Donate Ether
Bitcoin-Spenden hier akzeptiert ^^

streamtuner 2 revived: fehlerbehebung

Fehlerbehebung ist jetzt streng genommen das falsche Wort, aber mit debuggen kann jetzt auch nicht jeder etwas anfangen. Lest den folgenden Text einfach so: „den Streamtuner2 von heute einfach so ans Laufen kriegen wie früher“! Geht nämlich. 🙂

1. Problemlösung – shoutcast zurückbringen

Egal ob für’s Streaming oder später für das Rippen von Streams, shoutcast.com ist meine erste Quelle für Musik durch Streamtuner2. Nennt es Nostalgie, Gewohnheit, Faulheit, egal, ohne diesen Tab fehlt einem einfach etwas. Ich kenne das Programm noch aus ganz jungen Linux-Anfängertagen, wenn ich hier sehe er findet rein gar nichts, bin ich auf dem Stand vor 2005. Geht halt gar nicht.

Lange Rede, kurzer Workaround: einfach das Streamtuner2-Konfigurations-Verzeichnis löschen und das Programm neu starten. Ja, ihr fangt nochmal neu mit einrichten an, aber da müsst ihr durch, ist am Ende für die weiteren Konfigurationen auch besser. Unter Linux zu finden unter:

/home/USER/.config/streamtuner2

Das Python-Progamm macht eigentlich alles richtig und nimmt sich die alte Konfiguration und betreibt die Python-Version damit. Aber die .config kann steinalt sein, wie in meinem Fall. Löschen des Ordners behob das „shoutcast zeigt keine Kanäle“-Problem, denn der Ordner streamtuner2 wird einfach neu angelegt

2. Problemlösung: streamripper zeichnet nichts mehr auf

Die Internet-Radiosender sichern sich heute besser ab als früher und fragen den Client ab, der den Stream abgreifen will. Auch wenn die Python-Version euch nun über ein Plugin den Client ändern lässt, z.B. in Winamp, Youtube, etc., man kann diverse Kanäle nicht mehr aufzeichnen.

Workaround hier ist Handarbeit, denn man muss explizit mit -u (steht für Useragent, siehe Doku) einen nichtssagenden(!) User-Agenten angeben, damit der streamripper wieder Streams aufnehmen kann.

Geht dazu auf „Bearbeiten“, dann „Eigenschaften“, unten gibt es einen Bereich „Recording“. Jetzt nehmen wir mal an, ihr zeichnet so die Streams auf:

x-terminal-emulator -e streamripper %srv -d /home/USER/streams

Shoutcast wird euch eine Fehlermeldung im streamripper zurückgeben mit:

HTTP:403 - Access Forbidden (try changing the UserAgent), sobald ihr aufnehmen wollt.

Ihr könnt nun gerne prüfen, ob ihr die mit dem eingebauten Plugin weg bekommt, es wird nicht funktionieren. Aber fügt einfach eurem streamripper-Befehl folgendes hinzu (in Fettschrift):

x-terminal-emulator -e streamripper %srv -d /home/USER/streams -u 'uio'

Die 403-Warnung mit „Kein Zugriff“ war danach verschwunden und man konnte wieder Streams aufnehmen.

Joa, ich bin wieder ziemlich happy damit. Streamtuner2, ich glaube ich habe es vor langer Zeit auch mal irgendwo aufgeschrieben, war so eine der „Killer-Applikationen“, als ich Linux-Anfänger war. Mit diesem Teil bin ich gerne dabei geblieben und dementsprechend war man daran gewohnt. Ich denke 9 Jahre tot zu sein reichte dann auch, finde schön, dass man sich dem Problem inzwischen angenommen hat. Ich müsste jetzt schwer suchen, um noch etwas zu finden, das mich persönlich stört. So viele Funktionen bin ich gar nicht gewohnt, ich betrieb bislang eine Version aus 2012, Version 2.0.8, von einer 2.2.0-Version konnte ich bislang nur träumen.

Mir ist Musik sehr wichtig. Denke das sieht man auch, wie ich immer wieder zu diesem Thema zurückkehre und rein knie, bis ich wieder den alten Stand habe. Und habt ihr gemerkt, was ein heißes Eisen das immer noch ist!? Hase-und-Igel-Style mit Blocken von Aufnahmen, leerem Shoutcast und wasnoch? Und das heute. $hady Bu$in€$$. Oh my…

Ether spenden // Donate Ether
Bitcoin-Spenden hier akzeptiert ^^

streamtuner2 revived

Man kann mich für bekloppt halten, doch auch nach über einer Dekade mit Linux schaue ich noch immer manchmal nach Lebenszeichen von Streamtuner2. 2008 hatte ich ihn eigentlich bereits für tot erklärt, danach mich immer mal wieder mit alten Paketen versorgt, um zumindest teilweise die Funktionalität, die das Programm bietet, auf meinem System erhalten zu können.

Wie es der Zufall so will und das ist das Schöne an Open-Source-Projekten, existiert aber mittlerweile eine Art Rewrite in Python:

http://milki.include-once.org/streamtuner2/.

Die deb– und rpm-Pakete erfordern entsprechende Abhängigkeiten, die ein System erst einmal erfüllen muss. Auch ist der Verzeichnis-Musik-Streamer nicht mehr so schnell wie früher, braucht ein bisschen mehr Speicher als die Version in C und orientiert sich auch vom Design an der ersten Version von Streamtuner.

Was bei mir aber problemlos zu funktionieren scheint ist die PyZIP-Version, die mit python streamtuner2-2.2.0.pyz von der Konsole aus gestartet werden kann. Und: als kleinen Zusatz gibt es das Programm sogar nun in einer expliziten Konsolenversion, komplett ohne GUI.

Witzig ist das schon, neue Dienste gibt es dort auch (TuneIn, YouTube, etc.) und scheinbar soll man auch streamripper benutzen können, was mir noch nicht gelingt: xterm: No absolute path found for shell ballert er mir raus, er findet, scheinbar, meine Konsole nicht, was Blödsinn ist. Auch will shoutcast nach wie vor nicht, doch damit habe ich mich nach so langer Zeit dann auch abgefunden.

Schönes Ding! Plugin-fähig! Respekt und dankschee an die devs! <3

Ether spenden // Donate Ether
Bitcoin-Spenden hier akzeptiert ^^

aus cyanogenmod wird lineageos

Die freie Android-Welt ist letzten Monat implodiert. Die freie & hoch-populäre Android-ROM CyanogenMod, faktisch die Basis aller auf dem Markt befindlichen alternativen Android-ROMs, existiert nicht mehr.

Nennen wir es Dummheit, Raffgier, Missmanagement. Jedenfalls sind nicht die Nutzer schuld, auch nicht die fleißige Android-OpenSource-Community, sondern die gleichnamige Firma namens Cyanogen Inc.. Es hat sich angekündigt, sagen wir es so. Der Wechsel weg von einem faktisch verseuchten Namen hin zum neuen LineageOS ging schnell und unspektaktulär über die Bühne.

Damit wir den neuen Sachverhalt verstehen, habe ich mich auf den Hosenboden gesetzt und folgende aufwendige Grafik erstellt (Achtung: real GIMP-Hardc0re-Wizardry right here!):

aus CyanogenMod wird LineageOS

Comprende capisce!? Perfekt!

Damit geht ein fast achtjähriger feuchter Android-Traum über Nacht zu Ende.

Doch haltet ein! Denn der Fork ist bereits auf GitHub erhältlich, dem Quellcode-Paradies für mutierte Okto-Katzen mit Manga-Augen: https://github.com/lineageos.

Denn wenn Programmierer aus der OpenSource-Welt mit etwas nicht zufrieden sind, wird einfach geforkt. Funktioniert immer und wirkt oft Wunder, Beispiele sind etwa Ubuntu (aus Debian), Firefox (aus Mozilla Suite), Joomla (aus Mambo), OpenBSD (aus NetBSD), XORG (aus XFREE86), etc. pp.

Es ist der allerletzte Schritt, sowas wird meist nicht gerne gemacht, die letzte Form des Protests und der Unzufriedenheit, sowie der Überzeugung, es besser machen zu können. Was beim Thema LineageOS von mir nicht im Geringsten bezweifelt wird.

Noch ein allerletzter Gruß an Cyanogen Inc.: Sterbt bitte. Schnell.

Ether spenden // Donate Ether
Bitcoin-Spenden hier akzeptiert ^^