Bitcoin Forum

Local => Токены => Topic started by: Ivanech on December 24, 2017, 11:23:30 AM



Title: Снять снэпшот токенов на Ethereum
Post by: Ivanech on December 24, 2017, 11:23:30 AM
Прошу помощи - подскажите, как лучше всего организовать периодическое снятие снэпшотов распределения ERC20 токенов на Ethereum?

Задача простая: нужно по состоянию сети Ethereum на определённый блок получить для выбранного токена ERC20 информацию о том, на каких аккаунтах и в каком количестве находятся эти токены.

Т.е. у кого и сколько токенов строго по состоянию на нужный блок.

Есть ли какие-то готовые инструменты для этого? Если нет - куда смотреть?


Title: Re: Снять снэпшот токенов на Ethereum
Post by: mrkahharov on December 30, 2017, 07:34:33 PM
Прошу помощи - подскажите, как лучше всего организовать периодическое снятие снэпшотов распределения ERC20 токенов на Ethereum?

Задача простая: нужно по состоянию сети Ethereum на определённый блок получить для выбранного токена ERC20 информацию о том, на каких аккаунтах и в каком количестве находятся эти токены.

Т.е. у кого и сколько токенов строго по состоянию на нужный блок.

Есть ли какие-то готовые инструменты для этого? Если нет - куда смотреть?


Класс, как раз мне тоже интересно)


Title: Re: Снять снэпшот токенов на Ethereum
Post by: Coin-1 on January 01, 2018, 11:47:22 PM
Прошу помощи - подскажите, как лучше всего организовать периодическое снятие снэпшотов распределения ERC20 токенов на Ethereum?

Задача простая: нужно по состоянию сети Ethereum на определённый блок получить для выбранного токена ERC20 информацию о том, на каких аккаунтах и в каком количестве находятся эти токены.

Т.е. у кого и сколько токенов строго по состоянию на нужный блок.

Есть ли какие-то готовые инструменты для этого? Если нет - куда смотреть?

Как вариант, можно мониторить все ETH-кошельки, на которые когда-либо передавались эти ERC20-токены.


Title: Re: Снять снэпшот токенов на Ethereum
Post by: TechPriest on January 02, 2018, 11:38:47 AM
Вариант такой: задавать программно количество блоков через которые будет происходить снапшот.
1. Программа берет блок, на котором должен состояться фикс. И парсит все utxo ДО этого блока. Потом идут какие то уже действия.
На втором снапшоте берем уже промежуток от снапшота 2, и вниз до снапшота 1 (здесь я имею ввиду блоки на которых они зафиксированы) и так далее.
Если нужно проверять лежат ли коины на конкретных адресах, то лучше не делать снапшоты а время от времени парсить эти самые адреса на предмет потраченых выходов.


Title: Re: Снять снэпшот токенов на Ethereum
Post by: yokotoka on January 03, 2018, 05:19:20 AM
Прошу помощи - подскажите, как лучше всего организовать периодическое снятие снэпшотов распределения ERC20 токенов на Ethereum?

Задача простая: нужно по состоянию сети Ethereum на определённый блок получить для выбранного токена ERC20 информацию о том, на каких аккаунтах и в каком количестве находятся эти токены.

Т.е. у кого и сколько токенов строго по состоянию на нужный блок.

Есть ли какие-то готовые инструменты для этого? Если нет - куда смотреть?

1. Можно через web3.js запрашивать метод balanceOf() у контракта, хранящего токены. Но т.к. там структура, которая хранит только хеши адресов - нужно знать адреса контрактов, на которые токены передавались. Это гемор. Поэтому рекомендую второй путь.
2. ERC20-токены генерят событие Transfer(address indexed from, address indexed to, uint tokens)
Можно проиндексировать блокчейн на предмет этих event'ов и записать себе куда-нибудь (в SQL-базу, например), и уже по ней запросы делать - блокчейн не изменится, только новые записи докидывать. Чем конкретно распарсить event'ы сейчас не подскажу, но в api эфира, вроде есть.


Title: Re: Снять снэпшот токенов на Ethereum
Post by: densmirnov on January 08, 2018, 07:38:21 AM
Можно использовать что-то типа этого (https://github.com/hunterlong/tokenbalance), скармливая ему локальные снэпшоты блокчейна.


Title: Re: Снять снэпшот токенов на Ethereum
Post by: AdeptEthereumStocks on January 10, 2018, 07:43:18 PM
В нашем проекте решили эту проблему следующим образом:
Нам необходимо иметь массив всех адресов  с нашими токенами.
Если мы хотим решить эту задачу без привлечения оракулов( или внешней обработки, а лишь инструментами смарт контракта)
Нам необходимо в функцию mint - если ваш токен подразумевает выпуск и функцию transfer добавить  дополнительный массив
Quote
  address[] public invstors_adrees;
И при выпуске токенов или при трансфере проверяем нет ли адреса в масиве и если нету добавляем. Можете делать проверку на исключение итд как пожелаете, но проще без проверки т.к. у вас тогда будет полная база, всех кто использовал ваши токены.
Quote
invstors_adrees.push(_address) -1; 
И функцию начисления может перебрать адреса прям в смарт контракте, поскольку мы  при сканировании не изменяем переменные и сам блокчейн это не сильно газозатратно.
Плюс наше dApps  обращаясь к этому массиву может легче парсить без реализации дополнительного функционала отслеживания перевода  посредством парсенья блоков.


Title: Re: Снять снэпшот токенов на Ethereum
Post by: Pro100Sany on January 16, 2018, 09:12:16 PM
Добрый вечер, заинтересовала эта тема, а что такое снепшоты?


Title: Re: Снять снэпшот токенов на Ethereum
Post by: AristoteI on January 20, 2018, 11:59:27 PM
Добрый вечер, заинтересовала эта тема, а что такое снепшоты?
Снэпшот, это моментальный "снимок" сети. Информация о кошельках и наличествующих в данных кошельках средствах на такой-то момент времени в какой-либо сети конкретной монеты. Отпечаток информационный одним словом.


Title: Re: Снять снэпшот токенов на Ethereum
Post by: hotbit on February 09, 2018, 09:49:07 PM
Добрый вечер, заинтересовала эта тема, а что такое снепшоты?
Снэпшот, это моментальный "снимок" сети. Информация о кошельках и наличествующих в данных кошельках средствах на такой-то момент времени в какой-либо сети конкретной монеты. Отпечаток информационный одним словом.
А для этого есть какое-то особенное программное обеспечение или как это практически делается?


Title: Re: Снять снэпшот токенов на Ethereum
Post by: pofigist on February 13, 2018, 01:06:47 PM
Прошу помощи - подскажите, как лучше всего организовать периодическое снятие снэпшотов распределения ERC20 токенов на Ethereum?

Задача простая: нужно по состоянию сети Ethereum на определённый блок получить для выбранного токена ERC20 информацию о том, на каких аккаунтах и в каком количестве находятся эти токены.

Т.е. у кого и сколько токенов строго по состоянию на нужный блок.

Есть ли какие-то готовые инструменты для этого? Если нет - куда смотреть?

1. Можно через web3.js запрашивать метод balanceOf() у контракта, хранящего токены. Но т.к. там структура, которая хранит только хеши адресов - нужно знать адреса контрактов, на которые токены передавались. Это гемор. Поэтому рекомендую второй путь.
2. ERC20-токены генерят событие Transfer(address indexed from, address indexed to, uint tokens)
Можно проиндексировать блокчейн на предмет этих event'ов и записать себе куда-нибудь (в SQL-базу, например), и уже по ней запросы делать - блокчейн не изменится, только новые записи докидывать. Чем конкретно распарсить event'ы сейчас не подскажу, но в api эфира, вроде есть.
А разве event'ы записываются в блокчейн, вроде event'ы пишутся в лог-файлы? Ну это не столь важно, в смарт контрактах не обязательно что будут генерировать event, и поэтому не стоит полагаться на event'ы.