Skip to content
Pavel edited this page Jul 9, 2021 · 3 revisions

Welcome to the odc-python-server wiki!

TODO-хи

  1. Примеры вводов в документации
  2. 409 ошибка при повторном soc-е.
  3. в вики должна быть внутренняя документация о коллекциях в Mongo. Т.к. при развитии проекта, 99% перейдём на постгресс (или касандру), то можно сделать её на русском языке
  4. переделать в time epoch "time": "20210701160348558400".
  5. написать формат выхода. Например "sok_signature": "5803296e1ef3cfea5aea508745e851554bb5f3b067a565f64b643b44e5fc38d23b6c21c4d0bae4d5c1175447b02a35c53e4c5babe723633c068fa39d5408b012", -- это base64? Пусть все бинарники будут в base64.
  6. заменить тупой алгоритм (см. ниже)
  7. метод /issue-banknotes -> описание signature
  8. добавить otok_signuture в /issue-banknotes -- (otok, подписанный spk на стороне клиента).
  9. проверять otok_signuture в /issue-banknotes
  10. добавить time (время в UTC) в виде time epoch uint64. Проверить на сервере что t корректно с точностью до минуты.
  11. добавить time в рассчёт wallet_signature
  12. убрать sok, sok_signiture, добавить wid. Сам sok получать по wid из хранилища.
  13. /receive-banknote должен вернуть ПОЛНЫЙ блокчейн в поле block
  14. выпилить .idea из проекта, добавить в .gitignore
  15. поправить шапку всех файлов (см. пример внизу)

Шапка

"""
example.py

TODO описание модуля

created by pavelmstu in 7/9/21
Проект odc-python-server
"""

__author__ = 'pavelmstu'
__maintainer__ = 'pavelmstu'
__credits__ = ['pavelmstu', ]
__copyright__ = "kib.su, 2021"
__status__ = 'Development'
__version__ = '20210709'

Замена тупого алгоритма выделения банкнот на удобный тупой алгоритм

    amount = int(amount)
    give_amounts = dict()
    banknote_amounts = [5000, 2000, 1000, 500, 100, 50, 10, 5, 2, 1]
    for banknote_amount in banknote_amounts:
        banknote_count = amount // banknote_amount
        amount = amount % banknote_amount
        if banknote_count > 0:
            give_amounts[banknote_amount] = banknote_count
        if amount == 0:
            break

Новый алгоритм (идём с пункта 1 до конца, при условии что есть ещё деньги в amount):

  1. выделить 100 банкнот по 1 рублю. Вычесть из amount.
  2. выделить 100 банкнот по 5 рублей. Вычесть
  3. выделить 10 банкнот по 10 рублей. Вычесть
  4. выделить 10 банкнот по 50 рублей. Вычесть
  5. выделить 10 банкнот по 100 рублей. Вычесть
  6. выделить 10 банкнот по 500 рублей. Вычесть
  7. выделить 10 банкнот по 1000 рублей. Вычесть
  8. выделить 10 банкнот по 5000 рублей. Вычесть
  9. повторить алгритм снизу-вверх (5000->1)
  10. goto прошлый шаг.

TODO-хи "next generation"

  1. (!!) Провести аудит безопасности по Mitre ATT&CK.
  2. В соотвествии с аудитом -- поменять архитектуру и написать TODO-хи к этому проекту и к мобилке.
  3. Подумть про процедуру обменивания exchange между мобилкой и сервером
  4. У нас в качестве хеша используется sha256 и RSA в качестве подписи. Сделать возможность использовать разные алгоритмы. Поправить архитектуру (в том числе на стороне мобилок)
  5. Подумать как сохранять блокчейны на стороне сервера для дальнейшей аналитики и доп.контроля.