Ivanech (OP)
|
|
December 24, 2017, 11:23:30 AM |
|
Прошу помощи - подскажите, как лучше всего организовать периодическое снятие снэпшотов распределения ERC20 токенов на Ethereum?
Задача простая: нужно по состоянию сети Ethereum на определённый блок получить для выбранного токена ERC20 информацию о том, на каких аккаунтах и в каком количестве находятся эти токены.
Т.е. у кого и сколько токенов строго по состоянию на нужный блок.
Есть ли какие-то готовые инструменты для этого? Если нет - куда смотреть?
|
|
|
|
|
|
|
Bitcoin mining is now a specialized and very risky industry, just like gold mining. Amateur miners are unlikely to make much money, and may even lose money. Bitcoin is much more than just mining, though!
|
|
|
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
|
|
mrkahharov
|
|
December 30, 2017, 07:34:33 PM |
|
Прошу помощи - подскажите, как лучше всего организовать периодическое снятие снэпшотов распределения ERC20 токенов на Ethereum?
Задача простая: нужно по состоянию сети Ethereum на определённый блок получить для выбранного токена ERC20 информацию о том, на каких аккаунтах и в каком количестве находятся эти токены.
Т.е. у кого и сколько токенов строго по состоянию на нужный блок.
Есть ли какие-то готовые инструменты для этого? Если нет - куда смотреть?
Класс, как раз мне тоже интересно)
|
|
|
|
Coin-1
Legendary
Offline
Activity: 2450
Merit: 2190
|
|
January 01, 2018, 11:47:22 PM Last edit: October 02, 2018, 08:17:50 PM by Coin-1 |
|
Прошу помощи - подскажите, как лучше всего организовать периодическое снятие снэпшотов распределения ERC20 токенов на Ethereum?
Задача простая: нужно по состоянию сети Ethereum на определённый блок получить для выбранного токена ERC20 информацию о том, на каких аккаунтах и в каком количестве находятся эти токены.
Т.е. у кого и сколько токенов строго по состоянию на нужный блок.
Есть ли какие-то готовые инструменты для этого? Если нет - куда смотреть?
Как вариант, можно мониторить все ETH-кошельки, на которые когда-либо передавались эти ERC20-токены.
|
|
|
|
TechPriest
Sr. Member
Offline
Activity: 377
Merit: 282
Finis coronat opus
|
|
January 02, 2018, 11:38:47 AM |
|
Вариант такой: задавать программно количество блоков через которые будет происходить снапшот. 1. Программа берет блок, на котором должен состояться фикс. И парсит все utxo ДО этого блока. Потом идут какие то уже действия. На втором снапшоте берем уже промежуток от снапшота 2, и вниз до снапшота 1 (здесь я имею ввиду блоки на которых они зафиксированы) и так далее. Если нужно проверять лежат ли коины на конкретных адресах, то лучше не делать снапшоты а время от времени парсить эти самые адреса на предмет потраченых выходов.
|
In science we trust!
|
|
|
yokotoka
Member
Offline
Activity: 126
Merit: 23
|
|
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 эфира, вроде есть.
|
|
|
|
densmirnov
|
|
January 08, 2018, 07:38:21 AM |
|
Можно использовать что-то типа этого, скармливая ему локальные снэпшоты блокчейна.
|
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ᴅᴇᴠᴇʟᴏᴘ ᴄᴜsᴛᴏᴍ ᴅᴇᴄᴇɴᴛʀᴀʟɪᴢᴇᴅ ʙʟᴏᴄᴋᴄʜᴀɪɴ ᴀᴘᴘʟɪᴄᴀᴛɪᴏɴs in ᴊᴀᴠᴀsᴄʀɪᴘᴛ with ʟɪsᴋ! ⎋ ᴡᴇʙsɪᴛᴇ 🇺🇸 • ⎋ ʙʟᴏɢ 🇺🇸 • ⎋ ᴄʜᴀᴛ 🇺🇸 • ⎋ ғᴀᴄᴇʙᴏᴏᴋ 🇷🇺 • ⎋ ᴠᴋ 🇷🇺 • ⎋ ᴛᴡɪᴛᴛᴇʀ 🇷🇺 • Be part of the decentralized application movement!▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
|
|
|
AdeptEthereumStocks
Newbie
Offline
Activity: 84
Merit: 0
|
|
January 10, 2018, 07:43:18 PM |
|
В нашем проекте решили эту проблему следующим образом: Нам необходимо иметь массив всех адресов с нашими токенами. Если мы хотим решить эту задачу без привлечения оракулов( или внешней обработки, а лишь инструментами смарт контракта) Нам необходимо в функцию mint - если ваш токен подразумевает выпуск и функцию transfer добавить дополнительный массив address[] public invstors_adrees; И при выпуске токенов или при трансфере проверяем нет ли адреса в масиве и если нету добавляем. Можете делать проверку на исключение итд как пожелаете, но проще без проверки т.к. у вас тогда будет полная база, всех кто использовал ваши токены. invstors_adrees.push(_address) -1;
И функцию начисления может перебрать адреса прям в смарт контракте, поскольку мы при сканировании не изменяем переменные и сам блокчейн это не сильно газозатратно. Плюс наше dApps обращаясь к этому массиву может легче парсить без реализации дополнительного функционала отслеживания перевода посредством парсенья блоков.
|
|
|
|
Pro100Sany
Newbie
Offline
Activity: 7
Merit: 0
|
|
January 16, 2018, 09:12:16 PM |
|
Добрый вечер, заинтересовала эта тема, а что такое снепшоты?
|
|
|
|
AristoteI
Member
Offline
Activity: 574
Merit: 12
|
|
January 20, 2018, 11:59:27 PM |
|
Добрый вечер, заинтересовала эта тема, а что такое снепшоты?
Снэпшот, это моментальный "снимок" сети. Информация о кошельках и наличествующих в данных кошельках средствах на такой-то момент времени в какой-либо сети конкретной монеты. Отпечаток информационный одним словом.
|
|
|
|
hotbit
|
|
February 09, 2018, 09:49:07 PM |
|
Добрый вечер, заинтересовала эта тема, а что такое снепшоты?
Снэпшот, это моментальный "снимок" сети. Информация о кошельках и наличествующих в данных кошельках средствах на такой-то момент времени в какой-либо сети конкретной монеты. Отпечаток информационный одним словом. А для этого есть какое-то особенное программное обеспечение или как это практически делается?
|
|
|
|
pofigist
|
|
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'ы.
|
|
|
|
|