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.

Topics - ElMato

Pages: 1 [2]
General Discussion / Seems we are in a fork again
« on: December 17, 2014, 07:22:34 am »
---- now at my client

  "blockchain_head_block_num": 1283143,
  "blockchain_head_block_age": "9 seconds old",
  "blockchain_head_block_timestamp": "2014-12-17T07:20:20",
  "blockchain_average_delegate_participation": "37.83 %",

---- now at
blockchain_head_block_num -> 1283222
blockchain_average_delegate_participation -> 63.13%

General Discussion / What is the condition that triggers "rainy day" fund?
« on: December 11, 2014, 03:14:39 am »
- Rainy day fund will be used in case we have uncollateralized bitAssets?
  What is the condition to trigger the use of those funds and what is the mechanic?

General Discussion / Market freeze on fast price movement
« on: December 11, 2014, 03:11:26 am »
Are the price movement restrictions still apply in the actual version of the market engine?
(i remember about certain percentage change will freeze the market in order to give time to traders to reorganize their orders)

I have already done it, but i don't know if its "legal".

General Discussion / Mobile Wallet - Testers needed
« on: December 01, 2014, 08:57:20 am »


* Follow the "How to upgrade" instructions if you have alpha-1 installed.
* If you plan to transfer funds from desktop wallet to mobile, don't use the GUI because it will generate a titan transaction that the mobile wallet wont see. (If it happens by mistake PM me and i will help you recovering those funds)
use wallet_transfer_to_address 5 USD your_account your_address_in_mobile from console.


1) Export your wallet
2) Install alpha2
3) Restore wallet


Bitwallet-debug.apk shasum f71c67062343232b3ddf4e6bdf6d08c64801b836


* i18N ready.
  - english
  - spanish
  - russian [thanks testz]
  - korean [thanks clayop]
  - chinese [thanks btswildpig]
  - italian [thanks spartako]

* Send to registered name (non-TITAN)
* Scan publickey
* Scan paper wallet
* Multicurrency CNY/USD/BTC/Gold
* Local address book


Dear community,

My name is Matias Romeo and together with Pablo Tutino we are both cofounders of

We are based in Buenos Aires (Argentina) working from the "Bitcoin Center Buenos Aires" (aka: Bitcoin Embassy)

As many of you know the current situation in our country is one of a big opportunity for bitUSD, and seeing that the mobile wallet for bitshares is lagging behind we decided to do our contribution and started the development of a mobile bitasset wallet.

We think that Argentina has a lot of potential for the daily use of bitUSD and we have a lot of efforts going on in that sense that hope to release soon.

This is highly alpha software so if you plan to use it do not put large sums of money.

Source code here

Screenshots and apk

All the keys can be recovered from the master key, so it is recommended that you backup your wallet after installing the app.

It will only work on Android 4.0+ (for now)

In fact it runs on iOS, but the performance is too bad because of the JS engine.
We are working on a native iOS/Android plugin for the crypto part.

How does it work?
The client is in control of the private keys.
It uses a public API to create an unsigned transaction, then it signs it on client side, and push it to the network.
(See API below)

How do i send money to the wallet?
Select and address from the "My Addresses" list and use the wallet_transfer_asset_to_address command from the console (in the desktop wallet).
e.g.: wallet_transfer_asset_to_address 5 USD my_account BTSX9pTBfYkFwmUm46XTaeTLukGDrupobHwzc

Why i can't send to an account name?
It is planned for the next release.

Why i can't register my "account"?
It is planned for the next release.

What crypto library are you using?
We use bitcoinjs-lib 1.2.0 (with our bts.js to encode in BTS way) for the Hierarchical keys + Signing and CryptoJS for the AES encryption/decryption of the wallet.

Why USD only?
It is trivial to support other bitAssets, but we want to focus on bitUSD first.
In the following releases you will be able to switch from one bitAsset to another.

Why the apk is so big?
Chrome runtime is bundled within the ape (two architectures x86+arm )
We are using cross-walk library in order to use the latest Chrome runtime for android and to support

Why it looks so bad in my XXXXX device?
We are in alpha, give us some time to fix the design.

Other bugs and limitations:

- Client does not validate the transaction generated on the server. (Is the transaction doing what i asked for?)
- Only for newly created keys (from block 900000+)
- SSL Certificate error alert: xwalk lib is built with --check-web-security and we are using a self signed certificate in our WebSocket server (
- Balance/Transaction history not refreshed after wallet restore. (Need to quit and run again)
- Export does not include address book.
- Unable to select an address from the address book when sending.
- Unusable on iOS
- Transaction details duplicates withdraws and deposits records.
- Rounding errors in balance.

## API
(doc coming soon)

This api lets you create an unsigned transaction using funds from many addresses and sending to many addresses.

Code: [Select]
 "asset" : 22,
 "fee"   : 250,
 "from"  : [{"address":"BTSX9pTBfYkFwmUm46XTaeTLukGDrupobHwzc"}],
 "to"    : [{
    "address" : "BTSXF9WuaEqYn5sZJQGK6qzR8S9jRehUgQXzZ",
    "amount"  : 50000
After that you have to sign the transaction digest (to_sign parameter in response json) with the corresponding private keys asked by required_signatures.
Add those signatures to a "signatures" parameter in "tx" json object and push it back to

This api lets you know the balance and transaction history of an address.

It also support BIP32 Extended pub key format. (5 is the number of derivations)

There is also a websocket subscription mechanism to notify you when funds have been received or sent from a group of addresses.

sub BTSX9pTBfYkFwmUm46XTaeTLukGDrupobHwzc
sub xpub661MyMwAqRbcEYS8w7XLSVeEsBXy79zSzH1J8vCdxAZningWLdN3zgtU6T6MHAZTgj9H6QNfLWByR1Dj4exUQ8FqYv9s7KecprYm7unUkX1:5

I was using the cli client but wanted to take a screenshot so i closed the cli and started the GUI version.

I went to the console first (inside the GUI) and type "wallet_open test" (because i wanted to see if a missing transaction was finally there)

The GUI locks, i try to put the "test" wallet password, it didn't work so i re-entered the "default" wallet password .. i'm in again.

No connection ... and after a while (1 minute) it starts to download the blockchain from the beginin. (Your last block is 10xd old message)

Code: [Select]
(wallet closed) >>> info
  "blockchain_head_block_num": 23970,
  "blockchain_head_block_age": "15 weeks old",
  "blockchain_head_block_timestamp": "2014-07-22T01:27:30",
  "blockchain_average_delegate_participation": "0.01 %",
  "blockchain_confirmation_requirement": 1,
  "blockchain_delegate_pay_rate": "2.31959 BTSX",
  "blockchain_share_supply": "1,999,998,736.91903 BTSX",
  "blockchain_blocks_left_in_round": 68,
  "blockchain_next_round_time": "at least 11 minutes in the future",
  "blockchain_next_round_timestamp": "2014-11-05T04:50:50",
  "blockchain_random_seed": "45b49063507163d58a061907f000ee8122e71d6f",
  "client_data_dir": "/Users/matias/Library/Application Support/BitShares X",
  "client_version": "v0.4.23.1",
  "network_num_connections": 0,
  "network_num_connections_max": 200,
  "network_chain_downloader_running": false,
  "network_chain_downloader_blocks_remaining": null,
  "ntp_time": "2014-11-05T04:39:30",
  "ntp_time_error": -0.051547999999999997,
  "wallet_open": false,
  "wallet_unlocked": null,
  "wallet_unlocked_until": null,
  "wallet_unlocked_until_timestamp": null,
  "wallet_last_scanned_block_timestamp": null,
  "wallet_scan_progress": null,
  "wallet_block_production_enabled": null,
  "wallet_next_block_production_time": null,
  "wallet_next_block_production_timestamp": null

And now i'm stuck at block 23970.

    th_a  chain_database.cpp:573 switch_to_fork, reverting         chain_database.cpp:1617
20141105T043620.676411 th_a:invoke handle_message                store ] storing error in database: {"code":6,"name":"key_not_found_exception","message":"Key Not Found","stack":[{"context":{"level":"error","file":"level_map.hpp","line":106,"method":"fetch","hostname":"","thread_name":"th_a","timestamp":"20141105T043620.676094"},"format":"unable to find key ${key}","data":{"key":"2acd1a253129d4a274efba03ca9faf8ccdbf033d"}},{"context":{"level":"warn","file":"level_map.hpp","line":116,"method":"fetch","hostname":"","thread_name":"th_a","timestamp":"20141105T043620.676114"},"format":"error fetching key ${key}","data":{"key":"2acd1a253129d4a274efba03ca9faf8ccdbf033d"}},{"context":{"level":"warn","file":"chain_database.cpp","line":1119,"method":"pop_block","hostname":"","thread_name":"th_a","timestamp":"20141105T043620.676133"},"format":"","data":{}},{"context":{"level":"warn","file":"chain_database.cpp","line":573,"method":"switch_to_fork","hostname":"","thread_name":"th_a","timestamp":"20141105T043620.676154"},"format":"","data":{"block_id":"2acd1a253129d4a274efba03ca9faf8ccdbf033d"}},{"context":{"level":"warn","file":"chain_database.cpp","line":1629,"method":"push_block","hostname":"","thread_name":"th_a","timestamp":"20141105T043620.676218"},"format":"","data":{"block_data":{"previous":"3463f500b1993d7e8b6e5b4c64db7c51f8f4c4d0","block_num":23973,"timestamp":"20140722T012800","transaction_digest":"c8cf12fe3180ed901a58a0697a522f1217de72d04529bd255627a4ad6164f0f0","next_secret_hash":"3aa9cac06eb3838f92baa9b235d941fef73b2038","previous_secret":"73ef8c051808fa2259579d900973aa103d43a66f","delegate_signature":"20c01cc938ba535b6e5d758ebc02a13cd4b78b936c0d846bfd9384840fb61aa30afa096847f194c9223031eb7e45b58100fb1ab9db58cb0ecf32c39b61d72ccdd1","user_transactions":[]}}},{"context":{"level":"warn","file":"client.cpp","line":1222,"method":"on_new_block","hostname":"","thread_name":"th_a","timestamp":"20141105T043620.676282"},"format":"Error pushing block ${block_number} - ${block_id}","data":{"block_id":"cd1f95dca148ce7c93f4ec1c137d84085ba64f1e","block_number":23973,"block":{"previous":"3463f500b1993d7e8b6e5b4c64db7c51f8f4c4d0","block_num":23973,"timestamp":"20140722T012800","transaction_digest":"c8cf12fe3180ed901a58a0697a522f1217de72d04529bd255627a4ad6164f0f0","next_secret_hash":"3aa9cac06eb3838f92baa9b235d941fef73b2038","previous_secret":"73ef8c051808fa2259579d900973aa103d43a66f","delegate_signature":"20c01cc938ba535b6e5d758ebc02a13cd4b78b936c0d846bfd9384840fb61aa30afa096847f194c9223031eb7e45b58100fb1ab9db58cb0ecf32c39b61d72ccdd1","user_transactions":[]}}}]}         client.cpp:518
20141105T043620.677877 th_a:invoke handle_message           push_block ] attempt to switch to fork failed: 6 key_not_found_exception: Key Not Found
unable to find key 2acd1a253129d4a274efba03ca9faf8ccdbf033d
    th_a  level_map.hpp:106 fetch
error fetching key 2acd1a253129d4a274efba03ca9faf8ccdbf033d
    th_a  level_map.hpp:116 fetch

    th_a  chain_database.cpp:1119 pop_block

General Discussion / Maintain blockchain balances in DB
« on: November 04, 2014, 11:24:11 pm »
Can someone review this pseudo code and tell me if the fork handling is right?

def function_called_periodically()

    # My last block imported in DB
    my_last_block = get_last_block_from_db()

    # Network last block (head of master chain)
    network_last_block = blockchain_get_block_count()

    # Is network ahead of us?
    while network_last_block > my_last_block

      # Get next block based on my last imported block
      next_block = blockchain_get_block(my_last_block+1)

      # I'm on the main chain?
      if next_block['previous'] != my_last_block
        # NO => my block is on a forked chain, undo changes.
        my_last_block = get_last_block_from_db()
        # YES => Import
        my_last_block = import_new_block_in_db_and_update_balances(next_block)

General Discussion / Help me craft a raw transaction
« on: October 27, 2014, 05:06:58 am »
I know that devs are involved in more important things, but it would be really helpful to have a simple example of how to create two types of raw transactions.

1) Account register.
2) Asset transfer.

Number one is useful when i want to register an account on behalf of other person. (ie: Mobile Client signup process)
We will create the private keys like wallet_account_create does.

So far, this is what i have diving into the source code.

uint32_t utc_seconds;
uint64_t delegate_slate_id;
VARINT  n_ops; (number of ops)
-- register account operation
uint8_t                 operation_type
VARINT                  name_length
char[name_length]       name
VARIANT                   public_data  (json string serialized as VARIANT?)
uint8_t[33]             owner_key
uint8_t[33]             active_key
uint8_t                 delegate_pay_rate
uint32_t                account_type
VARINT                  data_length
char[data_length]       data

--- withdraw operations
-- signatures

is this ok?

Then i have to provide the signatures of the spent record ids (from the pay account) that pays for the transaction fee.
For this i need to know the blockchain format.

I remember that drltc was working on this, is there any documentation to look?

Other questions:
Do we have an equivalent of change addresses in bitshares?
Or balance records are modified "in place"?

Do we have any tool in python/ruby to read the blockchain and extract information?


Im connected to the network (network_get_connection_count between 1 and 5) but i cant go beyond block 728214.

(wallet closed) >>> about
  "blockchain_name": "BitShares X",
  "blockchain_description": "Decentralized Autonomous Exchange",
  "client_version": "v0.4.20",
  "bitshares_toolkit_revision": "ab40d8dc51cd4e54c0e05a2e9770fca3f03d6565",
  "bitshares_toolkit_revision_age": "18 days ago",
  "fc_revision": "c4e814d7ded6099dc4297aa843d4be7afa98b3ed",
  "fc_revision_age": "20 days ago",
  "compile_date": "compiled on Oct 10 2014 at 21:45:38",
  "boost_version": "1.56",
  "openssl_version": "OpenSSL 1.0.1i 6 Aug 2014",
  "build": "osx 64-bit"

(wallet closed) >>> blockchain_get_block_count

(wallet closed) >>> blockchain_get_block 728214
  "previous": "65de54a989bbff9364f7de5eda59e04361950a3b",
  "block_num": 728214,
  "timestamp": "20141013T013800",
  "transaction_digest": "c8cf12fe3180ed901a58a0697a522f1217de72d04529bd255627a4ad6164f0f0",
  "next_secret_hash": "6796a4eb42517bba7bed76f5d4a617421837cbc5",
  "previous_secret": "6861922a10b235011fbdd9df9384d0c891dea065",
  "delegate_signature": "1fa445545cf7d186e61d35bf983fb2fd7d319ffb42ce1791a15d27b6ca56b37328aaced8b185b98e752c101201b0a76596b4bf5fbccbbbb259ce47ef596bc44d5c",
  "user_transaction_ids": []

Based on, it seems that i'm not in a fork

I know that i can remove everything and start all over again, but i would like to diagnose whats happening.

Any hint?

Technical Support / v0.4.16 compile error on osx
« on: September 22, 2014, 03:51:48 am »
Trying to compile tag v0.4.16 from

-- Target htdocs directory already exists, exiting...
[ 95%] Built target buildweb
make[2]: *** No rule to make target `programs/qt_wallet/images/splash_screen.jpg', needed by `programs/qt_wallet/qrc_bitshares.cpp'.  Stop.
make[1]: *** [programs/qt_wallet/CMakeFiles/BitSharesX.dir/all] Error 2
make: *** [all] Error 2

Any hint?

General Discussion / Coinapult locks on
« on: August 06, 2014, 05:42:09 am »
I saw the oportunity to talk about bitshares-x in this thread.

If anyone wants to add something or think i missed an important point please reply!

General Discussion / Who is working on this?
« on: April 10, 2014, 06:52:42 am »
Hi, who is the main developer of this DAC?
Any progress, any git repo for us to see?  :)


Pages: 1 [2]