Giter Site home page Giter Site logo

universablockchain / universa Goto Github PK

View Code? Open in Web Editor NEW
321.0 321.0 98.0 35.08 MB

Universa network, node, client and API

Home Page: https://UniversaBlockchain.com

Java 99.89% PLpgSQL 0.03% Shell 0.03% Dockerfile 0.03% JavaScript 0.03%
client java network node universa

universa's People

Contributors

amyodov avatar anzhu avatar evkdevelop avatar flintemerald avatar jlleitschuh avatar kalinkineo avatar pogorelov avatar romanuskov83 avatar sergeych avatar solinter avatar stepka avatar tairov-dmitriy avatar umnick84 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

universa's Issues

Bounty registration

Just now I have registered in bounty program of Universal ICO'S in subscription categories.

Вопрос по нагрузочному тестированию

Добрый день.

У вас на сайте написано, что время транзакции 2 секунды.
Скажите пожалуйста, как проводилось нагрузочное тестирование?
Почему выбрано именно такое время?
Пока не тестировал, но судя по коду показатели можно улучшить.

Спасибо.

вызовы waitSuccess - блокирующие поток

DeferredResult::waitSuccess вызывает DeferredResult::join а тот Object::wait(0)
те две основные метода класса Node (checkItem и getItem) которые осуществляют запросы к удаленным нодам реализованны НЕ как асинхронные и блокируют весь поток ожидая ответа из сети ?
получается пару десятков паралельных входящих вызовов и нода "встанет" на ожидании ответа из сети?

кстати по коду каждый вызов Farcall на принимающей стороне создает новый тред. Те настоящий системный тред, те не легковесный (зеленый). Это очень тяжелый вызов получается.

Possible timezone-related bug.

return network.getMaxElectionsTime().toMillis() - (System.currentTimeMillis() - electionsStartedMillis);

currentTimeMillis() - системное время, которое не обязательно строго возрастает.
Например, может произойти скачок при синхронизации часов по ntp или при переходе на летнее время. Правильно использовать nanoTime

0 UTN

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

NPE

public boolean equals(Object obj) {
if (obj instanceof ItemResult) {
ItemResult result2 = (ItemResult) obj;
if (result2.state == state && result2.haveCopy == haveCopy &&
createdAt.truncatedTo(ChronoUnit.SECONDS).equals(result2.createdAt.truncatedTo(ChronoUnit.SECONDS))) {
return (expiresAt == null && result2.expiresAt == null) ||
expiresAt.truncatedTo(ChronoUnit.SECONDS).equals(result2.expiresAt.truncatedTo(ChronoUnit.SECONDS));
}
}
return false;
}

если expiresAt = null а result2.expriresAt != null, то первые скобки будут false, произойдет вычисление вторых и будет NPE при вызове truncatedTo

ConfigurationNotFoundException: Project :universa_core declares a dependency from configuration 'localDeps' to configuration 'default' which is not declared in the descriptor for project :contrib:nanohttpd.

Как можно это поправить?

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.

Testnet is not working with Safari Browser

I added screenshots of console output.

screen shot 2018-01-12 at 10 16 17

screen shot 2018-01-12 at 10 23 31

screen shot 2018-01-12 at 10 23 47

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

выглядит странно - локальная нода создает всю сеть

for (NodeInfo nodeInfo : roster.values()) {// let's be paranoid

выглядит странно для понимания
"какая-то одна конкретная нода создает всю сеть"

в сумме все выглядит так: находим в ростере ноду, которая локальная и уже из контекста локальной ноды, перебирая весь ростер опять создаем ВСЮ "сеть".
в смысле выглядело бы логичнее, если бы класс Network создавал NetworkBulder (перебирая ростер), а не NodeInfo

уточнение по проводу реальной проверки айтема

просто хочу уточнить, что я правильно понял код. вся реальная проверка айтема на ЛОКАЛЬНом сервере производится внутри этой ф-ции. все остальное - поиск консенсуса между нодами сети через выборы и/или открытие/закрытие связанных айтемов по факту апрува на основании консенсуса?

глобально блокирующий http сервер вызов "/network"

тут изза synchronized получается что "/network" это глобально блокирующий весь http сервер вызов. и непонятно ради чего.
Binder networkDirectory это закэшированный ответ. кэшируется он один раз при первом запросе "/network" и больше не предполагается меняться. Я так понял это потому что ростер в рантайме не изменяется. Тк по факту ростер только читается при старте из конфига.
те получается ростер и networkDirectory после создания только реадонли.
тогда зачем блокировать весь хттп сервер? Можно все на старте сделать - создали ростер,
закэшировали сразу ответ в networkDirectory и возвращаем его на каждый запрос "/network" без блокировок.

если же ростер в будующем будет изменяемый в рантайме, то скоуп synchronized можно уменьшить до конкетного переключения кэша на новое содержимое:
synchronized (this) {
networkDirectory = network;
}
а предварительно подготавливать содержимое network можно без блокировок, ведь ростер concurenthashmap

но возможно вызов "/network" редкий и не стоит заморачиваться

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.