March 2010 April 2010 May 2010 June 2010 July 2010
August 2010
September 2010 October 2010
November 2010
December 2010
January 2011
February 2011 March 2011 April 2011 May 2011 June 2011 July 2011 August 2011 September 2011 October 2011 November 2011 December 2011 January 2012 February 2012 March 2012 April 2012 May 2012 June 2012 July 2012 August 2012 September 2012 October 2012 November 2012 December 2012 January 2013 February 2013 March 2013 April 2013 May 2013 June 2013 July 2013 August 2013 September 2013 October 2013 November 2013 December 2013 January 2014 February 2014 March 2014 April 2014 May 2014 June 2014 July 2014 August 2014 September 2014 October 2014 November 2014 December 2014 January 2015 February 2015 March 2015 April 2015 May 2015 June 2015 July 2015 August 2015 September 2015 October 2015 November 2015 December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016 October 2016 November 2016 December 2016 January 2017 February 2017 March 2017 April 2017 May 2017 June 2017 July 2017 August 2017 September 2017 October 2017 November 2017 December 2017 January 2018 February 2018 March 2018 April 2018 May 2018 June 2018 July 2018 August 2018 September 2018 October 2018 November 2018 December 2018 January 2019 February 2019 March 2019 April 2019 May 2019 June 2019 July 2019 August 2019 September 2019 October 2019 November 2019 December 2019 January 2020 February 2020 March 2020 April 2020 May 2020 June 2020 July 2020 August 2020 September 2020 October 2020 November 2020 December 2020 January 2021 February 2021 March 2021 April 2021 May 2021 June 2021 July 2021 August 2021 September 2021 October 2021 November 2021 December 2021 January 2022 February 2022 March 2022 April 2022 May 2022 June 2022 July 2022 August 2022 September 2022 October 2022 November 2022 December 2022 January 2023 February 2023 March 2023 April 2023 May 2023 June 2023 July 2023 August 2023 September 2023 October 2023 November 2023 December 2023 January 2024 February 2024 March 2024 April 2024
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
21
22
23
24
25
26
27
28
29
30
News Every Day |

US Press Freedom Tracker Data now available on the decentralized web via IPFS

The U.S. Press Freedom Tracker, where we attempt to document virtually every press freedom violation in the country, has, for some time, made available its database of thousands of incidents for export via the API. We want all the data we’ve collected over the past five years to be available to journalists, advocates, and policy makers for their own analysis.

As an organization committed to helping journalists resist censorship and ensure information remains free, we’ve recently been exploring how we can use the decentralized web, and in particular IPFS, to more permanently store the vast wealth of information now on the Tracker. IPFS, for the uninitiated, is an innovative means to distribute data in a way that doesn’t depend on centralized infrastructure (such as a website).

In some ways similar to torrents, files shared on the IPFS network are mirrored among many nodes. This makes it a protocol particularly resistant to censorship or deletion, and may have other qualities significant to journalists as the internet evolves over time.

To this end, as a proof of concept, we’ve now published the Press Freedom Tracker’s incident database on IFPS. (You can, of course, still use the website API as well). You can view the database at this IPNS ID:

ipns://k51qzi5uqu5dlnwjrnyyd6sl2i729d8qjv1bchfqpmgfeu8jn1w1p4q9x9uqit

You can view the ID via an IPFS web gateway, such as the one provided by Cloudflare, via a browser extension like IPFS Companion, or via another IPFS client. The file is updated about every hour (more on that below), so you can ensure that the dataset you are downloading is the most current.

ipfs.png

US Press Freedom Tracker data via IPFS, as viewed in Brave Browser.

A technical deep-dive into IPFS, IPNS, and keeping track of changes to the database

IPFS is an interesting protocol because its content identifiers (CIDs) or ‘hashes’ are cryptographically computed from the content of the file, not its name or other metadata.

This means that every time the file’s content changes, publishing it in IPFS gets a new CID.

There is nothing in the protocol that maintains any sort of ‘revision’ relationship between the old CID and the new one. It is up to the publisher to keep track of old versions of the file (if that’s important to them). Equally, it’s up to the publisher to tell people which CID is the new one, but it would be annoying to have to keep announcing new CIDs every time the file changes.

For this reason, the ID above is an ‘IPNS’ ID, which always points to the latest version of the folder and its contents, without itself ever having to change. IPNS is a little bit like DNS, in that it’s a sort of static ‘alias’ or pointer to another destination - in this case, the latest IPFS CID of the directory.

To maintain a sort of ‘revision’ log of changes to the incidents.csv database (and when it changed), we also publish a changelog file (incidents-log.csv) which shows the previous CIDs and a timestamp of when they were published. The last line in the file is always the latest version of the incidents.csv. You can also fetch the latest file directly (rather than view the directory) by using the IPNS hash, for example:

ipns://k51qzi5uqu5dlnwjrnyyd6sl2i729d8qjv1bchfqpmgfeu8jn1w1p4q9x9uqit/incidents.csv

Feel free to look at older CIDs to see the difference, or to consult the file to find out when the latest version was published.

How often is the data published to IPFS?

We attempt to publish the latest copy of the database to IPFS every hour, but realistically the database itself changes far less frequently. The database is only published (and the changelog updated) if its content changes.

Care to share some code?

We initially tried to use what seems to be the official Python library for working with the IPFS API, but found that it doesn’t seem to support the most recent releases of go-ipfs, and is possibly semi-abandoned.

Fortunately, the go-ipfs service provides its own HTTP RPC API, so we could use Python’s requests module to talk to it.

Publishing a single file to the IPFS API is quite easy, and there are simple examples of how to do it. However, it turns out that publishing a directory containing files was a little more tricky to achieve.

It took a bit of trial and error to work out how to send multiple files in a multipart request with the right tuple values per file, in a way that matched the IPFS API’s documentation, but we got there.

For those curious, here’s a sample of what worked for us. Happy hacking!

If you’re looking to install IPFS on a Linux server, we used an Ansible role for that, which worked great.

Симферополь

Дело о гибели журналистки Бабаевой в Крыму дошло до суда

'Sticking his thumb in the judge's face': Michael Cohen says $1k gag order fines are joke

Cyprus Closed Chess Championship names winners

Четвертый том в серии ко Дню космонавтики

Trump trial: Jury selection to resume in New York City for 3rd day in former president's trial

Ria.city






Read also

Border state lawmaker sounds alarm on bloodthirsty Venezuelan gang entering US: ‘They have no rules’

2 men whacked stranger with bat on Queens street: NYPD

Jury selection could conclude on day 4 of Trump’s hush money trial: Live updates

News, articles, comments, with a minute-by-minute update, now on Today24.pro

News Every Day

Четвертый том в серии ко Дню космонавтики

Today24.pro — latest news 24/7. You can add your news instantly now — here


News Every Day

Life On The Green: Jack Nicklaus, golf legends impart wealth of wisdom in Ann Liguori’s new book



Sports today


Новости тенниса
Уимблдон

Рыбакина призналась, что её жизнь сильно изменилась после победы на Уимблдоне



Спорт в России и мире
Москва

Like FM – федеральный партнер релиза «Идеальная зависимость»



All sports news today





Sports in Russia today

Москва

Эксперт Президентской академии в Санкт-Петербурге об эффективности программ по формированию здорового образа жизни  


Новости России

Game News

Amanita Design выпустила Pilgrims на iOS и Android в обход Apple Arcade


Russian.city


Москва

В РФ стартует акция «Юный искусствовед», помогающая раскрыть творческий потенциал учащихся


Губернаторы России
Сергей Собянин

Собянин обозначил основные направления развития здравоохранения


Подключение водонагревателя в Московской области

Рыльце в пыльцу: когда в Москве ожидается пик цветения

Концерт в честь Дня труда прошел в Красногорске

В России научились остановить кровь за 15 секунд


Концерт "Орган. TOP 10. Величайшие сочинения" в Петрикирхе

«Вспыльчивый очень»: Лоза объяснил агрессивное поведение Лепса на концерте

Элтон Джон, Баста, Райан Рейнольдс, Натали Портман — собственники футбольных клубов

Концертный Директор в тарифе Maxi.


Соперница Арины Соболенко разрыдалась на плече белоруски

Сафиуллин не смог выйти во второй круг турнира ATP в Барселоне

Бадоса из-за травмы снялась с матча против Соболенко и заплакала у сетки

Полина Кудерметова проиграла Плишковой в первом круге турнира WTA в Руане



Эксперт Президентской академии в Санкт-Петербурге об эффективных решениях в дорожном строительстве   

Подключение водонагревателя в Московской области

Эксперт Президентской академии в Санкт-Петербурге об эффективных решениях в дорожном строительстве   

Like FM – федеральный партнер релиза «Идеальная зависимость»


Выставка достижений народного хозяйства (ВДНХ) отпраздновала “День Космонавтики”

«Ростов» и «Динамо» продолжают борьбу за Кубок! «Оренбургу» и «Уралу» осталось выживать?

Кинопоиск показал тизер-трейлер сериала «Игры» об организации Олимпиады-80

Выставка достижений народного хозяйства (ВДНХ) отпраздновала “День Космонавтики”


Детский сад № 46 в поселке Глебовский отремонтируют к июлю

«Новые люди» объединились с «Партией роста»: как это отразится на политической ситуации в Чувашии

Крупные заводы по рециклингу полимеров открыли в Егорьевске

Число вакансий для работающих из дома увеличилось в России почти в полтора раза



Путин в России и мире






Персональные новости Russian.city
Виктор Тепляков

Депутат ЗСК Виктор Тепляков принял участие в заседании регионального совета проекта «Чистая страна»



News Every Day

Life On The Green: Jack Nicklaus, golf legends impart wealth of wisdom in Ann Liguori’s new book




Friends of Today24

Музыкальные новости

Персональные новости