Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - rnglab

Pages: 1 [2] 3 4 5 6 7 8 9 ... 12
16
General Discussion / Re: Professional Price Feeds for DEX
« on: April 19, 2017, 05:28:13 am »
As to your point about witnesses producing feeds with different keys, yes, you could use a different key. However, the witness associated with that key must be in the active state. Witness nodes can use an arbitrary key pair generated by the cli wallet to run their node, but only the signing key can be used to produce blocks.  I don't recall the specifics on feed publishing, but I suspect the only restriction is that the account open in the wallet which the script connects through must be a voted in witness account.

Right. In other words, witnesses need two types of keys to produce blocks: the usual active key and a special key to sign blocks.
It's a good practice to distribute different (non-active) signing key pairs between failover nodes, because the 'update_witness' command allows changing the signing key for a given witness account. Thus we can switch block production between nodes without the need to restart a witness_node to change its signing keys.

Signing keys are no required to publish feeds. You can have one node producing blocks and another feeding prices, independently.

17
General Discussion / Re: Professional Price Feeds for DEX
« on: April 18, 2017, 08:57:41 am »
About rising witness quality standards (with emphasis on accurate pricefeeds), I like some of the ideas that have been discussed in the last months, but most of them would need heavy development, after a long way to reach consensus. 

At this stage I think our best trade off between priorities and resources would be to fund development for an open source block explorer, with an initial focus on witness monitoring tools (like historical pricefeed charts).

I like this approach from @lafona: https://lafona.shinyapps.io/Feed_History/
Just adding a highlighted line with the median price published by the blockchain would make a good enough reference to start monitoring feeds accuracy. Maybe another line with asset prices from a professional paid source, as an off chain reference.

The lack of both an open source block explorer codebase, and a simple way to monitor witnesses, are top prioity issues that will probably result more expensive if we wait for someone to solve them for free some day, than if we just fund its development as a priority.
@svk @svk @svk   :o

18
General Discussion / Re: Professional Price Feeds for DEX
« on: April 18, 2017, 06:45:14 am »
IOn the other hand, most if not all Chinese feed sources has a DDOS protection that blacklists your ip with *many* less API calls than the specified.

Feeds can be published from a non producing witness with the active key.

Interesting. Would their DDoS protection kick in from 1 request an hour? I presume when you say "feed sources" you're talking about exchanges?

Yes I was talking about exchanges in this case, but the same may apply for any Chineese feed source.
One request per hour is a lot of time to trigger DOS protection, I have just a few random rejects fetching prices every  5 or 10 minutes.

Quote
I don't believe your last point is correct. The active OR owner keys can be used to publish feeds, but the API call will fail unless the account calling the publish_feeds API is voted in (active). Don't get the state of being "active" / voted in confused with the type of key used on the account calling the API.

 I think I was not clear.  Signing keys are not required to publish feeds, active (elected) witnesses can feed prices from any node that has its active key. We can produce blocks from one node and publish feeds from another.
Quote


I would like to see some type of method for non-active witnesses to publish "informal" or "unofficial" price feeds to show shareholders they are capable and what their accuracy would be. It would also provide potential witnesses a way to perfect their scripts.

Agree. I think the simplest way would be to do it on testnet. It would also help to keep the public testnet allways distributed, not just when we need to run specific networking tests.

19
General Discussion / Re: Professional Price Feeds for DEX
« on: April 17, 2017, 10:09:37 am »
I wouldn't care about the /slots feature from spartako-bot. It was added by spartako almost instantly when Dan asked us to provide price feeds and xeroc's script was released.  As we started being just a few witnesses publishing feeds until different timezones and avaiability allowed everyone to update nodes, making the time span as distributed as possible was one of the first actions.

If that information were up to date and leaked, it would be easy for every feedsource API provider to know most witnesses IP addresses.

The blockchain takes prices from the majority of witnesses that "agrees" on a median, withing the feed_lifetime parameter  (if someone can add a more accurate description would be apreciated).
It has prooved to be very resilent against wrong feeds, and less dependant on publishing frequency.

this are the time parameters from xeroc's pricefeeds script:
Code: [Select]
################################################################################
# Publishing Criteria
################################################################################
#
# Publish price if any of these are valid:
#
#  1.) price feed is older than maxAgeFeedInSeconds
#  2.) price has moved from my last published price by more than change_min
#
# Do NOT publish if
#
#  * Price has moved more than 'change_max'
#     AND
#  * Manual confirmation is 'false'
#
# A feed becomes invalid if it is older than 24h. Hence, it should be force
# published once a day (e.g. every 12h) Note that the script should be run more
# frequently and publishes only those prices that fit the publishing criteria
maxAgeFeedInSeconds          = 12 * 60 * 60  # max age of 12h
change_min                   = 0.5       # Percentage of price change to force an update
change_max                   = 5       # Percentage of price change to cause a warning

a low change_max helps to prevent market manipulation, specially black swan events. It will stop publishing until manual confirmation, if the value is exceeded in the time span in which you run the script.
with high volatility is where you need to fin tune this parameters. A low change_max without frequently running your script will ask for manual confirmation as false alarm too often to handle.

On the other hand, most if not all Chinese feed sources has a DDOS protection that blacklists your ip with *many* less API calls than the specified. Sometimes you can make reverse DNS loockups to find direct connection to an API, sometimes they provide a private IP if you mail them, but in both cases the addresses change often and you'll have to find out what to put in your hosts file very often if blacklisted by Baidu.

Feeds can be published from a non producing witness with the active key.
If  someone has troubles reaching btc38 at this moment,  producing feeds from a node in China may be a solution.

20
Technical Support / Re: Setting Up a New Witness Node
« on: April 17, 2017, 06:02:18 am »

@rnglab
The websocket exposure was only during the initial synch (per the docs guide) but I will skip it on my next build. Thank you.


Exposing your witness_node *before* enabling block production was not essentially wrong, it just may lead to confussion.
IP address are obfuscated on block producing witness nodes.On top of server hardening (including DOS protection) this is a great built in security measure, but not exempt from network mapping and profiling to reveal a witness IP.

Also remember not importing your witness owner key. If  your nodes get compromised you will only need to deploy new ones with different IP addresses, new active and signing keys and login credentials to start producing again from a clean state.

Quote
[10 APR 2017 Edit: On the production server I skipped this per @rnglab 's below comments, the difference was the synch time to the blockchain - 12Hrs+]

12Hrs is a lot for 3G blockchain. Did you have updated seed nodes then?
https://github.com/bitshares/bitshares-core/blob/master/libraries/app/application.cpp#L163

It  helps to backup your blockchain folder once you closed your witness_node with a clean exit.
If your node crashes you will only need to sync just the last blocks, most of the times without even having to raplay/reindex the blockchain.

You are doing a good job, I have upvoted your witness a few days ago.

21
Hey good to know the RUB black swan event didn't stop you from starting your business.
I will provide RUBLE price feeds as a witness.

I'd just ask not to vote me or other witnesses just because of that, but also taking into consideration  other behavior parameters that you consider important for the network.

OT: are you related to blockchained.com?






22
Technical Support / Re: Setting Up a New Witness Node
« on: March 28, 2017, 11:45:04 pm »
Hi sahkan, just a heads up:

Quote
Now you can test your install, run a full node to update the blockchain: (took me about 1.5 hrs or so...)
$./programs/witness_node/witness_node --rpc-endpoint="0.0.0.0:8090"

there's no need to expose the witness_node websocket rpc  to sync the blockchain, and block producer witness shouldn't expose it for security reasons.

Quote
HW Recommendation: There is no official recommendation. But what I found out is that ATM you should be OK with 8G RAM and a reasonable CPU and with a current blockchain of about 7GB enough disk space to support it.

My block producer witness nodes are using more than 9G RAM on Arch and Jessie this days. Even if you can successfully run it with just 8G, take into consideration that in-memory blockchain state is always growing with new objects  being created every day.  The node will crash if it gets out of RAM so I'd suggest starting with 16G RAM.

Good luck and welcome aboard

23
General Discussion / Re: more professional price feed?
« on: February 23, 2017, 12:22:24 pm »
Forgot to comment back okcoin and btcc from CNY feed sources after running some tests.

abit , data, xman, witness.still, abc123: try removing the chinese exchanges with  BTS:BTC market from your CNY feed sources.

24
General Discussion / Re: more professional price feed?
« on: January 09, 2017, 01:58:47 pm »
Sorry for the low response when CNY volume moved from btc38 and yunbi to other exchanges. It is fixed now.

Also I remained publishing acceptable GOLD and SILVER prices when Yahoo started to bring strange values, as I've added an Quandl API key shortly after xeroc added it as a feedsource.

Now I'm fetching GC and SI from Yahoo instead of XAU and XAG as abit suggested. I also applied his patch to derive prices across 3 markets and everything looks good.


25
General Discussion / Re: more professional price feed?
« on: January 09, 2017, 01:51:34 pm »
I agree to let the competition machanisim solve the problem: obviously shareholders appreciate and would like to vote the witnesses that provide more and better service.

and AFAIK, to provide good price feed is also possible via free/open source script, for example, alt has published his script at https://pypi.python.org/pypi/btsprice/0.2.21, it's a good reference.

on the other side, I wonder whether  we need to consider one question: suppose publishing price feed become what witness must do,  shall we increase the block reward? and to how much?

now being a witness can get some reward, but the reward is not very attractive, we need to balance the responsibility and the reward, maybe we need to reestimate what a reward is more reasonable? maybe a more reasonable reward can lead to more active ecosystem?

kindly give your input on this topic.

@Bhuz sorry if I did things carelessly, I' recheck and take actions accordingly.

 @alt  runs a bussines which depends on precise and resilient feeds. His code skills along with a real incentive, brings us a good chance to improve the way we fetch and derive external prices.
Besides that I think it would be more productive to fork and improve @xeroc script, as a way to sum the scarce resources we have on this topic. 

Some conditions have to be given for diversity to be enriching, and for fair competition to exist at all. In the meanwhile, I think that cooperation is the way to go. Competition will favor aptitude and commitment only when we become able to incentivize it.


 Some numbers:

  - Witness reward averaged something around $200/month this year.

 - Let's say a regular VPS with 8Gb RAM costs 80 USD per month, and 50 USD for 4Gb.
 - That is a 150 USD reward for witnesses running just one node with only 4Gb  (at its very memory limit).
 - There's a 120 USD incentive to have 8Gb on just one node, with no failover at all.
 - Even running two 4Gb nodes with a proper failover strategy (for ~100 USD), both  nodes could easily crash if RAM becomes not enough.

Automatic fork resolution is working great, but it has not been prooven beyond our current TPS.
With checkpoints and delayed nodes, we have revived the network in less than an hour with no major consequences when forks turned into lost of consensus.
But I wouldn't like to see the network crashing just when the real action starts.

 - It seems to me that having two 8Gb nodes per witness, with failover able to identify and move away from minority forks (when possible with just two nodes), are the minimum technical requirements to handle the upcoming network growth. That means a reward of 40 USD per month at most.
Add seed nodes and the time required to constantly check and fix feeds, having everything up to date and the need to remain informed in a daily basis.

That means good withesses working at a loss, while icentivizing poor performance for a proffit.



This also brings another concern to me: as many good neutral witnesses lack of incentive or resources/time despite they good will, it drives business to run it's own witnesses given their need to have reliable feeds.
I see a flaw here:  business tend to have more resources, voting stake, reward incentives and thus good performance , this raises their motivation and chances to have many witnesses voted in.
As business models may disagree about market parameters that are defined by feed producers, this could lead to unfair competition or other undesirable behavors, specially now that new/unknown players are steadily arriving.

This is one of the reasons why witnesses, committee and proxies were planed as independent powers.



I'm not pushing to rise block rewards here, nor discouraging our most valuable witnesses who also runs business over bitshares.
 I still enjoy being reliable and helpful as a witness, rewards aside, and  I'm glad to see this debate going on in a constructive way, finally.
Just want to sumarize some facts I see.

At this point we really need a good balance between competition and collaborative work to make network and market more stable and to reduce the entry barriers.


26
General Discussion / Re: who can tell me what's the GOLD price?
« on: December 28, 2016, 03:02:57 pm »
It may be fair to note that most witnesses have been working practically ad honorem for between one and three years with such a responsability, the most with almost 24/7 avaibility to take care of the network.

Fetching a price sometimes fails due to source API problems. Sometimes it requires small modifications in the script to keep working. Some times the whole logic of the script had to be renewed.

But this is no excuse, we have to fix this asap.

I agree with abit on that stoping a low volume market is better than risking its users and the whole network with wrong feeds.
His decision looks to me as a call for attention.


It looks like only four witnesses are fetching gold and silver prices from sources other than yahoo.

For a fast short term correction, have you tried adding a quandl API key to its URL?





27
General Discussion / Re: Transaction Throughput Testing
« on: December 28, 2016, 01:39:31 pm »
As expressed before, I see no reason to promote bitshares scalability before prooving the yet outstanding throughput we already have, over a sound patform.

There are features being developed that will require a hardfork.
We have @vikram back willing to work for bitshares.
Steem's graphene implementation is free software and actively developed.
If the p2p protocol or something else needs optimizations, this seems to me like the right moment to start working on it.

This would need funding of course. As I get it, dilution not always means devaluation, and even if price drops it can become a good investment if done right.

I can run segregated witness nodes and spamming peers.

And I'd be glad if we can organize this towards an official stable release.

 








28
General Discussion / Re: Imporant! Please Participate!
« on: July 01, 2016, 06:14:49 am »
Now we are talking!

Upvoted

29
hey xeroc, I started writing before you posted . Could you review my answers when you can? We can complement good answers to make all this very clear.
looks great!

As for brain key entropy: The entropy of brain keys is exactly 256 bit .. so the same as private keys.

Side remark: Considering Security, BitShares has a slight advantage over most satoshi/bitcoin based blockchains because it does NOT use addresses but only public keys.
Since addresses are only 150bits, there are multiple (2^(256-150)) public keys that theoretically derive to the same address and if you never spend from your bitcoin address, they all could do so.
Because BitShares does NOT use addresses but the full length public key, you could consider it slightly more secure. Cheers

Thanks for the clarification! Cheers

30
hey @xeroc, great answers. I started writing before you posted so I read it after posting myself .

Could you review my answers when you can? We can complement the simplest answers to let  all this very clear finally.

Edit: by the way I think those where the most important questions to clarify at this stage,  misconceptions here could be the first barrier to get inside. Many people don't even know what trustless means in this cases. I think we can't expect them to belive/understand by themselves how full nodes and wallets are just clean interfaces to the blockchain.

I hope some steem can help here.

Pages: 1 [2] 3 4 5 6 7 8 9 ... 12