These are chat archives for cyberFund/cyber.fund

2nd
Apr 2016
Konstantin Lomashuk
@lomashuk
Apr 02 2016 18:55
@21xhipster @tomarcafe Не показывает 1d change
на главной
angelo
@tomarcafe
Apr 02 2016 22:24
@lomashuk должно починиться , т к скорее всего связано с тем, что у нас сутки не было данных
думаю про ведение истории портфелей.
angelo
@tomarcafe
Apr 02 2016 22:32

с точки зрения организации данных - выделю счета в отдельный тип документов, к пользователю будут привязаны по userId. структура хранения текущего состоянии немножко поменяется.

получается вот что: отдельный документ на уровне аккаунта
userId: link to user document, private/public: boolean, name: string, adresses: object, with addresses as keys - тут структуру данных наверное менять и не захочется.
добавляется log: array of logItems - кто такой logitem еще не ясно

angelo
@tomarcafe
Apr 02 2016 22:43

какие поля будут точно
--- timestamp,

--- action [
------создание аккаунта///
------переименование аккаунта (не факт что переименование интересно отслеживать - но мало ли - если пользователи в перспективе будут пользоваться системой для предоставления друг дружке каких-то пруфов (с работающим автообновлением - очень может быть) - то может и захотеться отслеживать переименование ) ///
-------удаление аккаунта(с удалением вопрос - в том смысле что мы при просмотре истории либо показываем удаленный аккаунт - историю баланса на нём, либо нет - умерла так умерла - либо показываем владельцу. лично я склоняюсь к тому, чтоб удаленный аккаунт выпиливать насовсем. не забудь что код у нас открытый - так что хитрить не выйдет никак )///
-------добавление адреса///удаление адреса
///редактирование адреса (возможно, как дополнительное событие регистрировать что адрес "переключился" с авто- на ручной режим обновления баланса)
-------изменение баланса вручную
-------автоообновление баланса
]

Dima Starodubcev
@xhipster
Apr 02 2016 22:48
Очень правильно думаешь
Структура - ок
angelo
@tomarcafe
Apr 02 2016 22:48
по изменениям баланса - пока что не вполне понимаю, в каком виде данные сохранять. надо будет подумать, как из этого потом историю выстраивать.
-- для ручного изменения баланса - в принципе, достаточно указать адрес/имя монеты/новый баланс - т.к. за одну акцию вроде как меняется 1
(со структурой - уже не ок - например если мы адреса переименовывать позволяем - то их как ключи не надо бы использовать)
Dima Starodubcev
@xhipster
Apr 02 2016 22:48
Удаление / перетменование пока не важно
angelo
@tomarcafe
Apr 02 2016 22:49
также, не сильно ясно - может быть, имеет смысл привязаться не к уровню счетов а к уровню адресов
Dima Starodubcev
@xhipster
Apr 02 2016 22:49
Важно - состояние баланса на данный момент времени
angelo
@tomarcafe
Apr 02 2016 22:50
тогда для адреса добавлется поле " к какому аккаунту привязан" - если (вдруг) захочется перекидывать адрес между аккаунтами - будет попроще
Dima Starodubcev
@xhipster
Apr 02 2016 22:50
Вообще хорошая идея записывать на уровне адресов а потом агрегировать
angelo
@tomarcafe
Apr 02 2016 22:50
про баланс на данный момент времени:
идею ниче, но тогда надо как-то акаунты хранить.. можно, конечно, акаунты хранить как раньше - в пользователе
типа того: accounts: [] accountitem: _id, name, isPrivate ]
и уже счета получать просто по userId/accountId
не понятно пока как лучше
Dima Starodubcev
@xhipster
Apr 02 2016 22:52
А у нас не возникнет проблем с перфомансом если историю хранить на уровне адресов?
angelo
@tomarcafe
Apr 02 2016 22:52
так вот, про хранение баланса на момент времени:
Dima Starodubcev
@xhipster
Apr 02 2016 22:52
Мне идея дико нра
angelo
@tomarcafe
Apr 02 2016 22:52
погоди
реч не про историю
реч про сами акааунты
история зранится на том же уровне. т.е. если у нас 1 документ - 1 адрес - то история на уровне удресов тоже, если 1 документ - 1 счет - история туда же..
хм
ну вообще, не обязательно
похоже, лучше ченить поблоксхемить, чем писать..
но в общем - вариантов 2 - либо хранить счета, либо адреса - тогда адрес привязывается к 1 счету, и где-то надо хранить сами счета...
мне видитмся важным вопрос - что происходит с историей, когда удалляется адрес/счёт
в том числе с историей балансов
второй важный вопрос - как собственно цифры хранить
т.е. 1 уровень - это история изменения балансов
angelo
@tomarcafe
Apr 02 2016 22:58
2 уровень - что стоимость портфеля же меняется каждый день даже если не менялись адреса. формально, можно стоимость каждый раз рассчитывать "по месту" - т.е. у нас на любую дату есть сумма балансов, и можно подгрузить цены на тот день, и ...
не-формально - кажется более просто и удобно раз-в-день или как там, рассчитывать стоимость (в битках и долларах ) - и сохранять с разбивкой по адресам
т.е. для ассета-в-истории добавляется его стоимость
@21xhipster "Удаление / перетменование пока не важно" нет уж, давай заглянем немного вперед - и хотя бы решим вопрос с удалением и что произойдет с историей
в том числе и в свете приватных-публичных аккаунтов - и что для стороннего пользователя переключение публик-приват выглядит именно как удаление-создание
angelo
@tomarcafe
Apr 02 2016 23:03
пока что, думается, имеет смысл обновлять цены/стоимость раз в день. при изменении баланса более часто - рассчитывать по предыдущему курсу
т.е. допустим пересчитали стоимость (привязали цены) в 24:00 - если какой-то баланс изменился в 2:30 - варианты - 1- обсчитать изменение стоимости по курсу на 24:00, 2- обсчитать изменение стоимости по текущему курсу для изменившегося ассета 3- обсчитать изменение стоимости для всего портфеля. 2 вариант выглядит полумерой и явно будет поглючивать, 3 вариант шибко много ресурса будет жрать, так что пока думаю про первый - но хотелось бы мнений
angelo
@tomarcafe
Apr 02 2016 23:10
хотелось бы как-то всё ж понять - как эта штука должна (может) себя вести при удалении адреса/удалении счета. при удалении счета мы сразу и навсегда грохаем привязанные адреса или што?
angelo
@tomarcafe
Apr 02 2016 23:16
насчет детализации истории - какие наши варианты?. точка на истории - это "всего в долларах (1 цифра)"/"всего в битках (1 цифра)"/"разбивка по ассетам({монета:баланс, ...})" - ну и есть 3 уровня хранения на выбор - на уровне пользователя (отдельно паблик и приват) - на уровне счетов, на уровне адресов.
вообще, кажется что это дело надо выносить в эластик - раз уж он есть у нас.