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 - ElMato

Pages: 1 2 [3] 4 5 6 7 8 9 10 ... 20
General Discussion / Re: New release 2.0.151209
« on: December 10, 2015, 07:04:22 pm »
ElMato updated

Technical Support / Re: An old NXTer, Newbie here!
« on: November 17, 2015, 03:35:36 am »
Is not the committee account the only allowed to issue a new bitAsset? (BitIRR)

General Discussion / Re: transwiser UI
« on: November 13, 2015, 01:22:00 pm »
Congrats to Transwiser and all the team! +5% +5%

Stakeholder Proposals / Re: Worker Proposal Review
« on: November 11, 2015, 03:59:27 am »
Just a quick note.

DEX orders stays in memory for ever, so at current market cap and 0.1 BTS fee for limit_order_create operation, it will take ~20K USD to exhaust all witnesses memory. ( Assuming 4GB mem witnesses )

Code: [Select]
0.003186*0.1*4*1e9/64 ~= 20K USD
64 = memory usage of 1 limit_order_object
0.1 = fee
4*1e9 = 4GB
0.003186 = USD per BTS

Memory exhausting protection need to be taken into account also.

General Discussion / Re: Blockchain parameters
« on: November 11, 2015, 03:27:10 am »
Tonyk, those numbers are operation numbers.

0   = transfer_operation
41 = transfer_from_blind_operation

General Discussion / Re: Metatrader 4 and Bitshares
« on: November 06, 2015, 05:23:33 pm »
MT4 is a very nice platform , but i don't see reaching an agreement with metaquotes, despite the fact that their server is closed and the also protocol.

Looking at open alternatives i found.

It has many of the features of MT4, and you can extend it using java plugins.
I managed to compile it and run so i shoot an email to the creator to see if he is interested in supporting BitShares dex.

Another alternative. (Not open source, but maybe they are interested in promoting their sdk with giving away a client for BitShares dex)
(I haven't contact them)

Technical Support / Re: Send to multiple accounts with one transaction?
« on: November 03, 2015, 08:06:37 am »
Yes you can, but it's not implemented in the GUI.
You will need to make it using the cli wallet.

General Discussion / Re: BitShares 2.0.151101 released
« on: November 02, 2015, 07:57:30 pm »
ElMato updated

General Discussion / Re: Discussion about new trading fee schedule
« on: October 30, 2015, 05:37:33 am »
one question, how is the fee for partially filled order?

Extracted from BM comments on

There is a potential attack vector of someone crafting orders that fill 99% and then canceling them to avoid the minimum fill order fee. This will require adding a field to the order that tracks whether or not it has been partially filled. A partially filled order does not qualify for a refund.

Is this correct?

Every time a user that I refereed make a transfer, i will see in my account_statistics modified
(pending_fees / pending_vested_fees)?

And in the next maintenance interval those amounts are added to my cashback_vb object?

General Discussion / Re: Help educate Charles on Bitshares 2
« on: October 22, 2015, 04:08:55 am »
What data structures are used in the blockchain?
Blocks => transactions => operations => objects.
The blockchain state is contained in an object database that is affected by the operations.
Example objects:
  • account_object
  • asset_object
  • account_balance_object
  • ...
Code: [Select]
class account_balance_object : public abstract_object<account_balance_object>
         static const uint8_t space_id = implementation_ids;
         static const uint8_t type_id  = impl_account_balance_object_type;

         account_id_type   owner;
         asset_id_type     asset_type;
         share_type        balance;

         asset get_balance()const { return asset(balance, asset_type); }
         void  adjust_balance(const asset& delta);

What is the format of the block header?
Code: [Select]
struct block_header
      digest_type                   digest()const;
      block_id_type                 previous;
      uint32_t                      block_num()const { return num_from_id(previous) + 1; }
      fc::time_point_sec            timestamp;
      witness_id_type               witness;
      checksum_type                 transaction_merkle_root;
      extensions_type               extensions;

      static uint32_t num_from_id(const block_id_type& id);
What is the maximum bitshares block size?
Configurable by chain parameters.

Code: [Select]
   struct chain_parameters
      /** using a smart ref breaks the circular dependency created between operations and the fee schedule */
      smart_ref<fee_schedule> current_fees;                       ///< current schedule of fees
      uint8_t                 block_interval                      = GRAPHENE_DEFAULT_BLOCK_INTERVAL; ///< interval in seconds between blocks
      uint32_t                maintenance_interval                = GRAPHENE_DEFAULT_MAINTENANCE_INTERVAL; ///< interval in sections between blockchain maintenance events
      uint8_t                 maintenance_skip_slots              = GRAPHENE_DEFAULT_MAINTENANCE_SKIP_SLOTS; ///< number of block_intervals to skip at maintenance time
      uint32_t                committee_proposal_review_period    = GRAPHENE_DEFAULT_COMMITTEE_PROPOSAL_REVIEW_PERIOD_SEC; ///< minimum time in seconds that a proposed transaction requiring committee authority may not be signed, prior to expiration
      uint32_t                maximum_transaction_size            = GRAPHENE_DEFAULT_MAX_TRANSACTION_SIZE; ///< maximum allowable size in bytes for a transaction
      uint32_t                maximum_block_size                  = GRAPHENE_DEFAULT_MAX_BLOCK_SIZE; ///< maximum allowable size in bytes for a block
      uint32_t                maximum_time_until_expiration       = GRAPHENE_DEFAULT_MAX_TIME_UNTIL_EXPIRATION; ///< maximum lifetime in seconds for transactions to be valid, before expiring
      uint32_t                maximum_proposal_lifetime           = GRAPHENE_DEFAULT_MAX_PROPOSAL_LIFETIME_SEC; ///< maximum lifetime in seconds for proposed transactions to be kept, before expiring
      uint8_t                 maximum_asset_whitelist_authorities = GRAPHENE_DEFAULT_MAX_ASSET_WHITELIST_AUTHORITIES; ///< maximum number of accounts which an asset may list as authorities for its whitelist OR blacklist
      uint8_t                 maximum_asset_feed_publishers       = GRAPHENE_DEFAULT_MAX_ASSET_FEED_PUBLISHERS; ///< the maximum number of feed publishers for a given asset
      uint16_t                maximum_witness_count               = GRAPHENE_DEFAULT_MAX_WITNESSES; ///< maximum number of active witnesses
      uint16_t                maximum_committee_count             = GRAPHENE_DEFAULT_MAX_COMMITTEE; ///< maximum number of active committee_members
      uint16_t                maximum_authority_membership        = GRAPHENE_DEFAULT_MAX_AUTHORITY_MEMBERSHIP; ///< largest number of keys/accounts an authority can have
      uint16_t                reserve_percent_of_fee              = GRAPHENE_DEFAULT_BURN_PERCENT_OF_FEE; ///< the percentage of the network's allocation of a fee that is taken out of circulation
      uint16_t                network_percent_of_fee              = GRAPHENE_DEFAULT_NETWORK_PERCENT_OF_FEE; ///< percent of transaction fees paid to network
      uint16_t                lifetime_referrer_percent_of_fee    = GRAPHENE_DEFAULT_LIFETIME_REFERRER_PERCENT_OF_FEE; ///< percent of transaction fees paid to network
      uint32_t                cashback_vesting_period_seconds     = GRAPHENE_DEFAULT_CASHBACK_VESTING_PERIOD_SEC; ///< time after cashback rewards are accrued before they become liquid
      share_type              cashback_vesting_threshold          = GRAPHENE_DEFAULT_CASHBACK_VESTING_THRESHOLD; ///< the maximum cashback that can be received without vesting
      bool                    count_non_member_votes              = true; ///< set to false to restrict voting privlegages to member accounts
      bool                    allow_non_member_whitelists         = false; ///< true if non-member accounts may set whitelists and blacklists; false otherwise
      share_type              witness_pay_per_block               = GRAPHENE_DEFAULT_WITNESS_PAY_PER_BLOCK; ///< CORE to be allocated to witnesses (per block)
      uint32_t                witness_pay_vesting_seconds         = GRAPHENE_DEFAULT_WITNESS_PAY_VESTING_SECONDS; ///< vesting_seconds parameter for witness VBO's
      share_type              worker_budget_per_day               = GRAPHENE_DEFAULT_WORKER_BUDGET_PER_DAY; ///< CORE to be allocated to workers (per day)
      uint16_t                max_predicate_opcode                = GRAPHENE_DEFAULT_MAX_ASSERT_OPCODE; ///< predicate_opcode must be less than this number
      share_type              fee_liquidation_threshold           = GRAPHENE_DEFAULT_FEE_LIQUIDATION_THRESHOLD; ///< value in CORE at which accumulated fees in blockchain-issued market assets should be liquidated
      uint16_t                accounts_per_fee_scale              = GRAPHENE_DEFAULT_ACCOUNTS_PER_FEE_SCALE; ///< number of accounts between fee scalings
      uint8_t                 account_fee_scale_bitshifts         = GRAPHENE_DEFAULT_ACCOUNT_FEE_SCALE_BITSHIFTS; ///< number of times to left bitshift account registration fee at each scaling
      uint8_t                 max_authority_depth                 = GRAPHENE_MAX_SIG_CHECK_DEPTH;
      extensions_type         extensions;

      /** defined in fee_schedule.cpp */
      void validate()const;

Are there any sharding mechanics currently deployed?

How are SPV clients handled?
No SPV clients at the moment, each full node can expose a public websocket/http api.

Does the protocol provide mechanisms for overlay protocols to interact such as OR_RETURN?
Yes, using a custom_operation.
Code: [Select]
struct custom_operation : public base_operation
      struct fee_parameters_type {
         uint64_t fee = GRAPHENE_BLOCKCHAIN_PRECISION;
         uint32_t price_per_kbyte = 10;

      asset                     fee;
      account_id_type           payer;
      flat_set<account_id_type> required_auths;
      uint16_t                  id = 0;
      vector<char>              data;

      account_id_type   fee_payer()const { return payer; }
      void              validate()const;
      share_type        calculate_fee(const fee_parameters_type& k)const;

How is time addressed in the blockchain? Is NTP used or some other protocol?

How do new clients bootstrap into the network?
trusted seed nodes

What is the average block time?
Current 3 seconds, configurable by chain parameters.

Is this done via a gossip protocol or through a federate relay?
Each node immediately broadcast the data it receives to its peers after validating it

General Discussion / Re: Help educate Charles on Bitshares 2
« on: October 22, 2015, 03:25:56 am »
What is the standard Bitshares address structure and format?
address = 'BTS'+base58(ripemd(sha512(compressed_pub)))  (checksum obviated)
But addresses are not used directly, instead you have an account (that can be controlled by one or more address, pubkey or another account).

What public key system is used? If elliptic curve, then what is the curve?
Same as Bitcoin, secp256k1.

Is there a specification for Bitshares scripting language? (assuming there is one)
No scripting

Is the scripting language turing complete?
No scripting

What transaction types are natively supported?
Transaction are composed of operations (about ~40 different types).
Example of operations are:
 * transfer_operation
 * limit_order_create_operation
 * asset_issue_operation

Full list

How is accounting addressed in Bitshares? Is it a Nxt style accounting model or like Bitcoin's UTXO
Each account has a finite set of balances, one for each asset type.

What is the average size in Bytes of a Bitshares transaction?
Average wire size of operations is ~30 bytes.
Average mem size of operations is ~100 bytes.

How are transactions validated?
Each operation has a defined evaluator that checks for preconditions (do_evaluate) and modify the state (do_apply). (After signature verification)
Code: [Select]
class transfer_evaluator : public evaluator<transfer_evaluator>
         typedef transfer_operation operation_type;

         void_result do_evaluate( const transfer_operation& o );
         void_result do_apply( const transfer_operation& o );

Are there any special affordances made for privacy such as using CoinJoin or a ZK-SNARK based
privacy scheme like Zerocash? If mixing is integrated at the protocl level are you using the standards set forth by the BNMCKF Mixcoin proposal

Confidential values (same as blockstream elements using the same secp256k1-zkp lib) + stealth addresses.
No mixing, No CoinJoin.

General Discussion / Re: BitShares 2 Release Coordination Thread
« on: October 21, 2015, 08:57:09 pm »

Please vote spartako back in.
He was in since the testnet, all the witnesses are using his bot for checking the feed, status, and to get notify it our own witness is missing blocks.
Always available on telegram, reliable and fast on updates/managing forks.
He also managed to stay in without your vote in the last couple of days, thanks to 40M votes from the community... but now he is out.
He should have the priority over newer witnesses asking for your vote.
So please, vote him back!


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