Author Topic: [Evaluation] Need for a better python library?  (Read 3494 times)

0 Members and 1 Guest are viewing this topic.

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12908
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
[Evaluation] Need for a better python library?
« on: December 14, 2016, 12:46:49 pm »
Dear shareholders,

in this post, I would like to get an impression on how much you think a new bitshares-specific python library is needed.
As some background, I have been working on a library for Steem that includes a wallet and many of the Steem-specific features so that
writing your own python programs becomes a matter of just adding this library which exposes the whole power of the Steem blockchain.

In the progress of writing python-steem, I learned many lessons that I could apply to a new python-bitshares library (which currently doesn't exist yet).

So, I would like to hear your opinion about this proposal:

Deliverables
  • refactoring of python-graphene for simplicity
  • bitShares-pecific python library
  • including a wallet to store private keys locally (encrypted)
  • an interface to the DEX that allows to buy, sell, borrow
  • an interface to monitor the blockchain
  • methods to monitor your account
  • a command line interface similar to piston

Additionally, I would like to run a public API endpoint so that the library can speak to the network without the need to specify an API node.

Timeframe
Assuming I put 10h/week, I will probably need some 4-5 months to complete the deliverables above. This is in line with the experiences made on the python-steem library (that actually took more time)

Outlook
Once this library is complete, a Userinterface written in QT or GTK similar to electrum can probably be written very quickly as it's now only a frontend and nothing else. (Not part of the proposal)

Costs
  • $100/mth public API
  • $100/h=$4000/mth python development
  • $100 account LTM fee
  • $150 worker creation fee

After the end of the worker, the public API endpoint needs to be funded by another worker, or a witness node. Either way, the worker only covers the API endpoint for the duration of the worker.

Worker
Given that a worker will be voted in for quite some time, I would like to propose a new model of running a worker:
  • I will create a new account, upgrade it to LTM and make it multisig with the committee account and trusted members of the comunity
  • The worker will redeem it's funds on a regular basis and buy up bitUSD from the market (only up to +5% above market)
  • If the market doesn't offer sufficient bitUSD, the worker account will borrow bitUSD at 2.5x collateral
  • For this reasons, the actual pay of the worker is 2.5x the USD value
  • The worker will only pay the agreed amount of money and only in bitUSD to me
  • Every thing that is not paid out after the end of the worker will be settled and returned to the reserve fund

« Last Edit: February 03, 2017, 10:14:33 am by xeroc »
Give BitShares a try! Use the http://testnet.bitshares.eu provided by http://bitshares.eu powered by ChainSquad GmbH

Offline DestBest

Re: [Evaluation] Need for a better python library?
« Reply #1 on: December 14, 2016, 12:53:42 pm »
I like the idea to pay Workers in bitUSD  +5%
BitShares French ConneXion, le portail francophone BitShares.
BitShares French ConneXion, the BitShares french gateway.
www.bitsharesfcx.com

Offline yvv

  • Hero Member
  • *****
  • Posts: 1186
    • View Profile
Re: [Evaluation] Need for a better python library?
« Reply #2 on: December 14, 2016, 01:10:12 pm »
This is worth to vote for just to test a bitUSD payment scheme.

So, how is the worker account going to settle its debt (if any)? Will it wait until bitUSD price get back to 5% from feed?

Offline mf-tzo

  • Hero Member
  • *****
  • Posts: 1725
    • View Profile
Re: [Evaluation] Need for a better python library?
« Reply #3 on: December 14, 2016, 01:55:37 pm »
Approved  :)

Offline chryspano

  • Hero Member
  • *****
  • Posts: 610
    • View Profile
Re: [Evaluation] Need for a better python library?
« Reply #4 on: December 14, 2016, 03:40:11 pm »
 +5%

Offline bitcrab

  • Committee member
  • Hero Member
  • *
  • Posts: 1713
    • View Profile
  • BitShares: bitcrab
  • GitHub: bitcrab
Re: [Evaluation] Need for a better python library?
« Reply #5 on: December 15, 2016, 11:14:13 am »
the idea sounds nice, would like to see it can move forward.

regarding the worker pay advice, in the case that there is no enough bitUSD can be bought from market and finally the worker account borrow bitUSD and pay to worker, how will the worker account be finally settled? waiting someone to force settle?

Offline btswildpig

  • Hero Member
  • *****
  • Posts: 1424
    • View Profile
Re: [Evaluation] Need for a better python library?
« Reply #6 on: December 16, 2016, 02:58:26 am »
whoever is in need of this library should hire developers and code the library according to the specifications of their needs.

BitShares has gone this far without this better python library .

And your proposal is vague as to what this library does and how it will be technically helpful to those who actually need to implement BitShares in their system compare to existing library or code themselves.

All in all, judging by your working plan, I think it's more of a hobby work instead of serious development that matches industrial wage standard .

Just FYI, businesses that actually need to use BitShares will more likely to write their own library for obvious security concerns, including but not limited to "it's a hobby work that made from 10 hours a week " , so most of them will still repeat the work themselves.

I think the non-technical stakeholders need to be aware of this perspective - not every public code is useful for many reasons, especially APIs and libraries , which are mostly business and environment specific with special concerns in mind, and " a hobby work that made from 10 hours a week " could not have covered them. What happens if business do not want to use python but node.js ?  Another proposal to satisfy the imaginary businesses that would somehow bring value to BitShares but can not even pay for 1 developer who works 10 hours a week themselves ?

 
« Last Edit: December 16, 2016, 03:14:24 am by btswildpig »
这个是私人账号,表达的一切言论均不代表任何团队和任何人。This is my personal account , anything I said with this account will be my opinion alone and has nothing to do with any group.

Offline radiumlau

  • Jr. Member
  • **
  • Posts: 25
    • View Profile
Re: [Evaluation] Need for a better python library?
« Reply #7 on: December 16, 2016, 03:18:28 am »
Do not always ask money from BTS holders, but ask what you can do for BTS holders.

Offline lil_jay890

  • Hero Member
  • *****
  • Posts: 1197
    • View Profile
Re: [Evaluation] Need for a better python library?
« Reply #8 on: December 16, 2016, 04:42:01 pm »
Do not always ask money from BTS holders, but ask what you can do for BTS holders.

Haha... CNX was much more and still is "ask money from AGS/PTS/BTS/Brownies/BTS 2.0/Steem holders, don't ask what you can do for AGS/PTS/BTS?Brownies/BTS2.0/Steem holders"

They really set a great precedent...

Offline nmywn

  • Sr. Member
  • ****
  • Posts: 266
    • View Profile
Re: [Evaluation] Need for a better python library?
« Reply #9 on: December 16, 2016, 04:46:05 pm »
Additionally, I would like to run a public API endpoint
I'll vote.

Offline alt

  • Hero Member
  • *****
  • Posts: 2811
    • View Profile
  • BitShares: baozi
Re: [Evaluation] Need for a better python library?
« Reply #10 on: December 17, 2016, 12:25:25 am »
In fact the architecture of witness_node + graphene_gui is  good for private node & wallet, but not suitable for public wallet, it's too inefficient.
the client subscribe all chain block data, and process all low level data struct. the api node can't handle too many clients.

btsbots use a different architecture.
server side pre process the origin low level data, generate a new database suitable for btsbots's use case,  and provide these data through meteor's ddp protocol.
no more api request for witness_node are needed, when client get all the public data include: market orders, operation history, encrypt memo
in fact only broadcast the transaction need a new api request for witness_node.
so I guess this way more better for public wallet, and can handle much more clients.

Offline ebit

  • Committee member
  • Hero Member
  • *
  • Posts: 1814
    • View Profile
  • BitShares: ebit
Re: [Evaluation] Need for a better python library?
« Reply #11 on: December 17, 2016, 12:27:24 pm »
alt  +5%
I like the idea to pay Workers in bitUSD  +5%
« Last Edit: December 17, 2016, 12:30:32 pm by ebit »
telegram:ebit521
https://weibo.com/ebiter

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12908
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
Re: [Evaluation] Need for a better python library?
« Reply #12 on: December 20, 2016, 04:10:22 pm »
Thanks you very much for all the feedback! I appreciate this alot! Let me address some points:

So, how is the worker account going to settle its debt (if any)? Will it wait until bitUSD price get back to 5% from feed?
This is a decision I cannot make as the funds are owned by the shareholders. I personally would either sit it out and just keep the open positions indefinitely, or agree on a ratio to stick with and adapt the collateral once in a while. Either way, the increased amount of available bitUSD goes up.

regarding the worker pay advice, in the case that there is no enough bitUSD can be bought from market and finally the worker account borrow bitUSD and pay to worker, how will the worker account be finally settled? waiting someone to force settle?
That would be an option, or just keep the order open. The call position is owned by the shareholders and it doesn't really matter as the shareholders want increased liquidity in bitUSD and this way get it by having their BTS funds locked up as collateral. Of course, the shareholders can vote on closing it eventually and return the BTS into the reserves but it doesn't really change anything except reduce the amount of liquid bitUSD.

whoever is in need of this library should hire developers and code the library according to the specifications of their needs.
That is exaclty what businesses are doing, but BitShares shareholders don't benefit from it.

Quote
BitShares has gone this far without this better python library .
That's only partially true. Many businesses approached me and wanted a script for this and that. They all got their script and most of them are non public. Why should they be?
Because I used to release my code for free for the last 3 days doesn't mean that I can do so with code that 3rd parties paid for.

Quote
And your proposal is vague as to what this library does and how it will be technically helpful to those who actually need to implement BitShares in their system compare to existing library or code themselves.
Good point. I assumed that people in here know what the piston library (now python-steem) can do and didn't go into detail much.
The point is to have an easy to use library for developers to build ANY application on top of BitShares. Take for instance streemian.com, it uses python-steem in the backend and offers plenty of features for Steem shareholders. Streemian is not the only platform that uses python-steem in the backend. The point here is, because there is an easy to use library, people start buildint stuff and steem has many of those if you take a look at steemtools.com

Quote
All in all, judging by your working plan, I think it's more of a hobby work instead of serious development that matches industrial wage standard .
Apologize for not describing my intensions clearly. The point here is that I offer my time and expertise to build something that can grow the ecosystem for cheaper than I ask businesses for. My weekly schedule simply doesn't allow to work on this for more than 10h/week although there is some work that overlaps.
To be clear also, I don't need to work for BitShares, I can go on and keep the work I do private and sell it to every interested party. But this doesn't help BitShares shareholders and does NOT help homebrew developers that want to look into building something just to find out that there is NO easy to use library.

Quote
Just FYI, businesses that actually need to use BitShares will more likely to write their own library for obvious security concerns, including but not limited to "it's a hobby work that made from 10 hours a week " , so most of them will still repeat the work themselves.
Sorry for making it appear to be a "hobby", which it certainly is not. As for businessses looking to build there own libraries, well, I founded one of these businesses in Germany and am building a library. The security aspect is rather misplaced because audits can only take place once there is software to actually audit.
Furthermore, please let me know if you see a business that has the knowledge and expertise to actually build stuff on top of BitShares that is not CNX, Blocktrades or BunkerchainLabs.

Quote
I think the non-technical stakeholders need to be aware of this perspective - not every public code is useful for many reasons, especially APIs and libraries , which are mostly business and environment specific with special concerns in mind, and " a hobby work that made from 10 hours a week " could not have covered them.
I wonder how you can make this a "hobby" project just because I can't offer more than 10h/week.
Would you be willing to pay 40h/week? For sure, BitShares can't handle that at the current stage and many Shareholders would agree and not even consider this worker. The 10h/week figure is a compromise between the work that I already do, the time that I can offer and the payrate that has at least a slight chance to go through as a worker.

Anyways, I appreciate your input and agree that shareholders should know all the opinions there are.

Oh, btw, did you know that Microsofts' Kinect's success is mostly a result of homebrew developers that appreciate the open source library?

Quote
What happens if business do not want to use python but node.js ?  Another proposal to satisfy the imaginary businesses that would somehow bring value to BitShares but can not even pay for 1 developer who works 10 hours a week themselves ?
Sure, those businesses should not even consider working no top of BitShares if they can't afford a single developer for the language they chose to use.
But how much money do you expect them to sink into learning the existing code base and figuring out HOW to actually work with BitShares?
Would you not agree that people can build their stuff more quickly if there was a widely used, audited and open source library to use, like BitcoinJ, BitcoinJS or web3. Non of those have been build and release open source by a company but are sole community products?

How do you plan on building a community of developers if you don't even provide the basic support? How do you plan to bring in businesses that can't even "play with the blockchain" by using a public library or API?

Do not always ask money from BTS holders, but ask what you can do for BTS holders.
You must be new around here. If you want to see what I have provide for BTS holders for free in the time between launch of BitShares 1 and today, just take a look at the 11k+ posts in this forum

In fact the architecture of witness_node + graphene_gui is  good for private node & wallet, but not suitable for public wallet, it's too inefficient.
the client subscribe all chain block data, and process all low level data struct. the api node can't handle too many clients.
I much appreciate your input on this, alt and agree that the API isn't meant to go high-throughput. Still a redundant node from a redundant provider other than OpenLedger is DESPERATELY needed. Otherwise people will think that BitShares went down just because the OL nodes went down.
The subscription model is certainly something that results in plenty of traffic which is why the library that I plan to build will not make heavy use of it. Subscriptions are still useful for writing bots as they let you know about events without the need to poll for new data every block.

Quote
btsbots use a different architecture.
server side pre process the origin low level data, generate a new database suitable for btsbots's use case,  and provide these data through meteor's ddp protocol.
no more api request for witness_node are needed, when client get all the public data include: market orders, operation history, encrypt memo
in fact only broadcast the transaction need a new api request for witness_node.
so I guess this way more better for public wallet, and can handle much more clients.
wow, this seems to have taken quite a while and a lot of passion to build an API wrapper for BitShares. Is that wrapper open source?
Give BitShares a try! Use the http://testnet.bitshares.eu provided by http://bitshares.eu powered by ChainSquad GmbH

Offline Brekyrself

  • Hero Member
  • *****
  • Posts: 511
    • View Profile
Re: [Evaluation] Need for a better python library?
« Reply #13 on: December 20, 2016, 05:21:13 pm »
The easier it is for others to launch apps built upon BitShares, the better the ecosystem will become.  Big companies will only take notice once there are neat small company app's doing incredible things.  Classic chicken and egg problem.

Create the worker and lets get this moving.

Offline BunkerChainLabs-DataSecurityNode

Re: [Evaluation] Need for a better python library?
« Reply #14 on: December 21, 2016, 12:29:06 am »
So.. I am among the private companies that is getting all kinds of programming work done by Xeroc to work with Bitshares but am not sharing our code because, well, we paid for it. I would prefer if these tools were made available generally to the public though.. it would not have just saved us time and money but I am willing to bet that others would have considered bitshares if the tools were that to make the barrier to entry not so high. This worker is all about that, and this is essential for adoption. I lost count of how may have come an went because of the lack of supporting tools like these. Ethereum largely captures projects because of these type of tools.

If you want to argue otherwise, please look at the past year of adoption and make your case. Good luck with that.

What is also interesting about this worker is that it has been setup with a focus on improving and utilizing our bitassets while also incorporating Committee and trusted member oversight. This can provide a good test if not a standard for future worker proposals that could potentially lead to better ones in the future.

So yes, I am supporting this.. and hope we can have voting support for this to see it through without being short sighted about whatever circumstances Bitshares price goes through and recognizes this as a long term positive impact to the price.

Vote YES to Growth!
+-+-+-+-+-+-+-+-+-+-+
www.Peerplays.com | Decentralized Gaming Built with Graphene - Now with BookiePro!
+-+-+-+-+-+-+-+-+-+-+