Bitcoin Forum
June 22, 2024, 02:17:17 AM *
News: Voting for pizza day contest
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: [идея][DataCoin] каталог торрентов + демо  (Read 873 times)
dlightman (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
February 05, 2014, 10:12:52 PM
Last edit: February 06, 2014, 05:56:43 PM by dlightman
 #1

Привет!

Я тут читал, думал, думал и, вот, придумал:

Идея:
Создать каталог торрент-файлов на базе DataCoin.

Зачем:
Чтобы каталог торрентов был всегда доступен. Даже в случае недоступности основных торрент-ресурсов. Вдруг у них там ошибка 502.

Для пользователя, который решил скачать какой-то торрент, это будет выглядеть так:

1. запустил datacoin-qt и datacoin-http сервер. Оба они свернулись в трей и больше не чирикают. Или зашёл на какой-нибудь DataCoin http сервер в сети.
2. открыл список торрентов в браузере по адресу http://localhost/dtc/get/адрес-приложения-поисковика-торрентов-которое-мы-тут-с-вами-напишем.
3. выбрал описание, нажал на ссылку, браузер скачал .torrent файл, Torrent-клиент его открыл, пошёл искать источники своими силами и начал качать. Это уже без нашей помощи.

Таким образом, для пользователя (в худшем случае) добавляется один дополнительный шаг - это запуск DataCoin софта (я очень надеюсь, что разработчики DataCoin работают над тем, чтобы это было не так мучительно, как сейчас). После этого он пользуется своим обычным браузером и своим обычным Torrent-клиентом. В самом лучшем случае datacoin-http сервера будут установлены на многих сайтах и можно будет зайти туда ничего не устанавливая. Мечтаем дальше.

Как это сделать:

Мало заслать в блокчейн .torrent файл, т.к. сами по себе .torrent файлы не содержат даже названия того ресурса, который с их помощью скачивается. Дополнительно к ним нужно добавить метаинформацию о фильме/книге/софте. Поскольку два файла в Datacoin-транзакцию помещать неудобно (нет api для одновременной отправки нескольких файлов), то .torrent и метаиформацию можно разместить в двух последовательных транзакциях.

В качестве формата для метаинформации (чтобы не изобретать велосипед) можно использовать словарь schema.org (который для вебмастеров от Гугла и Яндекса) в формате json-ld. В schema.org есть более чем избыточный набор "тегов" для описания фильмов и т.д. В этом формате метаинформация может выглядеть, например, вот так:

{
  "@context": { "@vocab": "http://schema.org/" },
  "@type": "Movie",
  "name": [{ "@value": "Star Wars 115 (Creative Commons Edition)", "@language": "en" }],
  "sameAs": "http://en.wikipedia.org/wiki/Star_Wars_115",
  "datePublished": "2015-04-01",
  "genre": "drama / comedy / horror",
  "description": "Тайная группа фанатов звёздных войн выложила, наконец, очередной эпизод сериала.",
  "director": [{ "@type": "Person", "givenName": "Иван", "familyName": "Паравозов" }],
  "publishingPrinciples": "http://creativecommons.org/licenses/by-sa/4.18/",
  "video": [{
    "@type": "VideoObject",
    "name": [{ "@value": "Star Wars 115", "@language": "en" }],
    "contentSize": "4.33 GiB",
    "uploadDate": "2015-04-02",
    "contentUrl": "c31f7f8bdcecbb218935da3eac937c77e48a6e4d37c1d2624c2f54acea9de62b"
  }]
}

Таким образом, публикация торрента в DataCoin будет выглядеть следующим образом:

1. Положить в DataCoin myfilm.torrent и записать id траназкции
2. Составить myfilm.jsonld, вписать туда
  - описание фильма
  - id транзакции с .torrent файлом
3. Положить в DataCoin myfilm.jsonld

Приложение, ищущее торренты в блокчейне, ищет среди всех файлов те, у которых проставлен Content-Type:application/json+ld и отображать их список или как-то ещё искать по ним. Если не будет хватать данных в json+ld описании (например, ищем по актёру, а имена актёров не перечислены), то это же приложение может сходить в DBpedia, imdb или в Википедию по указанным ссылкам и догрузить недостающее. Это, собственно, к тому, что поле "sameAs" тут не для красоты, а описание можно делать довольно коротким, т.к. вся необходимая инфа для поиска в сети уже есть и вряд ли куда-то денется. Чего нельзя сказать о торрент сайтах, которые могут стать недоступны вне зависимости от легальности раздаваемого там. Я к тому, что и вполне законопослушный ресурс может пасть смертью храбрых, например, под DDoSом. А для пользователя важна надёжность.

Само по себе приложение я предлагаю сделать по аналогии с block explorer ( http://ec2-54-201-144-165.us-west-2.compute.amazonaws.com/dtc/get/40a3eb9624528008a87d9119dbed4041d45c9f6483ecd52a7b24f9c8b4fdf548 ), который предложил oocook5u (разработчик Datacoin). Это чисто HTML/JavaScript страница, которая читает цепочку блоков через HTTP шлюз к стандартному JSON-RPC API. Ну, короче, эту часть в его постах я, вроде понял, и, при необходимости, я могу объяснить подробно любому веб-программисту.

Для того, чтобы мотивировать пользователей заливать туда торренты, надо будет сделать возможность послать монетку на тот адрес, с которого торрент-файл был залит или на какой-нибудь специальный адрес, связанный с конкретным торрентом (указывать в .jsonld?). Для этого, правда, нужно, чтобы разблокировали комиссию. Для такой формы оплаты она, наверное, высоковата. Суммы на этих адресах можно будет далее учитывать при ранжировании списка (или не стоит?).

Аналогичным образом, можно включать адрес для donation правообладателю в .jsonld и подписывать этот адрес всем известным закрытым ключом этого правообладателя. Т.е. вопрос легальности раздачи касается только двоих: отправляющего и скачивающего. Наша задача - предоставить им возможность обменяться информацией так, чтобы они друг друга однозначно поняли. Подпись адреса для donation правообладателем - это способ сообщить скачивающему о легальности раздачи. Или, по крайней мере, о точке зрения правообладателя на вопрос легальности (может же и врать).

Короче, если вам показалось, что я тут пишу про пиратство, то это не так. Я тут скорее про возможность пообщаться без посредников. Я верю, что, однажды, случится день, когда мы все станем достаточно взрослыми, чтобы такая форма взаимодействия была для нас оптимальной. Теперь возвращаемся к техническим вопросам.

Что именно нужно сделать:

- приложение-поисковик торрентов (то, чем будут пользоваться 99% причастных, которые ничего не публикуют, а только скачивают)
  Я сейчас переделывают тот block explorer. Из этого получится как минимум прототип с основными функциями. Но интерфейс у него уродский. Поэтому я ищу дизайнера, который нарисовал бы классный интерфейс и программиста, который бы его закодил.

- приложение-загрузчик торрента и его описания в DataCoin
  Это можно сделать на основе кода из репозитория DataCoin (который на Perl). Или в виде отдельного Qt приложения, которое общается с DataCoin-демоном по JSON-RPC. Для Qt приложения нужен Qt программист.

Программа-максимум:

- краудфандинговый сайт-загрузчик торрентов
  Поскольку отправка файлов в блокчейн приводит к трате монет, а загружающий, в общем случае, не обязан тратить монеты, то возможен ещё и такой сценарий:
  - Пользователь загружает на сайт .torrent и .jsonld
  - На сайте создаётся отдельный DataCoin адрес для пожертвований за то, чтобы включить этот торрент-файл в блокчейн. Известна необходимая сумма комиссии за включение файла в цепочку. Когда пожертвований набирается достаточное количество, то сайт автоматически отсылает оба файла в блокчейн.
  Это чуть сложнее, чем всё предыдущее. Кто умеет и хочет взяться за это?

Ну, и вообще, что думаете?
Может быть кто-то уже делает что-то подобное?

Подробности про идеи DataCoin от его создателя (англ.):
[1] Основная ветка https://bitcointalk.org/index.php?topic=325735.0
[2] Про block explorer и приложения в blockchain https://bitcointalk.org/index.php?topic=405992.0
dlightman (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
February 06, 2014, 05:46:44 PM
 #2


Демо-версия поисковика живёт в тест-нете в транзакции ad4f39667cbdccc51da2bdbe857e036d62ee6240005d554ac614cddf8f1cc20d .

Т.е. путь dtc-testnet/get/ad4f39667cbdccc51da2bdbe857e036d62ee6240005d554ac614cddf8f1cc20d на любом DataCoin http сервере.

Он будет сканировать цепочку сверху вниз. Примеры живут в блоках 21332, 21371, 21372. Ниже 21332 ничего интересного нет. Т.е. сканер лучше остановить кнопкой, когда он пойдёт ниже, особенно, если вы будете пробовать это делать через сеть.

Интерфейс остался от браузера блокчейна (код, собственно, оттуда же).

Сегодня на хабре годный пост про семантическую разметку, в частности, про заюзанную тут schema.org :
http://habrahabr.ru/company/yandex/blog/211638/
yurm
Full Member
***
Offline Offline

Activity: 216
Merit: 100


View Profile
February 06, 2014, 09:40:29 PM
 #3

Такой каталог можно организовать на базе namecoin. Т.е. регистрировать там имена типа "magnet:?xt=urn:btih:<hash>", а в качестве value записывать метаинформацию. Ну и сам .torrent-файл не нужен ни в моём, ни в вашем варианте, разве что вы захотите таким образом распространять private-торренты (а нужна ли в таком случае децентрализация? Private-торренты как раз и создавались для невозможности поиска пиров мимо трекера).

BTC donation:1DPUVJWeN2CNgJvRx5MtbsYWnFsKHxXWrc
dlightman (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
February 06, 2014, 10:38:21 PM
 #4

Такой каталог можно организовать на базе namecoin. Т.е. регистрировать там имена типа "magnet:?xt=urn:btih:<hash>", а в качестве value записывать метаинформацию. Ну и сам .torrent-файл не нужен ни в моём, ни в вашем варианте, разве что вы захотите таким образом распространять private-торренты (а нужна ли в таком случае децентрализация? Private-торренты как раз и создавались для невозможности поиска пиров мимо трекера).

Спасибо. Это интересно.

В NameCoin имена регистрируются на время (по крайней мере в неймспейсе d/). Потом их же нужно обновлять?

Правильно ли я понимаю, что вы имеете ввиду, что по magnet ссылке торрент клиент сам найдёт .torrent файл у своих соседей?
yurm
Full Member
***
Offline Offline

Activity: 216
Merit: 100


View Profile
February 07, 2014, 12:00:45 AM
 #5

В NameCoin имена регистрируются на время (по крайней мере в неймспейсе d/). Потом их же нужно обновлять?
В неймспейсе d/ — доменные имена из зоны .bit, сам же namecoin в регистрируемых именах никак не ограничен, это просто механизм записи в отдельный блокчейн произвольных комбинаций name:value (можно, например, в качестве имени хэш документа зарегистрировать для proof of existence).
Обновлять — в принципе да, хотя можно и без этого обойтись (например, для каждого имени, начинающегося с "magnet:?xt=urn:btih:", корректной будет считаться только первая запись).
Правильно ли я понимаю, что вы имеете ввиду, что по magnet ссылке торрент клиент сам найдёт .torrent файл у своих соседей?
Да, magnet-ссылки для этого и предназначены (<хэш> в такой ссылке — это не что иное, как sha1-хэш ключевой информации из .torrent-файла).

BTC donation:1DPUVJWeN2CNgJvRx5MtbsYWnFsKHxXWrc
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!