bitshares / bitshares-ui

Fully featured Graphical User Interface / Reference Wallet for the BitShares Blockchain
https://wallet.bitshares.org
MIT License
518 stars 570 forks source link

[7.5][TBD] Better node management #1521

Closed startailcoon closed 6 years ago

startailcoon commented 6 years ago

As we gain more and more nodes from both witnesses, businesses, regular joes and worker programs, the list has grown quite long. Nodes all around the globe is in one single list, and mixed with testnet nodes, just to make the matter worse.

I propose we make a UX for a better node management. A user should be able to filter/find/sort nodes on flags like these, but not limited:

The goal of this would be to make the list of nodes more manageable.

clockworkgr commented 6 years ago

Possibly amount of history & bucket sizes offered too? (although I have started a discussion in telegram to standardize bucket sizes offered for uniformity)

sschiessl-bcp commented 6 years ago

Totally agree, include with the ping all button that I somehow forgot in my last PR...

svk31 commented 6 years ago

Knowing bucket sizes requires us to make an api call to the node. The amount of history is not available AFAIK.

abitmore commented 6 years ago

Owner (Witness, Worker, Exchange etc)

This is useful especially when a node is having issues. Easier to contact the node admin.

sschiessl-bcp commented 6 years ago

During working on #1672 and refactoring I realized that this issue is probably gonna be solved on the. Can this be rated please? @startailcoon @wmbutler

sschiessl-bcp commented 6 years ago

During my work on this I found a bug in the SettingsStore. If any default values change (removing nodes, changing faucet), the user does not get those changes due to local storage having old values. Will include a fix for that as well

abitmore commented 6 years ago

Is there a way to not trigger chrome warning when one of the nodes has a bad SSL certificate?

sschiessl-bcp commented 6 years ago

Is there a way to not trigger chrome warning when one of the nodes has a bad SSL certificate?

No, that can only be deactivated by the user. Even if the UI wanted to evaluate certificates itself (and not connect if invalid) the user would still get a notification.

sschiessl-bcp commented 6 years ago

Requesting feedback for visualization and configuration options @bitshares/ui-dev

image image

Title is Region - Country - Location (Optional), Operator is right aligned. An entry in apiConfig.js looks like this then:

https://github.com/bitshares/bitshares-ui/blob/34123575689d7a4e7da7e391397fbf71bd4ed7de/app/api/apiConfig.js#L117-L123

clockworkgr commented 6 years ago

I really like that @sschiessl-bcp !

sschiessl-bcp commented 6 years ago

Thanks @clockworkgr

I just commited a more extensive refactoring of SettingsStore and AccessSettings. Filtering I will add next week.

sschiessl-bcp commented 6 years ago

I am calling out to all node operators, please provide me with the additional information to be able to give the user a more sophisticated selection process and filtering options.

Please simply comment in here with your updated node configuration in the same style (so I can copy and paste). Use the old configuration like seen here and add the new configuration. Expectancy of a post:

Please update

        {
            url: "wss://eu.nodes.bitshares.ws",
            location: "Central Europe - BitShares Infrastructure Program"
        }

to

        {
            url: "wss://eu.nodes.bitshares.ws",
            region: "Western Europe",
            country: "Germany",
            location: "Nuremberg",
            operator: "Infrastructure Worker",
            contact: "email:blockchainprojectsbv.com;info"
        }

If the url has not changed, mentioning the old config entry can be ommitted. Short explanation:

  • url: exact url of the node that allows a websocket connection
  • location: City of the node server (optional)
  • country: Country of the node server
  • region: Region of the node server, important for a more sophisticated geolocation-based connection strategy later on. One of the following options (please open the link to locate your own region) https://github.com/bitshares/bitshares-ui/blob/f9736a4c5cb755b60735212e6e4ebd292128108d/app/api/apiConfig.js#L71-L95 If you have a dns based geolocation redirection enabled, please select "Worldwide" as region and fill in the different possibilties in location.
  • operator: Whatever entity is providing this server (can be Anonymous if really necessary)
  • contact: A string containing perefered contact method and details, i.e. "[email|telegram|github|...]:details". This information will not be displayed in the UI (yet), but it is essential that the UI team has some way of contacting all node operators. Examples:
  • "github:sschiessl-bcp"
  • "email:blockchainprojectsbv.com;info" You may mask your email in whatever way you please to avoid crawlers finding it, even ommi the keyword "email:" in it, as long as its reconstructable for the human reader. For our email the "info" would be the part before the "@"
  • "telegram:sschiessl"

Failure to provide detailed information on your node will result to be listed as "Unknown" in the reference wallet. Unknown nodes might be removed later on.

clockworkgr commented 6 years ago

{ url: "wss://bts-seoul.clockwork.gr", region: "Southeastern Asia", country: "Korea", location: "Seoul", operator: "Witness: clockwork", contact: "telegram:clockworkgr", history_ops: "100" }

dls-cipher commented 6 years ago

Listing emails in pages in their native structure mailbox@domain.com will end up in Search Engines, and eventually become just an open-invite for crawlers, bots, spam and unusual activity over https://wallet.bitshares.org so no, I don't agree with adding emails as contacts.

I would also added line entry that is saying is the node standard/full so we can end that endless question of users "is there any full node".

Rest is fine.

clockworkgr commented 6 years ago

After DL's comment I suggest a history_ops entry specifying amount of history. 0 for full node, or number for max ops held.

Updated my comment accordingly

abitmore commented 6 years ago

@clockworkgr 0 for mini node with no history.

startailcoon commented 6 years ago
{ 
     url: "wss://bitshares.crypto.fans/ws", 
     region: "Western Europe", 
     country: "Germany", 
     location: "Munich",
     operator: "Witness: sc-ol", 
     contact: "telegram:startail",
     history_ops: "100"
} 
abitmore commented 6 years ago
{ 
     url: "wss://api.bts.mobi/ws",
     region: "Northern America",
     country: "USA",
     location: "VA",
     operator: "Witness: in.abit",
     contact: "telegram:abitmore",
     history_ops: "1000"
} 

Actually I think UI can detect number of history_ops by itself.

By the way, how about enabled plugins / apis? Version? Compile-time options(https://github.com/bitshares/bitshares-core/pull/1099,https://github.com/bitshares/bitshares-core/pull/1140)? Will the UI code detect them automatically?

sschiessl-bcp commented 6 years ago

@abitmore Yes, after connecting to the node that could be evaluated, but the main spirit of this update is to give the user filtering before connecting. All meanwhile the user should not be able to discriminate on facts other than location and operator. Users like bigger numbers, running a full node is already more expensive and I want to avoid that traffic focuses there then. That's where ES come into sight.

After connection has been established I am hoping to get https://github.com/bitshares/bitshares-core/issues/626 to provide more intel on the node. Also in the spirit of said issue I want to avoid putting down any hardcoded information that would be excluded in such a server info API due to security risks.

ghost commented 6 years ago
{ 
     url: "wss://api.fr.bitsharesdex.com",
     region: "Western Europe",
     country: "FRANCE",
     location: "Paris",
     operator: "delegate.ihashfury",
     contact: "telegram:ihashfury",
     history_ops: "1000"
     bucket-size: "60,300,900,1800,3600,14400,86400,604800"
} 
{ 
     url: "wss://api.bitsharesdex.com",
     region: "Northern America",
     country: "USA",
     location: "Kansas City",
     operator: "delegate.ihashfury",
     contact: "telegram:ihashfury",
     history_ops: "1000"
     bucket-size: "60,300,900,1800,3600,14400,86400,604800"
} 
roelandp commented 6 years ago
{
            url: "wss://btsws.roelandp.nl/ws",
            region: "Northern Europe",
            country: "Finland",
            location: "Helsinki",
            operator: "roelandp",
            contact: "telegram:roelandp",
            history_ops: "1000",
            bucket-size: "60,300,900,1800,3600,14400,86400"
}
pluswave commented 6 years ago

{ url: "wss://bts.open.icowallet.net/ws", region: "Eastern Asia", country: "China", location: "Hangzhou", operator: "Witness: magicwallet.witness", contact: "telegram:plus_wave", history_ops: "300", bucket-size = "60,300,900,1800,3600,14400,86400,604800" }

kimziv commented 6 years ago

{ url: "wss://kimziv.com/ws", region: "North America", country: "USA", location: "New Jersey", operator: "Witness: witness.yao", contact: " wechat:yaozongqiu; email:kimziv@qq.com", history_ops: "1000" bucket-size: "60,300,900,1800,3600,14400,86400" }

tianyekuo commented 6 years ago

{ url: "wss://ws.gdex.top", region: "Eastern Asia", country: "China", location: "Shanghai", operator: "Witness: gdex-witness", contact: "telegram:BrianZhang", history_ops: "1000", bucket-size: "60,300,900,1800,3600,14400,86400" }

bangzi1001 commented 6 years ago

{ url: "wss://btsfullnode.bangzi.info/ws", region: "Western Europe", country: "Germany", location: "Munich", operator: "Witness: Bangzi", contact: "Telegram: Bangzi", history_ops: "1000", bucket-size: "60,300,900,1800,3600,14400,86400" }

sschiessl-bcp commented 6 years ago

All nodes updated until this comment.

ruslansalikhov commented 6 years ago

{ url: "wss://api.bts.blckchnd.com", region: "Western Europe", country: "Germany", location: "Falkenstein", operator: "witness:blckchnd", contact: "email:admin@blckchnd.com;telegram:ruslansalikhov;github:blckchnd", history_ops: "1000" bucket-size: "60,300,900,1800,3600,14400,86400" }, { url: "wss://api-ru.bts.blckchnd.com", region: "Eastern Europe", country: "Russia", location: "Moscow", operator: "witness:blckchnd", contact: "email:admin@blckchnd.com;telegram:ruslansalikhov;github:blckchnd", history_ops: "1000" bucket-size: "60,300,900,1800,3600,14400,86400" }, { url: "wss://node.market.rudex.org", region: "Western Europe", country: "Germany", location: "Falkenstein", operator: "witness:blckchnd", contact: "email:admin@blckchnd.com;telegram:ruslansalikhov;github:blckchnd", history_ops: "1000" bucket-size: "60,300,900,1800,3600,14400,86400" },

MikhailKavalenka commented 6 years ago

{ url: "wss://bitshares.openledger.info/ws", location: "Nuremberg", region: "Western Europe", country: "Germany", operator: "Witness: openledger-dc", contact: "telegram:mtopenledger", history_ops: "100", bucket-size : [15,60,300,3600,86400] }, { url: "wss://openledger.hk/ws", location: "Singapore", operator: "Witness: openledger-dc", contact: "telegram:mtopenledger", history_ops: "100", bucket-size : [15,60,300,3600,86400] }

OpenLedger

yuzhongzhen commented 6 years ago

{ url: "wss://bitshares.bts123.cc:15138/", region: "Eastern Asia", country: "China", location: "Hangzhou", operator: "Witness: delegate.freedom", contact: "telegram:eggplant", history_ops: "300", bucket-size: "60,300,900,1800,3600,14400,86400" } { url: "wss://freedom.bts123.cc:15138/", region: Eastern Asia", country: "China", location: "Changsha", operator: "Witness: delegate.freedom", contact: "telegram:eggplant", history_ops: "1000", bucket-size: "60,300,900,1800,3600,14400,86400" }

Xeldal commented 6 years ago

{ url: "wss://kc-us-dex.xeldal.com/ws", region: "North America", country: "USA", location: "Kansas City", operator: "Witness:xeldal", contact: "telegram:xeldal", history_ops: "3000" bucket-size: "300,900,1800,3600,14400,43200,86400" }

axin313 commented 6 years ago

{ url: "wss://ws.winex.pro", region: "Asia", location: "Singapore", operator: "Witness: winex.witness", contact: "telegram: zmaxin", history_ops: "1000" bucket-size: "60,300,900,1800,3600,14400,86400" }

Zapata commented 6 years ago
{ 
     url: "wss://api.dex.trading/",
     region: "Western Europe",
     country: "France",
     location: "Paris",
     operator: "Witness: zapata42-witness",
     contact: "telegram:Zapata_42",
     history_ops: "100",
     bucket-size: "60,300,900,1800,3600,14400,86400",
     network: "mainnet"
} 
{ 
     url: "wss://testnet.dex.trading/",
     region: "Western Europe",
     country: "France",
     location: "Paris",
     operator: "Witness: zapata42-witness",
     contact: "telegram:Zapata_42",
     history_ops: "100",
     bucket-size: "60,300,900,1800,3600,14400,86400",
     network: "testnet"
} 

Note: There is no way to specify if it's a testnet node or not, I have added a network: mainnet|testnet field.

sschiessl-bcp commented 6 years ago

Thank you.

@Zapata every node that has testnet in its URL is recognized as such

syoumoku commented 6 years ago

{ url: "wss://blockzms.xyz/ws ", region: "North America", country: "America", location: "New Jersey", operator: "Witness: delegate-zhaomu", contact: "telegram:@lzmlam wechat:lzmlam", history_ops: "100", bucket-size: "60,300,900,1800,3600,14400,86400" }

BhuzOr commented 6 years ago
{ 
     url: "wss://api.bitshares.bhuz.info/ws",
     region: "Northern America",
     country: "Canada",
     location: "",
     operator: "Witness: bhuz",
     contact: "telegram: bhuzor",
     history_ops: "1000"
     bucket-size: "60,300,900,1800,3600,14400,86400"
} 
gordoor commented 6 years ago

{ url: "wss://bitshares.cyberit.io", region: "Eastern Asia", country: "China", location: "Hong Kong", operator: "Witness: witness.still", contact: "Telegram: gordoor, Wechat: overyard", history_ops: "1000", bucket-size: "60,300,900,1800,3600,14400,86400" }

xiangxn commented 6 years ago
{
url: "wss://api.btsgo.net/ws",
region: "Asia",
location: "Singapore",
operator: "Witness: xn-delegate",
contact: "Wechat: Necklace",
history_ops: "1000",
bucket-size: "60,300,900,1800,3600,14400,86400"
}
crazybits commented 6 years ago

{ url: "wss://crazybit.online", region: "Asia", country: "China", location: "Shenzhen", operator: "Witness: crazybit", contact: "Telegram: crazybits, Wechat: JamesCai", history_ops: "1000", bucket-size: "60,300,900,1800,3600,14400,86400" }

ryanRfox commented 6 years ago

{ url: "wss://api.bts.network/", region: "North America", country: "USA", location: "Virginia", operator: "Witness: fox", contact: "telegram:ryanRfox", history_ops: "1000", bucket-size: "60,300,900,1800,3600,14400,86400", network: "mainnet" }

btsabc commented 6 years ago

{ url: "wss://bit.btsabc.org/ws", region: "Eastern Asia", country: "China", location: "Hong Kong", operator: "Witness: abc123", contact: "QQ: 58291,email:58291@qq.com", history_ops: "1000", bucket-size: "15,60,300,3600,86400" }

sschiessl-bcp commented 6 years ago

All added up till here.

sschiessl-bcp commented 6 years ago

These nodes are still to be updated:

If anyone has contacts there, please ping

tianyekuo commented 6 years ago

"ws.gdex.io" does not support any more, it's better remove it from the node list, thanks.

ety001 commented 6 years ago

{ url: "wss://bts.to0l.cn:4443/ws", region: "Eastern Asia", country: "China", location: "Shandong", operator: "Witness: liuye", contact: "email:work@liuye.tech", history_ops: "100", bucket-size: "60,300,900,1800,3600,14400,86400" }

viaNull commented 6 years ago

{ url: "wss://api.bts.ai", region: "Eastern Asia", country: "China", location: "Beijing", operator: "Witness: witness.hiblockchain", contact: "telegram:vianull ,Wechat: strugglingl", history_ops: "400", bucket-size: "60,300,900,1800,3600,14400,86400" }

SahkanDesertHawk commented 6 years ago

{ url: "wss://la.dexnode.net/ws", region: "Northern America", country: "USA", location: "Los Angeles", operator: "Witness: Sahkan" contact: "telegram:Sahkan_bitshares", history_ops: "1000", bucket-size: "15,60,300,3600,86400", network: "mainnet"
}, { url: "wss://dexnode.net/ws", region: "Northern America", country: "USA", location: "Dallas", operator: "Witness: Sahkan" contact: "telegram:Sahkan_bitshares", history_ops: "1000", bucket-size: "15,60,300,3600,86400", network: "mainnet"
},

jademont commented 6 years ago

{ url: "wss://ws.hellobts.com", region: "Eastern Asia", country: "Japan", location: "Tokyo", operator: "Witness: xman", contact: "Wechat: hidpos , Email:hellobts@qq.com", history_ops: "500", bucket-size: "60,300,900,1800,3600,14400,86400" }

lafona commented 6 years ago

{ url: "wss://bts-api.lafona.net/ws", region: "Northern America", country: "Canada", location: "Montreal", operator: "Witness: delegate-1.lafona", contact: "Telegram: lafona", history_ops: "1000", bucket-size: "60,300,900,1800,3600,14400,86400" }

sschiessl-bcp commented 6 years ago

All added until here.

Still remain:

sschiessl-bcp commented 6 years ago

Changed hours to incorporate:

Coding and finding hours spent are roughly 10.5 up to this point.