Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Не прогружаются транзакции, и лезут ошибки в консоли браузера. #1415

Closed
username1565 opened this issue Jun 24, 2019 · 6 comments

Comments

@username1565
Copy link

Использую клиент, подобный клиенту на сайте http://waveswallet.io/
Но не версии v0.5.22 (она недоделана),
а вот этот вот: waves-lite-client-mainnet-v0.5.18
Скачал оттуда zip, открыл index.html в браузере Google Chrome, ввёл seed, он сохранился в LocalStorage, зашифровал его паролем...

Всё работает, как и работало. Но... Последнее время в waves-lite-client - не прогружаются транзакции.
В консоли браузера лезут очень длинные ошибки ангуляра.
Судя по всему, ошибки - в ответе сервера.

XHR finished loading: GET "https://nodes.wavesplatform.com/transactions/address/МОЙ_АНОНИМНЫЙ_АДРЕС/limit/50". waves-lite-client-mainnet-0.5.18.js:23542
Error {stack: "Error: [ngRepeat:dupes] Duplicates in a repeater a…v/js/waves-lite-client-mainnet-0.5.18.js:23485:9)", message: "[ngRepeat:dupes] Duplicates in a repeater are not … бла-бла-бла"}

Посмотрите что там, и исправьте...


И ещё, в догонку...
Онлайн веб-кошелек waves-lite-client не работает на сайте https://waveswallet.io/
В скриптах видна версия waves-lite-client-mainnet-0.5.22.js.
Просьба выложить релиз с этой версией в виде исходника где-нибудь здесь: https://github.com/wavesplatform/WavesGUI/releases
А то там последняя версия v0.5.18

Так вот, не работает этот онлайн веб-кошелек, версии 0.5.22 вот почему:

Failed to load resource: net::ERR_SSL_VERSION_OR_CIPHER_MISMATCH https://nodes.wavesnodes.org/assets/balance/3PHn9nUmfBftjHrKK8CKMUGTxcmDVAGNj7m
Failed to load resource: net::ERR_SSL_VERSION_OR_CIPHER_MISMATCH https://nodes.wavesnodes.org/blocks/height
Failed to load resource: net::ERR_SSL_VERSION_OR_CIPHER_MISMATCH https://nodes.wavesnodes.org/addresses/balance/3PHn9nUmfBftjHrKK8CKMUGTxcmDVAGNj7m
Failed to load resource: net::ERR_SSL_VERSION_OR_CIPHER_MISMATCH https://nodes.wavesnodes.org/assets/balance/3PHn9nUmfBftjHrKK8CKMUGTxcmDVAGNj7m
Failed to load resource: net::ERR_SSL_VERSION_OR_CIPHER_MISMATCH https://nodes.wavesnodes.org/transactions/unconfirmed

Прошу заметить, что XHR-запросы отправляются на доменное имя в зоне .org
в то время как вышерассмотренной версии v0.5.18,
XHR-запросы - отправляются на доменное имя в зоне .com.

Работоспособность кошельков, по всей видимости влияет на объемы торгов.
Чините же, ну! А то всё сольём сами себе и сами у себя выкупим.

@tsigel
Copy link
Contributor

tsigel commented Jun 24, 2019

Доброе утро! Кошелёк по адресу http://waveswallet.io/ более не поддерживается, используйте https://dex.wavesplatform.com

@username1565
Copy link
Author

username1565 commented Jun 24, 2019

А мне нравится этот кошелёк, потому что он не многовесный (как тот exe-шник),
хорошо работает без багов всяких, и может работать c любыми нодами,
а ещё, от него кулер на процессоре не свестит,
а XHR-запросы с JSON-ом в ответе - не так много трафика едят.
К тому же он локально работает из zip-файла.
Возможно даже, для некоторых клиентов, этот кошелек был единственным доступом к ихнему счёту,
так как другие продукты не имеют обратной совместимости... А вы не поддерживаете...

Я скопировал архив и исходники v0.5.18-й версии - себе.
Могу ли я их выложить у себя, или у вас там всё копирастически проприетарно
с этими всякими авторскими правами, торговыми марками и прочим патентованным ©®™?
Вы тоже можете выложить их отдельно, просто залив файлы из разархивированного zip -
в отдельный, официальный репозитарий,
чтобы можно было исправлять чё-то там, обновлять, и компарить - открывая вам pull-requests.

Ну, а что касается тех ошибок в консоли браузера... Если вам, конечно это интересно...
Возникают они - из-за дубликатов значения timestamp у транзакций обмена на DEX.
Сами транзакции - видно вот здесь: https://wavesblockexplorer.com/#!/address/МОЙ_СЕКРЕТНЫЙ_АНОНИМНЫЙ_АДРЕС
Дубликаты эти содержатся ответе на XHR-запрос, по адресу:
https://nodes.wavesplatform.com/transactions/address/МОЙ_СЕКРЕТНЫЙ_АНОНИМНЫЙ_АДРЕС/limit/50
Дубликаты значения timestamp выдают ошибку Angular, выводящуюся в консоль.
Появляются эти транзакции с дубликатами значения timestamp - тогда,
когда покупаешь или продаёшь сумму, достаточную,
чтобы обработать сразу несколько ордеров.
Транзакции обмена - идут отдельными транзакциями, но с тем же самым timestamp.
Можете протестировать всё это и исправить чё-то там.
По всей видимости, ошибка, скорее на ноде, а не на клиенте.
В общем, надо бы на входе, перед включением в блокчейн -
инкрементировать эти timestamps как-то, если есть дубликаты,
а потом уже писать транзакции в блокчейн.
Конечно же, если эти транзакции не подписываются внутри веб-кошелька.
Иначе, нужно править скрипт, и инкрементировать timestamps - до процесса подписи транзакций, и отправки их майнерам.

@tsigel
Copy link
Contributor

tsigel commented Jun 24, 2019

А мне нравится этот кошелёк, потому что он не многовесный (как тот exe-шник),
хорошо работает без багов всяких, и может работать c любыми нодами,
а ещё, от него кулер на процессоре не свестит,
а XHR-запросы с JSON-ом в ответе - не так много трафика едят.

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

  • nodejs lts версии
  • для пользователей Windows иметь консоль с поддержкой bash (например git bash)

При первом запуске убедиться что есть gulp и что он установлен глобально:

npm i gulp@^3 -g
npm start

При запуске локально будет ошибка сертификата.

Ну, а что касается тех ошибок в консоли браузера... Если вам, конечно это интересно...
Возникают они - из-за дубликатов значения timestamp у транзакций обмена на DEX.

Это является ошибкой клиента, так как уникальный идентификатор транзакции id, а не timestamp и если транзакции произошли с разницей менее миллисекунды, то их timestamp может совпадать.

Могу ли я их выложить у себя, или у вас там всё копирастически проприетарно
с этими всякими авторскими правами, торговыми марками и прочим патентованным ©®™?
Вы тоже можете выложить их отдельно, просто залив файлы из разархивированного zip -
в отдельный, официальный репозитарий,
чтобы можно было исправлять чё-то там, обновлять, и компарить - открывая вам pull-requests.

Отвечу Вам в течении дня.

@tsigel
Copy link
Contributor

tsigel commented Jun 24, 2019

Могу ли я их выложить у себя, или у вас там всё копирастически проприетарно
с этими всякими авторскими правами, торговыми марками и прочим патентованным ©®™?

Да, можете.

@username1565
Copy link
Author

username1565 commented Jun 24, 2019

Да, можете.

Готово.
Тут - исходник: https://github.com/username1565/waves-lite-client
(только HTML, JavaScript и CSS, и картинки)

Тут - онлайн версия: https://username1565.github.io/waves-lite-client/
(index.html запускается из репозитария).

4 файла - перезалил тут: https://github.com/username1565/waves-lite-client/releases/tag/v0.5.18
Хэши прописал также - в README.md


Прошу форкнуть, проверить хэши (хэши файлов - я рассчитал программой MultiHasher)
и проверить сам код (каким нибудь WinMerge или что там на Linux'ах...),
проверить на то, что НЕТ НИКАКИХ ОТЛИЧИЙ,
и запостить всё это у себя, от аккаунта wavesplatform,
ну, чтобы было более официально.

Всё потому, что дальше, могут пойти исправления всякие, изменения,
люди могут открывать pull-requests, и это уже будет совсем не 0.5.18-я версия.

Так, например, первое что пришло мне в голову, так это взять WinMerge,
и сравнить этот JavaScript-файл с вот этим выявить отличия, а потом объединить их.
А то, например, не все токены отображаются корректно в v0.5.18,
а в версии v0.5.22, который на https://waveswallet.io/
там ошибки лезут некоторые, и вы его уже не поддерживаете,
и сам сайт в некоторых браузерах - бьёт ошибку SSL...

В общем, если я объединю все эти отличия, это уже будет другая версия.
Поэтому, пока что, я залил только оригинал v0.5.18-й версии в виде скриптов, и не меняю ничего там.
Коммиты - вот тут: https://github.com/username1565/waves-lite-client/network
там видно все изменения. Пока только README.md подредактировал. Лицензия - MIT.


Это является ошибкой клиента, так как уникальный идентификатор транзакции id, а не timestamp
и если транзакции произошли с разницей менее миллисекунды, то их timestamp может совпадать.
Там дело не в transactions ID, там проблема именно этих самых дубликатах timestamp:

Error: [ngRepeat:dupes] Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys.

потому что транзакции сортируются по timestamp
и поэтому - не должно там быть, никаких дубликатов timestamp, у двух различных транзакций.
Только где это конкретно происходит, эта сортировка, и что там исправить - я не знаю.
Очень много строк, но я вижу текст этой ошибки в строке 42583 файла waves-lite-client-mainnet-0.5.18.js.
Скорее всего туда, надо какое-то инкрементирование добавить если есть одинаковые timestamp,
а потом уже сортировать.

@tsigel
Copy link
Contributor

tsigel commented Jul 2, 2019

Для того чтобы получить исходники вы можете перейти в ветку old-client и собрать клиент из этой ветки следуя инструкции в readme.md.

Прошу форкнуть, проверить хэши (хэши файлов - я рассчитал программой MultiHasher)
и проверить сам код (каким нибудь WinMerge или что там на Linux'ах...),
проверить на то, что НЕТ НИКАКИХ ОТЛИЧИЙ,
и запостить всё это у себя, от аккаунта wavesplatform,
ну, чтобы было более официально.

WavesPlatform более не поддерживает старый клиент и не будет выкладывать его на своих серверах, если вы хотите продолжать развитие старого клиента, вы можете разместить его у себя форкнув клиент.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants