Bitcoin-broadcast eli bitcoin-transaktioiden lähettäminen radioteitse

Hmmm … mikäli oikein oikein idean ymmärsin, niin eihän tässä ole pakko kaikkea dataa (kokonaisia blokkeja) lähettää vaan aivan murto-osa siitä eli vain se osa joka vastaanottajia (tilaajia) kiinnostaa. Eli bitcoinissa on olemassa Simple Payment Verification (SPV) systeemi, joka on implementoituna bitcoinj-kirjastoon (jota esim. Multibit käyttää). SPV toimii niin, että klientille lähetään (hieman yksinkertaistaen) blokeista vain häntä koskevat tiedot (plus vähän header yms. infoa, jolla varmistetaan ettei serveri kuseta). Sinun implemetaatiossasi riittäisi siis, että joka blokista poimitaan kaikkia tilaajia koskeva informaatio ja lähetään se.

Keksimäsi idea on kyllä hieno.

Jos mennään hieman asioiden edelle, ja mietitään millaisella raudalla voitaisiin esimerkiksi pyykinpesukoneeseen toteuttaa bitcoin-maksaminen.
-Raudan pitäisi olla halpaa
-Kompaktin kokoinen
-Siinä pitäisi olla riittävästi laskentatehoa datasignaalin käsittelemiseen (tietenkin!)

DVB-signaalin käsittelemiseen tarvitaan kohtuullisesti laskentatehoa, eli mikrokontrollerit taitavat tippua pois laskuista. Mahtaisiko esim. raspissa tai jossakin sen klooneista riittää laskentateho?

Ainakin kahdella eri teknologialla DVB-signaalin käsittely on mahdollista: FPGA ja ASIC. Näiden haittapuolena on tietenkin kallis hinta, eli oikeita asiakkaitakin pitäisi olla jo jonossa, jos näiden päälle lähdetään toteuttamaan rautaa.
ASICeissa ilmeisesti pidetään nyrkkisääntönä, että raudan kehitys maksaa miljoonan ja sen jälkeen piirejä voi painaa lähes ilmaiseksi.

FPGA-piirit ovat hinnaltaan kalliimpia kuin ASICit, mutta FPGA-piirien uudelleenohjelmointimahdollisuus tekee niistä soveltuvampia pienempiin sarjoihin tai jopa protoihin. Jos hallitsee VHDL:ää tai Verilogia, niin FPGA-piireille ohjelmointityökaluja on ilmeisesti saatavilla ihan open source pohjaltakin. Parempi vaihtoehto protojen tekoon FPGA:lle olisi jonkin synteesityökalun (esim. catapult C) käyttö, kaupalliset taitavat vain maksaa 100 000 euroa ja ylöspäin. Synteesityökalujen käyttö vaatii myös kohtuullisen paljon ymmärrystä laiteläheisestä ohjelmoinnista, vaikka koodia kirjoitetaankin C:llä tai vastaavalla.
Open source synteesityökaluja on myös olemassa: http://panda.dei.polimi.it/ ja http://legup.eecg.utoronto.ca/
Itselläni ei ole noista kahdesta mitään kokemusta, joten en osaa sanoa niiden toimivuudesta mitään. Catapult C:llä on tullut ohjelmoitua pieniä harjoituksia koulussa.

Raudan toteutus voisi onnistua tietysti jollakin nopealla mikrokontrollerilla, jos siirtotienä käytettäisiin FM- tai AM- moduloitua radioaaltoa. Toinen asia on tietysti, että riittääkö siinä tiedonsiirtonopeus, mutta kuten joku aiemmin sanoi, niin onko koko blockchainin lähettäminen ehdottoman pakollista? Tämä tapa tulisi ainakin edulliseksi ja helpoksi. Dataahan ei tarvitse purkaa kokonaan digitaalisena (mikrokontrollerilla), vaan ensin kantoaallosta erotellaan datasignaali analogisesti ja sen jälkeen datasignaali prosessoidaan mikrokontrollerilla.

Laadimme Tuomo Sipolan kanssa projektille englanninkielisen sivun osoitteeseen http://bitcoinradio.koodilehto.fi/. Sivu ovat vielä luonnosvaiheessa, eikä linkkiä ole jaettu tätä foorumia laajemmalle (eli no… koko Internetiin), joten tuosta ehtii vielä antamaan palautetta ennen Redditiin linkkaamista.

Sisällöstä voi antaa palautetta täällä foorumilla tietysti. Lisäksi etevimmät voivat tehdä suoraan pull requestin GitHubin kautta, koska nettisivu sijaitsee projektin repossa gh-pages -branchissa. https://github.com/zouppen/bitcoin-broadcast/tree/gh-pages.

Vastailenpa muutamaan postaukseen, joihin en ole aiemmin ehtinyt, eli:

Kyllä, mielessä on ollut. Toisaalta joukkorahoitus on sellainen kauneuskilpailu, että pitäisi olla jo jotakin konkreettista demoa, joten tässä olisi mahdollisuus ehkä pienemmällä budjetilla saada ensin demo ja onnistua sen jälkeen joukkorahoituksessa paremmin. Kerättäisiin aluksi vähemmän pääomaa ja sillä voisi mennä demovaiheeseen, ehkäpä.

Hyvä pointti tuo kehittyvät markkinat. Projektiin tarvittaisiin ehkä mukaan sitä puolta tuntevia ihmisiä.

Totta, ja tässä DVB-T -koelähetykset voisivat olla näppärä tapa demojen tekemiseen. Silloin ihmiset kaikkialla lähetyksen jakelualueella pystyisivät tarttumaan haasteeseen!

Kyllä. Tällöin kyseessä olisi enemmän tilaajamalli, joka voisi soveltua paremmin jakeluun esimerkiksi FM-lähetyksen mukana (jossa on DARC:n 16kbps:n nopeusraja). Tämä toisaalta vähentäisi käyttökohteita, koska sitä ei voisi käyttää enää vaihtoehtoisena kanavana blockchainin jakeluun. Tai blockchain otsikoiden osalta niinkin mahtuisi, mutta ei kaikki transaktiot. Tilaajamallilla toimiva järjestelmä voisi olla jopa ihan erillinen projektinsa, koska siinä on aika erilaiset vaatimukset?

[quote=“juldaani, post:22, topic:2093”]DVB-signaalin käsittelemiseen tarvitaan kohtuullisesti laskentatehoa, eli mikrokontrollerit taitavat tippua pois laskuista. Mahtaisiko esim. raspissa tai jossakin sen klooneista riittää laskentateho?

Ainakin kahdella eri teknologialla DVB-signaalin käsittely on mahdollista: FPGA ja ASIC. Näiden haittapuolena on tietenkin kallis hinta, eli oikeita asiakkaitakin pitäisi olla jo jonossa, jos näiden päälle lähdetään toteuttamaan rautaa.
ASICeissa ilmeisesti pidetään nyrkkisääntönä, että raudan kehitys maksaa miljoonan ja sen jälkeen piirejä voi painaa lähes ilmaiseksi.

––

Raudan toteutus voisi onnistua tietysti jollakin nopealla mikrokontrollerilla, jos siirtotienä käytettäisiin FM- tai AM- moduloitua radioaaltoa. Toinen asia on tietysti, että riittääkö siinä tiedonsiirtonopeus, mutta kuten joku aiemmin sanoi, niin onko koko blockchainin lähettäminen ehdottoman pakollista? Tämä tapa tulisi ainakin edulliseksi ja helpoksi. Dataahan ei tarvitse purkaa kokonaan digitaalisena (mikrokontrollerilla), vaan ensin kantoaallosta erotellaan datasignaali analogisesti ja sen jälkeen datasignaali prosessoidaan mikrokontrollerilla.[/quote]

Taidat olla oikeassa tuon suhteen. Mikrokontrollerit voisivat toimia paremmin tuossa tilaajamallilla toimivassa jakelussa. Toisaalta mainitsitkin Raspberry Pi:n ja uskoisin että sillä onnistuu, koska olen kaapannut DVB:tä heikkotehoisemmallakin ARM-koneella, jossa ollut USB:llä liitetty TV-tikku. Transkoodauksesta ei tietenkään tullut silloin mitään, mutta tässähän ei sillle TV-lähetykselle tarvikaan tehdä muuta, kuin heittää pois ja ottaa vaan bitcoin-virta talteen ja palvella yhtä TCP-yhteyttä. Siihen tehot varmasti riittävät Raspberry Pi:ssäkin.

Hyviä ideoita on kyllä tullut täältä, kiitoksia kaikista! Kyllä tästä jotakin jännää saadaan yhdessä aikaan!

Itsellä RasPI pyörittää kahta DVB-T2 -tikkua (VDR:llä) ja ei ole mitään ongelmia.

Mahtavan kuuloinen projekti. En tiennyt että Digitan selkään pääse noinkin edullisesti ~500e /kk. Tästä voi syntyä vaikka mitä :slight_smile:

Olisiko tämmöisestä laitteesta mihinkään? Tukee ainakin tuota radiotaajuutta.

The GW-GSM-02 is an IQRF gateway with GSM connectivity intended as an interface between IQRF and GSM/GPRS networks. The user can implement specific functionality by software for internal IQRF TR module. Main components are 8 b microcontroller, GSM/GPRS
transceiver module and IQRF TR module with antennas, FLASH memory and backup accumulator.
GW-GSM-02 can be configured and firmware can be upgraded from PC. Application software for TR module can be uploaded via IQRF IDE4 using the gateway as a programmer.

Power supply 4.8 V – 5.5 V DC
Accumulator LI14500-1L, 3.7V, 700 mAh
Supply current
Standby (all peripherals disabled) 12 µA
Operational
TR and GSM inactive 75 mA
Additional current
TR active See datasheet of TR module
GSM transmitting 175 mA
Accumulator charging 450 mA max.
Temperature range
Operational 0 °C to +60 °C
Accumulator charging 0 °C to +45 °C
Storage 10 °C to +20 °C (recommended)
IQRF
Frequency bands 868 MHz or 916 MHz (SW selectable)
RF output power According to TR module, programmable
TR module TR-54DA
Antenna PCB antenna built-in TR module
GSM
frequency bands 900 MHz or 1800 MHz
Antenna External, SMA, gain 2.15 dBi
Flash memory 1 MB, serial interface SPI, 100 000 erase / write cycles typ.
Data logging Up to 3200 events
Temperature sensor Optional, built-in TR module
Dimensions
without antenna 86 mm x 60 mm x 24 mm
with antenna 104 mm x 60 mm x 60 mm
Weight 90 g
Whats in the box:

GW-GSM-02 IQRF GSM gateway, with the accumulator and GSM SMA antenna
TR-54DA IQRF TR module (with built-in antenna) inside, demo SW uploaded
TY-A6 Power supply (Input: 100 V – 240 V AC, EU plug. Output: 5 V DC, 500 mA, USB A connector, cordless.)
CAB-USBABMICRO Power supply cord (for TY-A6) with microUSB output connector


Okei, voi olla typerä kysymys mutta… Mitä etua saavutetaan käyttämällä DVB-T:tä (tai muuta vastaavaa) jakelukanavana, jos kuitenkin toteutuksessa on käytössä myös puhelinverkon datayhteys, jolla lähetetään ulospäin dataa?

Uplinkkiä, eli esimerkiksi kännykkädataa, tarvitaan ainoastaan silloin, kun halutaan lähettää transaktio. Muina aikoina ei tarvita lainkaan uplinkkiä. Jos laitteen käyttämä salainen avain on Internetiin kytketyn laitteen tiedossa (esim. omalla palvelimella), voi DVB-T -linkin varassa olevan laitteen “kassan” tyhjentää palvelimelta käsin, eikä siihen tarvita uplinkkiä.

Jos kuitenkin transaktioita täytyy myös lähettää, on mahdollista käyttää Internetin lisäksi kaikenlaisia luovia ratkaisuja, kuten tekstiviestejä, radioamatööriasemaa tai vaikka lankapuhelinta, kunhan päässä on jokin taho, joka välittää transaktion Internetissä toimivaan bitcoin-verkkoon. Lähettäjä voi varmistaa viestin perillemenon kuuntelemalla DVB-virtaa. Kun transaktio kuuluu radiosta, voi sen olettaa menneen louhijoille, jotka aikanaan varmistavat transaktion. Vahvistusten tapahtumista (confirmation) voi myös seurata pelkästään kuuntelemalla lähetystä.

Käytännössä siis aina rahan lähettäjällä on oltava yhteys ulkomaailmaan, mutta rahaa voi vastaanottaa ilman lähetintä.

Toivottavasti ymmärsin, mitä tarkoitit ja vastasin kysymykseen. :slight_smile:

Piirtelin Tuomon kanssa kuvia ja lisäsin linkkejä projektin sivuille. Tekstiäkin on vähän hiottu. Olisikohan tämä jo kohta siinä kunnossa, että uskaltaisi linkittää mm. Reddittiin? Kaikki parannusehdotukset ovat tervetulleita! :slight_smile:

http://bitcoinradio.koodilehto.fi/

Tuolta sivuilta: “•Serial traffic signing. The receiver needs to be sure that the data has not been forged.”

Mitä olette miettineet ratkaisuksi tuohon? Julkisen ja yksityisen avaimen salausta?

[quote=“juldaani, post:31, topic:2093”]Tuolta sivuilta: “•Serial traffic signing. The receiver needs to be sure that the data has not been forged.”

Mitä olette miettineet ratkaisuksi tuohon? Julkisen ja yksityisen avaimen salausta?[/quote]

Kyllä, suunnitelmissa on käyttää samaa algoritmia kuin bitcoinissa, eli ECDSA. Lähettäjällä on tietty avain, jolla paketit allekirjoitetaan. Se avain voisi hyvin olla myös bitcoin-osoite, johon rahaa siirtämällä voisi tukea projektia. :slight_smile:

Vastaanottimeen annettaisiin siis julkinen avain ja vastaanotin verifioi paketit ja suodattaa tietysti pois sen ylimääräisen allekirjoituksen ennen paketin välittämistä bitcoin-nodelle.

Ilmoitan näin etukäteen, että heinäkuun ensimmäisellä viikolla on tarkoitus tehdä tästä isompi tiedote ja kertoa syksyn aikatauluista. Koelähetystä kohtaan on oltu kiinnostuneita ja rahoituksesta on noin puolet kasassa. Pysyvän, ympärivuorokautisen lähetyksen rahoitus on vielä täysin auki, mutta lähes valtakunnalliset koelähetykset ovat tulossa hyvin suurella todennäköisyydellä.

Nyt on kaikilla teillä hyvä hetki ideoida sovelluskohteita, joita pääsee kokeilemaan luultavammin alkusyksyllä oikealla signaalilla! Itse keskityn vielä itse lähetys- ja vastaanottosovelluksen kehittämiseen.

Toiselle asiansa osaavalle C-koodarille, jolla on kokemusta protokollaohjelmoinnista, olisi kyllä tarvetta. En ehdi rekrytä tämän enempää, joten kiinnostuneet kurkatkoon lähdekoodeja ja ilmoittautukoot. :slight_smile:

Menikin heinäkuun toiselle viikolle, mutta tässä se on! http://kryptoradio.koodilehto.fi/

tl;dr? Lähetykset alkavat 1.9.2014 ja kestävät 2 kuukautta. Sivuilla myös suomenkielinen lehditötiedote, jakakaa vapaasti!

Mahdollisia sovelluskohteita tai muita perusteluja on pyöritelty mm. irkin puolella tänään.

Missä kanavalla? Kiinnostaisi tulla kuunteluoppilaaksi jos sopii.

Itseäni kiinnostaisi tehdä joku DVB-t tikku/Raspberry pi/Arduinohärdelli tästä, joka tekisi jonkin jutun aina kun esimerkiksi transaktio tulee tiettyyn osoitteeseen. Joku “kolikkoautomaatti” -proto siis.

Olen aikanaan linuxin vdr:n sun muiden kanssa puljannut ja Rpi/arduinokolvaukset onnistuu. Hämärän peitossa on miten tämän streamin saisi parsettua sieltä streamista…

Kanava on #bitcoinradio Freenodessa.

Kryptoradion lähetyslaitteisto matkaa huomenna Pasilaan Digitan lähetyskeskukseen. Saatan laittaa tänne muutaman kuvan sieltä, jos kuvaaminen on siellä sallittua.

Viime aikoina lähetykseen liittyvä koodi on edistynyt siten, että uskallan luvata, että syyskuun alusta mukana on Bitcoin- ja Fimkrypto-verkkojen transaktiot ja blokit reaaliajassa sekä Bitstampin että BitPayn vaihtokurssit. Lisäksi Bitstampin tarjoustasojen (order book) muutokset tullaan lähettämään reaaliajassa. Tarjoustasojen ja valuuttakurssien lähettämiseen liittyvä koodi on niin geneeristä, että sillä voisi tekniikan puolesta lähettää vaikka osakekurssejakin. :slight_smile:

Projektin talous on taattu nyt kahdelle ensimmäiselle kuukaudelle, eli Kryptoradio on ilmassa 1.9.-31.10. välisenä aikana. Rahoittajia on tavattu, mutta ei vielä mitään lyöty lukkoon, joten jatkossakin voi lähestyä näillä asioilla. Tavoitteena olisi rahoittaa ensimmäisen vuoden tuotekehitys ja jakelu.

Radioamatöörejä ja kuunteluharrastajia varten on tulossa QSL-kortteja! Niitä saa kaappaamalla signaalia ja lähettämällä keräämänsä avainsanat meille, jonka jälkeen postitamme kortin. Erityismainintoja saa eriskummallisista tai haastavista vastaanottopaikoista. Vinkki: lähetys kantaa jonkin verran myös Suomen rajojen ulkopuolelle! Tarkemmat ohjeet QSL-korteista tulevat myöhemmin.

Ohjelmoijat ja rakentelijat huomio! Sunnuntaina 7.9. klo 10 alkaen järjestetään Helsingissä Lasipalatsin yläkerrassa (Kaupunkiverstas) kehittäjien tapaaminen. Ilmoittautuminen Facebookissa https://www.facebook.com/events/520033624766134 tai erillisellä lomakkeella https://docs.google.com/forms/d/1wfBlZDRrpDJYHJMq-I7wvm_fFJaWgsu4yltsRY90HCg. Tapahtumia voidaan järjestää muuallakin päin Suomea jos innokkaita järjestäjiä ilmenee. Koitetaan saada myös dokumentaatio ajan tasalle siihen mennessä. :slight_smile:

Lisää kuulumisia tässä langassa. Myös Koodilehdon Facebook-sivulta osoitteesta http://facebook.com/koodilehto saa tilannepäivityksiä.

Saitteko systeemin käyntiin?

Kyllä! Lähetys on varmistettu toimivaksi Jyväskylän ja Espoon lähettimien alueella. Dataa virtaa tällä hetkellä E-multipleksin PID:ssä 8101 :slight_smile: Datan tunnistaa helposti zlibin synkronointiviesteistä, eli 00 00 00 FF FF -tavuja pitäisi näkyä siellä aina kun ei muuta liikennettä ole.

Data sisältää tällä hetkellä pelkästään Bitcoin-transaktioita ja blokkeja. Tarkemmat speksit protokollasta tulevat myöhemmin. Nykyinen lähetin on GitHubissa oleva versio. Jossakin vaiheessa tänään tai huomenna teemme viivetestausta ja lähetämme sitten toista signaalia. Jossakin vaiheessa tällä viikolla on odotettavissa lopullisempaa lähetysformaattia käyttävä lähetys.

Viivetestien jälkeen pystymme vastaamaan siihen maailmankaikkeuden tärkeimpään kysymykseen, eli Valvoja, paljonx viive? :smiley:

Hienoa. Ja kiitoksia! Tämä on mahtava projekti.

Täytyypä alkaa virittelemään antenneja :slight_smile: