universablockchain / universa Goto Github PK
View Code? Open in Web Editor NEWUniversa network, node, client and API
Home Page: https://UniversaBlockchain.com
Universa network, node, client and API
Home Page: https://UniversaBlockchain.com
Just now I have registered in bounty program of Universal ICO'S in subscription categories.
There is a Cross-Site Scripting security issue on chat messages. You should fix it before MainNet.
Example: <a href="javascript:alert(document.cookie);">xss clickable message</a>
It seems that uniclient's --check
parameter does not understand paths with spaces. Didn't check other parameters.
P.S. I'm on MacOS btw.
Are there some closed source projects for Universa?
Добрый день.
У вас на сайте написано, что время транзакции 2 секунды.
Скажите пожалуйста, как проводилось нагрузочное тестирование?
Почему выбрано именно такое время?
Пока не тестировал, но судя по коду показатели можно улучшить.
Спасибо.
DeferredResult::waitSuccess вызывает DeferredResult::join а тот Object::wait(0)
те две основные метода класса Node (checkItem и getItem) которые осуществляют запросы к удаленным нодам реализованны НЕ как асинхронные и блокируют весь поток ожидая ответа из сети ?
получается пару десятков паралельных входящих вызовов и нода "встанет" на ожидании ответа из сети?
кстати по коду каждый вызов Farcall на принимающей стороне создает новый тред. Те настоящий системный тред, те не легковесный (зеленый). Это очень тяжелый вызов получается.
currentTimeMillis() - системное время, которое не обязательно строго возрастает.
Например, может произойти скачок при синхронизации часов по ntp или при переходе на летнее время. Правильно использовать nanoTime
Dear team, I have sent eth from my kickico address, and asked them why I haven't received any UTN tokens. They tell me, that I should contact you.
So. Why are my balance 0 ?
My best regards from here
buildNetowrk -> buildNetwork
ovverideClientPort -> overideClientPort
если expiresAt = null а result2.expriresAt != null, то первые скобки будут false, произойдет вычисление вторых и будет NPE при вызове truncatedTo
Как можно это поправить?
org.gradle.internal.component.model.ConfigurationNotFoundException: Project :universa_core declares a dependency from configuration 'localDeps' to configuration 'default' which is not declared in the descriptor for project :contrib:nanohttpd.
Project :universa_core declares a dependency from configuration 'localDeps' to configuration 'default' which is not declared in the descriptor for project :contrib:nanohttpd.
I added screenshots of console output.
Safari:
Version 9.1 (11601.5.17.1)
Mac Os X:
ProductName: Mac OS X
ProductVersion: 10.11.4
BuildVersion: 15E65
Model Name: MacBook Pro
Model Identifier: MacBookPro11,1
Processor Name: Intel Core i5
Processor Speed: 2,6 GHz
Number of Processors: 1
Total Number of Cores: 2
L2 Cache (per Core): 256 KB
L3 Cache: 3 MB
Memory: 8 GB
выглядит странно для понимания
"какая-то одна конкретная нода создает всю сеть"
в сумме все выглядит так: находим в ростере ноду, которая локальная и уже из контекста локальной ноды, перебирая весь ростер опять создаем ВСЮ "сеть".
в смысле выглядело бы логичнее, если бы класс Network создавал NetworkBulder (перебирая ростер), а не NodeInfo
тк сейчас в рантайме новые ноды создавать нельзя - только из локального конфига и при рестарте
просто хочу уточнить, что я правильно понял код. вся реальная проверка айтема на ЛОКАЛЬНом сервере производится внутри этой ф-ции. все остальное - поиск консенсуса между нодами сети через выборы и/или открытие/закрытие связанных айтемов по факту апрува на основании консенсуса?
тут изза synchronized получается что "/network" это глобально блокирующий весь http сервер вызов. и непонятно ради чего.
Binder networkDirectory это закэшированный ответ. кэшируется он один раз при первом запросе "/network" и больше не предполагается меняться. Я так понял это потому что ростер в рантайме не изменяется. Тк по факту ростер только читается при старте из конфига.
те получается ростер и networkDirectory после создания только реадонли.
тогда зачем блокировать весь хттп сервер? Можно все на старте сделать - создали ростер,
закэшировали сразу ответ в networkDirectory и возвращаем его на каждый запрос "/network" без блокировок.
если же ростер в будующем будет изменяемый в рантайме, то скоуп synchronized можно уменьшить до конкетного переключения кэша на новое содержимое:
synchronized (this) {
networkDirectory = network;
}
а предварительно подготавливать содержимое network можно без блокировок, ведь ростер concurenthashmap
но возможно вызов "/network" редкий и не стоит заморачиваться
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.