Ecoer Logo

@rtrade

41

Steemit page for RTrade Technologies LTD. Specialists in Blockchain Infrastructure

steemit.com/@rtrade
VOTING POWER100.00%
DOWNVOTE POWER100.00%
RESOURCE CREDITS100.00%
REPUTATION PROGRESS80.32%
Net Worth
0.365USD
STEEM
0.000STEEM
SBD
0.005SBD
Own SP
6.702SP

Detailed Balance

STEEM
balance
0.000STEEM
market_balance
0.000STEEM
savings_balance
0.000STEEM
reward_steem_balance
0.000STEEM
STEEM POWER
Own SP
6.702SP
Delegated Out
0.000SP
Delegation In
0.000SP
Effective Power
6.702SP
Reward SP (pending)
0.000SP
SBD
sbd_balance
0.005SBD
sbd_conversions
0.000SBD
sbd_market_balance
0.000SBD
savings_sbd_balance
0.000SBD
reward_sbd_balance
0.000SBD
{
  "balance": "0.000 STEEM",
  "savings_balance": "0.000 STEEM",
  "reward_steem_balance": "0.000 STEEM",
  "vesting_shares": "10913.017448 VESTS",
  "delegated_vesting_shares": "0.000000 VESTS",
  "received_vesting_shares": "0.000000 VESTS",
  "sbd_balance": "0.005 SBD",
  "savings_sbd_balance": "0.000 SBD",
  "reward_sbd_balance": "0.000 SBD",
  "conversions": []
}

Account Info

namertrade
id1004618
rank182,950
reputation57004845007
created2018-05-23T23:19:36
recovery_accountsteem
proxyNone
post_count43
comment_count0
lifetime_vote_count0
witnesses_voted_for0
last_post2019-05-11T05:55:12
last_root_post2019-05-11T05:55:12
last_vote_time2019-05-11T05:55:30
proxied_vsf_votes0, 0, 0, 0
can_vote1
voting_power10,000
delayed_votes0
balance0.000 STEEM
savings_balance0.000 STEEM
sbd_balance0.005 SBD
savings_sbd_balance0.000 SBD
vesting_shares10913.017448 VESTS
delegated_vesting_shares0.000000 VESTS
received_vesting_shares0.000000 VESTS
reward_vesting_balance0.000000 VESTS
vesting_balance0.000 STEEM
vesting_withdraw_rate0.000000 VESTS
next_vesting_withdrawal1969-12-31T23:59:59
withdrawn65707049110
to_withdraw65707049110
withdraw_routes0
savings_withdraw_requests0
last_account_recovery1970-01-01T00:00:00
reset_accountnull
last_owner_update2018-06-22T06:29:21
last_account_update2018-07-19T15:17:51
minedNo
sbd_seconds0
sbd_last_interest_payment2018-12-06T23:13:39
savings_sbd_last_interest_payment1970-01-01T00:00:00
{
  "id": 1004618,
  "name": "rtrade",
  "owner": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM7FjLoFn2ZCFr8Xh7t6hTsYGyGHe7C7dyegFz7ByTuGcHpfZXiH",
        1
      ]
    ]
  },
  "active": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM6wzdmt6xJ6SQh87k7FHm8z8jXnx1Hx4msAA2qiQpaMmHAeiXM7",
        1
      ]
    ]
  },
  "posting": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM6zrckzoNfRuT31Z74BHFDKoJxnck8o2E4ADEutTRn3GDMwrYeW",
        1
      ]
    ]
  },
  "memo_key": "STM7buGbJducfuRaRqK9MHDsJHrdBT7eHrsjoWYLPFzMmbQEvpfdy",
  "json_metadata": "{\"profile\":{\"location\":\"Canada\",\"website\":\"http://www.rtradetechnologies.com\",\"about\":\"Steemit page for RTrade Technologies LTD. Specialists in Blockchain Infrastructure\",\"name\":\"RTrade Technologies\",\"profile_image\":\"https://cdn.steemitimages.com/DQmS3zhzYVoAcpMWWALxHmxULS9krj2uPXYorCqr9dvf6Ep/about-us_R-logo%20Circle.png\",\"cover_image\":\"https://cdn.steemitimages.com/DQmcrrfZzmzKWjtN2JagXTsvCqd9wyF6igBquUEvmPTVqFa/Twitter%20Header.png\"}}",
  "posting_json_metadata": "{\"profile\":{\"location\":\"Canada\",\"website\":\"http://www.rtradetechnologies.com\",\"about\":\"Steemit page for RTrade Technologies LTD. Specialists in Blockchain Infrastructure\",\"name\":\"RTrade Technologies\",\"profile_image\":\"https://cdn.steemitimages.com/DQmS3zhzYVoAcpMWWALxHmxULS9krj2uPXYorCqr9dvf6Ep/about-us_R-logo%20Circle.png\",\"cover_image\":\"https://cdn.steemitimages.com/DQmcrrfZzmzKWjtN2JagXTsvCqd9wyF6igBquUEvmPTVqFa/Twitter%20Header.png\"}}",
  "proxy": "",
  "last_owner_update": "2018-06-22T06:29:21",
  "last_account_update": "2018-07-19T15:17:51",
  "created": "2018-05-23T23:19:36",
  "mined": false,
  "recovery_account": "steem",
  "last_account_recovery": "1970-01-01T00:00:00",
  "reset_account": "null",
  "comment_count": 0,
  "lifetime_vote_count": 0,
  "post_count": 43,
  "can_vote": true,
  "voting_manabar": {
    "current_mana": "954278682119",
    "last_update_time": 1557554130
  },
  "downvote_manabar": {
    "current_mana": 0,
    "last_update_time": 1527117576
  },
  "voting_power": 10000,
  "balance": "0.000 STEEM",
  "savings_balance": "0.000 STEEM",
  "sbd_balance": "0.005 SBD",
  "sbd_seconds": "0",
  "sbd_seconds_last_update": "2018-12-06T23:13:39",
  "sbd_last_interest_payment": "2018-12-06T23:13:39",
  "savings_sbd_balance": "0.000 SBD",
  "savings_sbd_seconds": "0",
  "savings_sbd_seconds_last_update": "1970-01-01T00:00:00",
  "savings_sbd_last_interest_payment": "1970-01-01T00:00:00",
  "savings_withdraw_requests": 0,
  "reward_sbd_balance": "0.000 SBD",
  "reward_steem_balance": "0.000 STEEM",
  "reward_vesting_balance": "0.000000 VESTS",
  "reward_vesting_steem": "0.000 STEEM",
  "vesting_shares": "10913.017448 VESTS",
  "delegated_vesting_shares": "0.000000 VESTS",
  "received_vesting_shares": "0.000000 VESTS",
  "vesting_withdraw_rate": "0.000000 VESTS",
  "next_vesting_withdrawal": "1969-12-31T23:59:59",
  "withdrawn": "65707049110",
  "to_withdraw": "65707049110",
  "withdraw_routes": 0,
  "curation_rewards": 167,
  "posting_rewards": 4282,
  "proxied_vsf_votes": [
    0,
    0,
    0,
    0
  ],
  "witnesses_voted_for": 0,
  "last_post": "2019-05-11T05:55:12",
  "last_root_post": "2019-05-11T05:55:12",
  "last_vote_time": "2019-05-11T05:55:30",
  "post_bandwidth": 0,
  "pending_claimed_accounts": 0,
  "vesting_balance": "0.000 STEEM",
  "reputation": "57004845007",
  "transfer_history": [],
  "market_history": [],
  "post_history": [],
  "vote_history": [],
  "other_history": [],
  "witness_votes": [],
  "tags_usage": [],
  "guest_bloggers": [],
  "rank": 182950
}

Withdraw Routes

IncomingOutgoing
Empty
Empty
{
  "incoming": [],
  "outgoing": []
}
From Date
To Date
rtradesent 33.994 STEEM to @deepcrypto8- "100181885"
2020/09/17 19:47:54
fromrtrade
todeepcrypto8
amount33.994 STEEM
memo100181885
Transaction InfoBlock #46956602/Trx 27b9193ef1d54832800fa29a91282a39759cba61
View Raw JSON Data
{
  "trx_id": "27b9193ef1d54832800fa29a91282a39759cba61",
  "block": 46956602,
  "trx_in_block": 4,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-09-17T19:47:54",
  "op": [
    "transfer",
    {
      "from": "rtrade",
      "to": "deepcrypto8",
      "amount": "33.994 STEEM",
      "memo": "100181885"
    }
  ]
}
rtradereceived 8.509 STEEM from power down installment (10.088 SP)
2020/09/17 02:08:48
from accountrtrade
to accountrtrade
withdrawn16426.762276 VESTS
deposited8.509 STEEM
Transaction InfoBlock #46935674/Virtual Operation #2
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 46935674,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 2,
  "timestamp": "2020-09-17T02:08:48",
  "op": [
    "fill_vesting_withdraw",
    {
      "from_account": "rtrade",
      "to_account": "rtrade",
      "withdrawn": "16426.762276 VESTS",
      "deposited": "8.509 STEEM"
    }
  ]
}
rtradereceived 8.502 STEEM from power down installment (10.088 SP)
2020/09/10 02:08:48
from accountrtrade
to accountrtrade
withdrawn16426.762278 VESTS
deposited8.502 STEEM
Transaction InfoBlock #46736517/Virtual Operation #2
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 46736517,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 2,
  "timestamp": "2020-09-10T02:08:48",
  "op": [
    "fill_vesting_withdraw",
    {
      "from_account": "rtrade",
      "to_account": "rtrade",
      "withdrawn": "16426.762278 VESTS",
      "deposited": "8.502 STEEM"
    }
  ]
}
rtradereceived 8.495 STEEM from power down installment (10.088 SP)
2020/09/03 02:08:48
from accountrtrade
to accountrtrade
withdrawn16426.762278 VESTS
deposited8.495 STEEM
Transaction InfoBlock #46537384/Virtual Operation #2
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 46537384,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 2,
  "timestamp": "2020-09-03T02:08:48",
  "op": [
    "fill_vesting_withdraw",
    {
      "from_account": "rtrade",
      "to_account": "rtrade",
      "withdrawn": "16426.762278 VESTS",
      "deposited": "8.495 STEEM"
    }
  ]
}
rtradereceived 8.488 STEEM from power down installment (10.088 SP)
2020/08/27 02:08:48
from accountrtrade
to accountrtrade
withdrawn16426.762278 VESTS
deposited8.488 STEEM
Transaction InfoBlock #46338199/Virtual Operation #2
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 46338199,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 2,
  "timestamp": "2020-08-27T02:08:48",
  "op": [
    "fill_vesting_withdraw",
    {
      "from_account": "rtrade",
      "to_account": "rtrade",
      "withdrawn": "16426.762278 VESTS",
      "deposited": "8.488 STEEM"
    }
  ]
}
rtradestarted power down of 40.350 SP
2020/08/20 02:08:48
accountrtrade
vesting shares65707.049110 VESTS
Transaction InfoBlock #46139281/Trx 9adca65b588690f8f1adfef4645d60c7b782817b
View Raw JSON Data
{
  "trx_id": "9adca65b588690f8f1adfef4645d60c7b782817b",
  "block": 46139281,
  "trx_in_block": 3,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-08-20T02:08:48",
  "op": [
    "withdraw_vesting",
    {
      "account": "rtrade",
      "vesting_shares": "65707.049110 VESTS"
    }
  ]
}
rtradesent 106.265 STEEM to @deepcrypto8- "100181885"
2020/07/28 00:25:48
fromrtrade
todeepcrypto8
amount106.265 STEEM
memo100181885
Transaction InfoBlock #45483193/Trx c1148056c62c36e94ba7a9984bac13e785c84a8b
View Raw JSON Data
{
  "trx_id": "c1148056c62c36e94ba7a9984bac13e785c84a8b",
  "block": 45483193,
  "trx_in_block": 3,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-07-28T00:25:48",
  "op": [
    "transfer",
    {
      "from": "rtrade",
      "to": "deepcrypto8",
      "amount": "106.265 STEEM",
      "memo": "100181885"
    }
  ]
}
rtradereceived 35.442 STEEM from power down installment (42.379 SP)
2020/06/20 02:23:33
from accountrtrade
to accountrtrade
withdrawn69010.283895 VESTS
deposited35.442 STEEM
Transaction InfoBlock #44401431/Virtual Operation #2
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 44401431,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 2,
  "timestamp": "2020-06-20T02:23:33",
  "op": [
    "fill_vesting_withdraw",
    {
      "from_account": "rtrade",
      "to_account": "rtrade",
      "withdrawn": "69010.283895 VESTS",
      "deposited": "35.442 STEEM"
    }
  ]
}
rtradereceived 35.421 STEEM from power down installment (42.379 SP)
2020/06/13 02:23:33
from accountrtrade
to accountrtrade
withdrawn69010.283901 VESTS
deposited35.421 STEEM
Transaction InfoBlock #44202165/Virtual Operation #2
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 44202165,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 2,
  "timestamp": "2020-06-13T02:23:33",
  "op": [
    "fill_vesting_withdraw",
    {
      "from_account": "rtrade",
      "to_account": "rtrade",
      "withdrawn": "69010.283901 VESTS",
      "deposited": "35.421 STEEM"
    }
  ]
}
rtradereceived 35.401 STEEM from power down installment (42.379 SP)
2020/06/06 02:23:33
from accountrtrade
to accountrtrade
withdrawn69010.283901 VESTS
deposited35.401 STEEM
Transaction InfoBlock #44003493/Virtual Operation #2
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 44003493,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 2,
  "timestamp": "2020-06-06T02:23:33",
  "op": [
    "fill_vesting_withdraw",
    {
      "from_account": "rtrade",
      "to_account": "rtrade",
      "withdrawn": "69010.283901 VESTS",
      "deposited": "35.401 STEEM"
    }
  ]
}
exnihilo.witnesssent 0.001 STEEM to @rtrade- "By casting your witness vote on @exnihilo.witness you will passively earn and be rewarded just for voting. More information : https://steemit.com/@exnihilo.witness"
2020/06/03 23:11:45
fromexnihilo.witness
tortrade
amount0.001 STEEM
memoBy casting your witness vote on @exnihilo.witness you will passively earn and be rewarded just for voting. More information : https://steemit.com/@exnihilo.witness
Transaction InfoBlock #43943009/Trx b7e6daf202b9246bdc717a232b7a9abb642ea0ed
View Raw JSON Data
{
  "trx_id": "b7e6daf202b9246bdc717a232b7a9abb642ea0ed",
  "block": 43943009,
  "trx_in_block": 5,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-06-03T23:11:45",
  "op": [
    "transfer",
    {
      "from": "exnihilo.witness",
      "to": "rtrade",
      "amount": "0.001 STEEM",
      "memo": "By casting your witness vote on @exnihilo.witness you will passively earn and be rewarded just for voting. More information : https://steemit.com/@exnihilo.witness"
    }
  ]
}
rtradesent 106.605 STEEM to @deepcrypto8- "100181885"
2020/06/03 23:10:48
fromrtrade
todeepcrypto8
amount106.605 STEEM
memo100181885
Transaction InfoBlock #43942990/Trx 97cfd9774d0fdb7f5b9dce41c6e29d344e36dbe4
View Raw JSON Data
{
  "trx_id": "97cfd9774d0fdb7f5b9dce41c6e29d344e36dbe4",
  "block": 43942990,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-06-03T23:10:48",
  "op": [
    "transfer",
    {
      "from": "rtrade",
      "to": "deepcrypto8",
      "amount": "106.605 STEEM",
      "memo": "100181885"
    }
  ]
}
rtradereceived 35.381 STEEM from power down installment (42.379 SP)
2020/05/30 02:23:33
from accountrtrade
to accountrtrade
withdrawn69010.283901 VESTS
deposited35.381 STEEM
Transaction InfoBlock #43805214/Virtual Operation #9
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 43805214,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 9,
  "timestamp": "2020-05-30T02:23:33",
  "op": [
    "fill_vesting_withdraw",
    {
      "from_account": "rtrade",
      "to_account": "rtrade",
      "withdrawn": "69010.283901 VESTS",
      "deposited": "35.381 STEEM"
    }
  ]
}
rtradereceived 35.363 STEEM from power down installment (42.379 SP)
2020/05/23 02:23:33
from accountrtrade
to accountrtrade
withdrawn69010.283901 VESTS
deposited35.363 STEEM
Transaction InfoBlock #43607428/Virtual Operation #285
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 43607428,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 285,
  "timestamp": "2020-05-23T02:23:33",
  "op": [
    "fill_vesting_withdraw",
    {
      "from_account": "rtrade",
      "to_account": "rtrade",
      "withdrawn": "69010.283901 VESTS",
      "deposited": "35.363 STEEM"
    }
  ]
}
rtradereceived 35.346 STEEM from power down installment (42.379 SP)
2020/05/16 02:23:33
from accountrtrade
to accountrtrade
withdrawn69010.283901 VESTS
deposited35.346 STEEM
Transaction InfoBlock #43410147/Virtual Operation #2
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 43410147,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 2,
  "timestamp": "2020-05-16T02:23:33",
  "op": [
    "fill_vesting_withdraw",
    {
      "from_account": "rtrade",
      "to_account": "rtrade",
      "withdrawn": "69010.283901 VESTS",
      "deposited": "35.346 STEEM"
    }
  ]
}
rtradesent 35.000 STEEM to @silly-einstein- "55663882-b6d2-4d7f-b93b-da8ade28f296"
2020/05/11 19:54:09
fromrtrade
tosilly-einstein
amount35.000 STEEM
memo55663882-b6d2-4d7f-b93b-da8ade28f296
Transaction InfoBlock #43289917/Trx 50ffe22a95928f0dd3cfa765b5f8d9ec9c791299
View Raw JSON Data
{
  "trx_id": "50ffe22a95928f0dd3cfa765b5f8d9ec9c791299",
  "block": 43289917,
  "trx_in_block": 5,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-05-11T19:54:09",
  "op": [
    "transfer",
    {
      "from": "rtrade",
      "to": "silly-einstein",
      "amount": "35.000 STEEM",
      "memo": "55663882-b6d2-4d7f-b93b-da8ade28f296"
    }
  ]
}
rtradereceived 35.331 STEEM from power down installment (42.379 SP)
2020/05/09 02:23:33
from accountrtrade
to accountrtrade
withdrawn69010.283901 VESTS
deposited35.331 STEEM
Transaction InfoBlock #43213112/Virtual Operation #2
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 43213112,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 2,
  "timestamp": "2020-05-09T02:23:33",
  "op": [
    "fill_vesting_withdraw",
    {
      "from_account": "rtrade",
      "to_account": "rtrade",
      "withdrawn": "69010.283901 VESTS",
      "deposited": "35.331 STEEM"
    }
  ]
}
rtradesent 141.000 STEEM to @silly-einstein- "55663882-b6d2-4d7f-b93b-da8ade28f296"
2020/05/02 20:32:18
fromrtrade
tosilly-einstein
amount141.000 STEEM
memo55663882-b6d2-4d7f-b93b-da8ade28f296
Transaction InfoBlock #43037648/Trx 256c81c9ea2e74c1037a1a8fb736a6466faa4c3f
View Raw JSON Data
{
  "trx_id": "256c81c9ea2e74c1037a1a8fb736a6466faa4c3f",
  "block": 43037648,
  "trx_in_block": 16,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-05-02T20:32:18",
  "op": [
    "transfer",
    {
      "from": "rtrade",
      "to": "silly-einstein",
      "amount": "141.000 STEEM",
      "memo": "55663882-b6d2-4d7f-b93b-da8ade28f296"
    }
  ]
}
rtradereceived 35.317 STEEM from power down installment (42.379 SP)
2020/05/02 02:23:33
from accountrtrade
to accountrtrade
withdrawn69010.283901 VESTS
deposited35.317 STEEM
Transaction InfoBlock #43016401/Virtual Operation #3
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 43016401,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 3,
  "timestamp": "2020-05-02T02:23:33",
  "op": [
    "fill_vesting_withdraw",
    {
      "from_account": "rtrade",
      "to_account": "rtrade",
      "withdrawn": "69010.283901 VESTS",
      "deposited": "35.317 STEEM"
    }
  ]
}
rtradereceived 35.303 STEEM from power down installment (42.379 SP)
2020/04/25 02:23:33
from accountrtrade
to accountrtrade
withdrawn69010.283901 VESTS
deposited35.303 STEEM
Transaction InfoBlock #42819910/Virtual Operation #11
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 42819910,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 11,
  "timestamp": "2020-04-25T02:23:33",
  "op": [
    "fill_vesting_withdraw",
    {
      "from_account": "rtrade",
      "to_account": "rtrade",
      "withdrawn": "69010.283901 VESTS",
      "deposited": "35.303 STEEM"
    }
  ]
}
rtradereceived 35.289 STEEM from power down installment (42.379 SP)
2020/04/18 02:23:33
from accountrtrade
to accountrtrade
withdrawn69010.283901 VESTS
deposited35.289 STEEM
Transaction InfoBlock #42623918/Virtual Operation #3
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 42623918,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 3,
  "timestamp": "2020-04-18T02:23:33",
  "op": [
    "fill_vesting_withdraw",
    {
      "from_account": "rtrade",
      "to_account": "rtrade",
      "withdrawn": "69010.283901 VESTS",
      "deposited": "35.289 STEEM"
    }
  ]
}
rtradereceived 35.275 STEEM from power down installment (42.379 SP)
2020/04/11 02:23:33
from accountrtrade
to accountrtrade
withdrawn69010.283901 VESTS
deposited35.275 STEEM
Transaction InfoBlock #42427521/Virtual Operation #2
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 42427521,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 2,
  "timestamp": "2020-04-11T02:23:33",
  "op": [
    "fill_vesting_withdraw",
    {
      "from_account": "rtrade",
      "to_account": "rtrade",
      "withdrawn": "69010.283901 VESTS",
      "deposited": "35.275 STEEM"
    }
  ]
}
rtradesent 70.513 STEEM to @deepcrypto8- "100181885"
2020/04/10 01:52:48
fromrtrade
todeepcrypto8
amount70.513 STEEM
memo100181885
Transaction InfoBlock #42398774/Trx fa19f7fa035cb24138b5428a1406697f4f423d4f
View Raw JSON Data
{
  "trx_id": "fa19f7fa035cb24138b5428a1406697f4f423d4f",
  "block": 42398774,
  "trx_in_block": 13,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-04-10T01:52:48",
  "op": [
    "transfer",
    {
      "from": "rtrade",
      "to": "deepcrypto8",
      "amount": "70.513 STEEM",
      "memo": "100181885"
    }
  ]
}
rtradereceived 35.263 STEEM from power down installment (42.379 SP)
2020/04/04 02:23:33
from accountrtrade
to accountrtrade
withdrawn69010.283901 VESTS
deposited35.263 STEEM
Transaction InfoBlock #42230678/Virtual Operation #2
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 42230678,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 2,
  "timestamp": "2020-04-04T02:23:33",
  "op": [
    "fill_vesting_withdraw",
    {
      "from_account": "rtrade",
      "to_account": "rtrade",
      "withdrawn": "69010.283901 VESTS",
      "deposited": "35.263 STEEM"
    }
  ]
}
rtradereceived 35.250 STEEM from power down installment (42.379 SP)
2020/03/28 02:23:33
from accountrtrade
to accountrtrade
withdrawn69010.283901 VESTS
deposited35.250 STEEM
Transaction InfoBlock #42032032/Virtual Operation #3
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 42032032,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 3,
  "timestamp": "2020-03-28T02:23:33",
  "op": [
    "fill_vesting_withdraw",
    {
      "from_account": "rtrade",
      "to_account": "rtrade",
      "withdrawn": "69010.283901 VESTS",
      "deposited": "35.250 STEEM"
    }
  ]
}
rtradesent 199.183 STEEM to @deepcrypto8- "100181885"
2020/03/23 07:11:48
fromrtrade
todeepcrypto8
amount199.183 STEEM
memo100181885
Transaction InfoBlock #41895571/Trx 3cfac94016538c2854078a382b1e5815b51d684a
View Raw JSON Data
{
  "trx_id": "3cfac94016538c2854078a382b1e5815b51d684a",
  "block": 41895571,
  "trx_in_block": 11,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-03-23T07:11:48",
  "op": [
    "transfer",
    {
      "from": "rtrade",
      "to": "deepcrypto8",
      "amount": "199.183 STEEM",
      "memo": "100181885"
    }
  ]
}
rtradestarted power down of 550.925 SP
2020/03/21 02:23:33
accountrtrade
vesting shares897133.690707 VESTS
Transaction InfoBlock #41833088/Trx 98658bdabdb94c05a56bc3bdb6fb901f3af617dd
View Raw JSON Data
{
  "trx_id": "98658bdabdb94c05a56bc3bdb6fb901f3af617dd",
  "block": 41833088,
  "trx_in_block": 16,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-03-21T02:23:33",
  "op": [
    "withdraw_vesting",
    {
      "account": "rtrade",
      "vesting_shares": "897133.690707 VESTS"
    }
  ]
}
2019/06/23 14:37:39
voterlunix
authorrtrade
permlinkrun-your-own-ipfs-search-engine-with-lens
weight10000 (100.00%)
Transaction InfoBlock #34053338/Trx 6990f16b96af243ffa07aa0ec8096ffd0181f1c8
View Raw JSON Data
{
  "trx_id": "6990f16b96af243ffa07aa0ec8096ffd0181f1c8",
  "block": 34053338,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-06-23T14:37:39",
  "op": [
    "vote",
    {
      "voter": "lunix",
      "author": "rtrade",
      "permlink": "run-your-own-ipfs-search-engine-with-lens",
      "weight": 10000
    }
  ]
}
2019/05/24 00:32:30
parent authorrtrade
parent permlinkrun-your-own-ipfs-search-engine-with-lens
authorsteemitboard
permlinksteemitboard-notify-rtrade-20190524t003230000z
title
bodyCongratulations @rtrade! You received a personal award! <table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@rtrade/birthday1.png</td><td>Happy Birthday! - You are on the Steem blockchain for 1 year!</td></tr></table> <sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@rtrade) and compare to others on the [Steem Ranking](http://steemitboard.com/ranking/index.php?name=rtrade)_</sub> ###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!
json metadata{"image":["https://steemitboard.com/img/notify.png"]}
Transaction InfoBlock #33173641/Trx 843b53c9df269e4cac3fc58e14daf279ad594ad8
View Raw JSON Data
{
  "trx_id": "843b53c9df269e4cac3fc58e14daf279ad594ad8",
  "block": 33173641,
  "trx_in_block": 19,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-05-24T00:32:30",
  "op": [
    "comment",
    {
      "parent_author": "rtrade",
      "parent_permlink": "run-your-own-ipfs-search-engine-with-lens",
      "author": "steemitboard",
      "permlink": "steemitboard-notify-rtrade-20190524t003230000z",
      "title": "",
      "body": "Congratulations @rtrade! You received a personal award!\n\n<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@rtrade/birthday1.png</td><td>Happy Birthday! - You are on the Steem blockchain for 1 year!</td></tr></table>\n\n<sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@rtrade) and compare to others on the [Steem Ranking](http://steemitboard.com/ranking/index.php?name=rtrade)_</sub>\n\n\n###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!",
      "json_metadata": "{\"image\":[\"https://steemitboard.com/img/notify.png\"]}"
    }
  ]
}
2019/05/12 10:12:45
voterkatamori
authorrtrade
permlinkrun-your-own-ipfs-search-engine-with-lens
weight10000 (100.00%)
Transaction InfoBlock #32839858/Trx 1cd7f4e6602f64ece13b47dd7d30b086751f7930
View Raw JSON Data
{
  "trx_id": "1cd7f4e6602f64ece13b47dd7d30b086751f7930",
  "block": 32839858,
  "trx_in_block": 10,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-05-12T10:12:45",
  "op": [
    "vote",
    {
      "voter": "katamori",
      "author": "rtrade",
      "permlink": "run-your-own-ipfs-search-engine-with-lens",
      "weight": 10000
    }
  ]
}
2019/05/11 09:10:48
votermrakodrap
authorrtrade
permlinkrun-your-own-ipfs-search-engine-with-lens
weight1000 (10.00%)
Transaction InfoBlock #32809830/Trx 31a4d3a7c6c362530e4126aff4bc2e0758bb9277
View Raw JSON Data
{
  "trx_id": "31a4d3a7c6c362530e4126aff4bc2e0758bb9277",
  "block": 32809830,
  "trx_in_block": 10,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-05-11T09:10:48",
  "op": [
    "vote",
    {
      "voter": "mrakodrap",
      "author": "rtrade",
      "permlink": "run-your-own-ipfs-search-engine-with-lens",
      "weight": 1000
    }
  ]
}
2019/05/11 08:11:54
votersteemitboard
authorrtrade
permlinkrun-your-own-ipfs-search-engine-with-lens
weight100 (1.00%)
Transaction InfoBlock #32808652/Trx f5109384c8650205c9bfc569448fd9de423386e4
View Raw JSON Data
{
  "trx_id": "f5109384c8650205c9bfc569448fd9de423386e4",
  "block": 32808652,
  "trx_in_block": 4,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-05-11T08:11:54",
  "op": [
    "vote",
    {
      "voter": "steemitboard",
      "author": "rtrade",
      "permlink": "run-your-own-ipfs-search-engine-with-lens",
      "weight": 100
    }
  ]
}
2019/05/11 08:11:51
parent authorrtrade
parent permlinkrun-your-own-ipfs-search-engine-with-lens
authorsteemitboard
permlinksteemitboard-notify-rtrade-20190511t081150000z
title
bodyCongratulations @rtrade! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) : <table><tr><td><img src="https://steemitimages.com/60x70/http://steemitboard.com/@rtrade/posts.png?201905110719"></td><td>You published more than 20 posts. Your next target is to reach 30 posts.</td></tr> </table> <sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@rtrade) and compare to others on the [Steem Ranking](http://steemitboard.com/ranking/index.php?name=rtrade)_</sub> <sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub> To support your work, I also upvoted your post! **Do not miss the last post from @steemitboard:** <table><tr><td><a href="https://steemit.com/steemitboard/@steemitboard/steemitboard-witness-update-2019-05"><img src="https://steemitimages.com/64x128/http://i.cubeupload.com/7CiQEO.png"></a></td><td><a href="https://steemit.com/steemitboard/@steemitboard/steemitboard-witness-update-2019-05">SteemitBoard - Witness Update</a></td></tr></table> ###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!
json metadata{"image":["https://steemitboard.com/img/notify.png"]}
Transaction InfoBlock #32808651/Trx 14be7b71cff4562d0ee2498888fa928407121751
View Raw JSON Data
{
  "trx_id": "14be7b71cff4562d0ee2498888fa928407121751",
  "block": 32808651,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-05-11T08:11:51",
  "op": [
    "comment",
    {
      "parent_author": "rtrade",
      "parent_permlink": "run-your-own-ipfs-search-engine-with-lens",
      "author": "steemitboard",
      "permlink": "steemitboard-notify-rtrade-20190511t081150000z",
      "title": "",
      "body": "Congratulations @rtrade! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :\n\n<table><tr><td><img src=\"https://steemitimages.com/60x70/http://steemitboard.com/@rtrade/posts.png?201905110719\"></td><td>You published more than 20 posts. Your next target is to reach 30 posts.</td></tr>\n</table>\n\n<sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@rtrade) and compare to others on the [Steem Ranking](http://steemitboard.com/ranking/index.php?name=rtrade)_</sub>\n<sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub>\n\n\nTo support your work, I also upvoted your post!\n\n\n**Do not miss the last post from @steemitboard:**\n<table><tr><td><a href=\"https://steemit.com/steemitboard/@steemitboard/steemitboard-witness-update-2019-05\"><img src=\"https://steemitimages.com/64x128/http://i.cubeupload.com/7CiQEO.png\"></a></td><td><a href=\"https://steemit.com/steemitboard/@steemitboard/steemitboard-witness-update-2019-05\">SteemitBoard - Witness Update</a></td></tr></table>\n\n###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!",
      "json_metadata": "{\"image\":[\"https://steemitboard.com/img/notify.png\"]}"
    }
  ]
}
2019/05/11 06:31:30
voterfilipino
authorrtrade
permlinkrun-your-own-ipfs-search-engine-with-lens
weight1000 (10.00%)
Transaction InfoBlock #32806644/Trx 4adf3c4ed29c91a6ea5edaaf4519436179344c60
View Raw JSON Data
{
  "trx_id": "4adf3c4ed29c91a6ea5edaaf4519436179344c60",
  "block": 32806644,
  "trx_in_block": 5,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-05-11T06:31:30",
  "op": [
    "vote",
    {
      "voter": "filipino",
      "author": "rtrade",
      "permlink": "run-your-own-ipfs-search-engine-with-lens",
      "weight": 1000
    }
  ]
}
2019/05/11 05:56:00
voterlinuxguy
authorrtrade
permlinkrun-your-own-ipfs-search-engine-with-lens
weight10000 (100.00%)
Transaction InfoBlock #32805934/Trx 5e87605e7ba694e28b0ffab72c2b030a09a0dc20
View Raw JSON Data
{
  "trx_id": "5e87605e7ba694e28b0ffab72c2b030a09a0dc20",
  "block": 32805934,
  "trx_in_block": 14,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-05-11T05:56:00",
  "op": [
    "vote",
    {
      "voter": "linuxguy",
      "author": "rtrade",
      "permlink": "run-your-own-ipfs-search-engine-with-lens",
      "weight": 10000
    }
  ]
}
2019/05/11 05:55:30
voterrtrade
authorrtrade
permlinkrun-your-own-ipfs-search-engine-with-lens
weight10000 (100.00%)
Transaction InfoBlock #32805924/Trx 70ec1cbc10279763b8f8427269d157de86f50d4d
View Raw JSON Data
{
  "trx_id": "70ec1cbc10279763b8f8427269d157de86f50d4d",
  "block": 32805924,
  "trx_in_block": 23,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-05-11T05:55:30",
  "op": [
    "vote",
    {
      "voter": "rtrade",
      "author": "rtrade",
      "permlink": "run-your-own-ipfs-search-engine-with-lens",
      "weight": 10000
    }
  ]
}
2019/05/11 05:55:12
parent author
parent permlinkcryptocurrency
authorrtrade
permlinkrun-your-own-ipfs-search-engine-with-lens
titleRun Your Own IPFS Search Engine With Lens
body# Run Your Own IPFS Search Engine With Lens [Lens](https://github.com/RTradeLtd/Lens) is another one of our open-source IPFS tools under the Temporal umbrella, allowing you to take content from IPFS, and index it to be searchable at a later date. Currently Lens can index the following mime-types: * text/* * image/* * application/pdf The one requirement is that all your data exists on IPFS, and is discoverable by the running Lens instance. In the future we may add support for other distributed networks, such as DAT or SWARM. To interact with Lens we have a simple, but robust gRPC API that supports both simple and complex queries. ## How Does Indexing Work We have a few different methods of analyzing data that we’ll chain together. When given PDFs we first attempt to extract images and text from the pages. The text is fed into bleve which is capable of handling simple and complex search queries. The images are also analyzed, using a combination of Tesseract for optical character recognition to extract searchable text, and Tensorflow for rudimentary classification of images. When analyzing other mime types such as image/* we attempt to perform the same Tesseract, and image classification analysis as we do with images extracted from PDFs. When analyzing mime types like text/* we feed the text directly into bleve. ## How Does Searching Work Searching at the most basic level consists of taking a query, ranging from single words like blockchain all the way up to search phrases like blockchain data storage. We also support more complex queries, like filtering against specific tags, categories, mime types, and more however these are entirely optional. The response to your query is an array of documents that contains the IPFS hash of the content that matched your query, as well as the mimetype of the content, and a score displaying the relevance this content has to your search query. ![](https://cdn-images-1.medium.com/max/2000/1*7gnii4YYVJ_eloYkU27Y6g.jpeg) ## Installing Lens There are a few different ways you can go about installing Lens, with the simplest way to be using our prebuilt Lens docker image. When using the docker image, the default setting is to start the gRPC server listening on 0.0.0.0:9998, without any encryption, and with a gRPC authentication key of blahblahblah. The docker container will also need a connection to an IPFS HTTP API, with the default being 127.0.0.1:5001. To install this docker image, run the following command docker pull rtradetech/lens:latest Alternatively for those wanting a more hands off setup, we have a docker-compose setup that also spins up the required IPFS node. To use this docker-compose file, the following set of commands need to be run. These will use the /tmp directory as the base directory for storing all files in. $> wget -O lens.yml https://raw.githubusercontent.com/RTradeLtd/Lens/master/lens.yml $> LENS=latest BASE=/tmp docker-compose -f lens.yml up ## Using Lens Before we get started with how you can use Lens, we’ve published the existing Lens index as seen on [https://temporal.cloud/lens](https://temporal.cloud/lens) via IPFS that can be downloaded via the CID [QmZqSYDQrtWg4LHnqT6DPqa1XUr7u4oeaGcyaTiGHJY3SR](https://gateway.temporal.cloud/ipfs/QmZqSYDQrtWg4LHnqT6DPqa1XUr7u4oeaGcyaTiGHJY3SR). It’s 1.2GB in size and contains a variety of research papers, crypto whitepapers, and I have submitted, as well as other user submitted documents. All Indexing and Searching can be done via the gRPC API, for which we have published protocol buffers on [github](https://github.com/RTradeLtd/grpc/tree/master/lensv2). Using these you can build an API for Lens in *any* language that supports protocol buffers! For an example of how we use those protocol buffers to build the Lens API client that is in Temporal, you can check out our Golang example below: ```Golang package clients import ( "fmt" "github.com/RTradeLtd/config/v2" "github.com/RTradeLtd/grpc/dialer" pb "github.com/RTradeLtd/grpc/lensv2" "google.golang.org/grpc" "google.golang.org/grpc/credentials" ) const ( defaultURL = "127.0.0.1:9998" ) // LensClient is a lens client used to make requests to the Lens gRPC server type LensClient struct { conn *grpc.ClientConn pb.LensV2Client } // NewLensClient is used to generate our lens client func NewLensClient(opts config.Services) (*LensClient, error) { dialOpts := make([]grpc.DialOption, 0) if opts.Lens.TLS.CertPath != "" { creds, err := credentials.NewClientTLSFromFile(opts.Lens.TLS.CertPath, "") if err != nil { return nil, fmt.Errorf("could not load tls cert: %s", err) } dialOpts = append(dialOpts, grpc.WithTransportCredentials(creds), grpc.WithPerRPCCredentials(dialer.NewCredentials(opts.Lens.AuthKey, true))) } else { dialOpts = append(dialOpts, grpc.WithInsecure(), grpc.WithPerRPCCredentials(dialer.NewCredentials(opts.Lens.AuthKey, false))) } var url string if opts.Lens.URL == "" { url = defaultURL } else { url = opts.Lens.URL } conn, err := grpc.Dial(url, dialOpts...) if err != nil { return nil, err } return &LensClient{ conn: conn, LensV2Client: pb.NewLensV2Client(conn), }, nil } // Close shuts down the client's gRPC connection func (l *LensClient) Close() { l.conn.Close() } ``` To actually index data, once you have your gRPC client up and running, all you need to do is called the Index command, and let Lens do its magic! Depending on where the content is in your network this process can take sometime. Generally speaking, if the content is locally available index analysis shouldn't ever take more than a minute, usually 30 seconds. When submitting data for indexing, you must provide two parameters, the ObjectType, which should be using the IndexReq_IPLDas defined in the protocol buffers. The second parameter is ObjectIdentifier which should be the IPFS hash of the content you want indexed. Searching for data is extremely simple as well, and requires calling the Search command. The only required parameter is Query which defines how you want to search the data. Optionally you can filter out your search results even more with filters like Hashes to only match specific IPFS hashes, MimeTypes to only match specific mime types. The time it takes for this command to complete will depend on a wide variety of factors, such as the size of your index, the number of objects matched, the speed of your disk that the index resides on. ## Thank you and a big shout out to everyone contributing to IPFS and all the great work that is be done by many different projects! RTrade’s online community, [Twitter](https://twitter.com/rtradetech) or [Telegram](https://t.me/rtradetech) and [website](http://www.rtradetechnologies.com/en/). Don’t forget to show Temporal some love on [Github](https://github.com/RTradeLtd)! [v2.1.0 of Temporal is out! ](https://github.com/RTradeLtd/Temporal/releases/tag/v2.1.0) Highlights of release: - go-ipfs v0.4.20 - ipfs-cluster v0.10.1 - gomod support **Temporal:** A versatile easy to use tool for companies with large amounts of data to secure, store and track. The platform can be used as is, or customarily built to manage and deploy blockchain-based applications and non-blockchain data-storage solutions for any enterprise. **Temporal Features:** If you don’t want to run your own Temporal installation you can use our hosted version[, Full Featured Pinning Service](https://temporal.cloud/) w/ Free 3GB/Monthly, 5 Free IPNS record creation a month, 100 Free pubSub messages a month and 5 Free IPFS keys [Interface walk-through](https://medium.com/@rtradetech/temporal-cloud-walk-through-c477568be551) [Full Service IPFS API](https://gateway.temporal.cloud/ipns/docs.api.temporal.cloud/) [Temporal-JS SDK Full public IPFS and IPNS usage](https://github.com/clemlak/temporal-js) [IPFS Gateway](https://gateway.temporal.cloud) [I2P IPFS Gateway access](http://cdii3ou5mve5sfxyirs6kogt4tbvivk2d6o25awbcbazjrlhjeza.b32.i2p) [Installing your own Temporal](https://rtradetechnologies.atlassian.net/wiki/x/U4JIAw) Also the [Usages and Features](https://github.com/RTradeLtd/Temporal) section of the README.md doc on the GitHub repository covers using the docker compose file to spin up the environment. ### **Anything you build or use on our platform is NOT vendor locked-in. All software solutions currently available can be run in your own infrastructure simply by downloading our code off of github** ![](https://cdn-images-1.medium.com/max/2000/1*TRZNxp9hh6ZjZha9R1RmFQ.png)
json metadata{"tags":["cryptocurrency","blockchain","ipfs","storage","search"],"image":["https://cdn-images-1.medium.com/max/2000/1*7gnii4YYVJ_eloYkU27Y6g.jpeg","https://cdn-images-1.medium.com/max/2000/1*TRZNxp9hh6ZjZha9R1RmFQ.png"],"links":["https://github.com/RTradeLtd/Lens","https://temporal.cloud/lens","https://gateway.temporal.cloud/ipfs/QmZqSYDQrtWg4LHnqT6DPqa1XUr7u4oeaGcyaTiGHJY3SR","https://github.com/RTradeLtd/grpc/tree/master/lensv2","https://twitter.com/rtradetech","https://t.me/rtradetech","http://www.rtradetechnologies.com/en/","https://github.com/RTradeLtd","https://github.com/RTradeLtd/Temporal/releases/tag/v2.1.0","https://temporal.cloud/","https://medium.com/@rtradetech/temporal-cloud-walk-through-c477568be551","https://gateway.temporal.cloud/ipns/docs.api.temporal.cloud/","https://github.com/clemlak/temporal-js","https://gateway.temporal.cloud","http://cdii3ou5mve5sfxyirs6kogt4tbvivk2d6o25awbcbazjrlhjeza.b32.i2p","https://rtradetechnologies.atlassian.net/wiki/x/U4JIAw","https://github.com/RTradeLtd/Temporal"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #32805918/Trx 6bf704dd5fbb13e64bbe4b45c19a04094eb415cd
View Raw JSON Data
{
  "trx_id": "6bf704dd5fbb13e64bbe4b45c19a04094eb415cd",
  "block": 32805918,
  "trx_in_block": 29,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-05-11T05:55:12",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "cryptocurrency",
      "author": "rtrade",
      "permlink": "run-your-own-ipfs-search-engine-with-lens",
      "title": "Run Your Own IPFS Search Engine With Lens",
      "body": "# Run Your Own IPFS Search Engine With Lens\n\n\n\n[Lens](https://github.com/RTradeLtd/Lens) is another one of our open-source IPFS tools under the Temporal umbrella, allowing you to take content from IPFS, and index it to be searchable at a later date. Currently Lens can index the following mime-types:\n\n* text/*\n\n* image/*\n\n* application/pdf\n\nThe one requirement is that all your data exists on IPFS, and is discoverable by the running Lens instance. In the future we may add support for other distributed networks, such as DAT or SWARM. To interact with Lens we have a simple, but robust gRPC API that supports both simple and complex queries.\n\n## How Does Indexing Work\n\nWe have a few different methods of analyzing data that we’ll chain together. When given PDFs we first attempt to extract images and text from the pages. The text is fed into bleve which is capable of handling simple and complex search queries. The images are also analyzed, using a combination of Tesseract for optical character recognition to extract searchable text, and Tensorflow for rudimentary classification of images. When analyzing other mime types such as image/* we attempt to perform the same Tesseract, and image classification analysis as we do with images extracted from PDFs. When analyzing mime types like text/* we feed the text directly into bleve.\n\n## How Does Searching Work\n\nSearching at the most basic level consists of taking a query, ranging from single words like blockchain all the way up to search phrases like blockchain data storage. We also support more complex queries, like filtering against specific tags, categories, mime types, and more however these are entirely optional.\n\nThe response to your query is an array of documents that contains the IPFS hash of the content that matched your query, as well as the mimetype of the content, and a score displaying the relevance this content has to your search query.\n\n![](https://cdn-images-1.medium.com/max/2000/1*7gnii4YYVJ_eloYkU27Y6g.jpeg)\n\n## Installing Lens\n\nThere are a few different ways you can go about installing Lens, with the simplest way to be using our prebuilt Lens docker image. When using the docker image, the default setting is to start the gRPC server listening on 0.0.0.0:9998, without any encryption, and with a gRPC authentication key of blahblahblah. The docker container will also need a connection to an IPFS HTTP API, with the default being 127.0.0.1:5001. To install this docker image, run the following command docker pull rtradetech/lens:latest\n\nAlternatively for those wanting a more hands off setup, we have a docker-compose setup that also spins up the required IPFS node. To use this docker-compose file, the following set of commands need to be run. These will use the /tmp directory as the base directory for storing all files in.\n\n    $> wget -O lens.yml https://raw.githubusercontent.com/RTradeLtd/Lens/master/lens.yml\n    $> LENS=latest BASE=/tmp docker-compose -f lens.yml up\n\n## Using Lens\n\nBefore we get started with how you can use Lens, we’ve published the existing Lens index as seen on [https://temporal.cloud/lens](https://temporal.cloud/lens) via IPFS that can be downloaded via the CID [QmZqSYDQrtWg4LHnqT6DPqa1XUr7u4oeaGcyaTiGHJY3SR](https://gateway.temporal.cloud/ipfs/QmZqSYDQrtWg4LHnqT6DPqa1XUr7u4oeaGcyaTiGHJY3SR). It’s 1.2GB in size and contains a variety of research papers, crypto whitepapers, and I have submitted, as well as other user submitted documents.\n\nAll Indexing and Searching can be done via the gRPC API, for which we have published protocol buffers on [github](https://github.com/RTradeLtd/grpc/tree/master/lensv2). Using these you can build an API for Lens in *any* language that supports protocol buffers!\n\nFor an example of how we use those protocol buffers to build the Lens API client that is in Temporal, you can check out our Golang example below:\n\n```Golang\n\npackage clients\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/RTradeLtd/config/v2\"\n\t\"github.com/RTradeLtd/grpc/dialer\"\n\tpb \"github.com/RTradeLtd/grpc/lensv2\"\n\t\"google.golang.org/grpc\"\n\t\"google.golang.org/grpc/credentials\"\n)\n\nconst (\n\tdefaultURL = \"127.0.0.1:9998\"\n)\n\n// LensClient is a lens client used to make requests to the Lens gRPC server\ntype LensClient struct {\n\tconn *grpc.ClientConn\n\tpb.LensV2Client\n}\n\n// NewLensClient is used to generate our lens client\nfunc NewLensClient(opts config.Services) (*LensClient, error) {\n\tdialOpts := make([]grpc.DialOption, 0)\n\tif opts.Lens.TLS.CertPath != \"\" {\n\t\tcreds, err := credentials.NewClientTLSFromFile(opts.Lens.TLS.CertPath, \"\")\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"could not load tls cert: %s\", err)\n\t\t}\n\t\tdialOpts = append(dialOpts,\n\t\t\tgrpc.WithTransportCredentials(creds),\n\t\t\tgrpc.WithPerRPCCredentials(dialer.NewCredentials(opts.Lens.AuthKey, true)))\n\t} else {\n\t\tdialOpts = append(dialOpts,\n\t\t\tgrpc.WithInsecure(),\n\t\t\tgrpc.WithPerRPCCredentials(dialer.NewCredentials(opts.Lens.AuthKey, false)))\n\t}\n\tvar url string\n\tif opts.Lens.URL == \"\" {\n\t\turl = defaultURL\n\t} else {\n\t\turl = opts.Lens.URL\n\t}\n\n\tconn, err := grpc.Dial(url, dialOpts...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &LensClient{\n\t\tconn:         conn,\n\t\tLensV2Client: pb.NewLensV2Client(conn),\n\t}, nil\n}\n\n// Close shuts down the client's gRPC connection\nfunc (l *LensClient) Close() { l.conn.Close() }\n\n```\nTo actually index data, once you have your gRPC client up and running, all you need to do is called the Index command, and let Lens do its magic! Depending on where the content is in your network this process can take sometime. Generally speaking, if the content is locally available index analysis shouldn't ever take more than a minute, usually 30 seconds. When submitting data for indexing, you must provide two parameters, the ObjectType, which should be using the IndexReq_IPLDas defined in the protocol buffers. The second parameter is ObjectIdentifier which should be the IPFS hash of the content you want indexed.\n\nSearching for data is extremely simple as well, and requires calling the Search command. The only required parameter is Query which defines how you want to search the data. Optionally you can filter out your search results even more with filters like Hashes to only match specific IPFS hashes, MimeTypes to only match specific mime types. The time it takes for this command to complete will depend on a wide variety of factors, such as the size of your index, the number of objects matched, the speed of your disk that the index resides on.\n\n## Thank you and a big shout out to everyone contributing to IPFS and all the great work that is be done by many different projects!\n\nRTrade’s online community, [Twitter](https://twitter.com/rtradetech) or [Telegram](https://t.me/rtradetech) and [website](http://www.rtradetechnologies.com/en/). Don’t forget to show Temporal some love on [Github](https://github.com/RTradeLtd)!\n\n[v2.1.0 of Temporal is out! ](https://github.com/RTradeLtd/Temporal/releases/tag/v2.1.0)\nHighlights of release:\n- go-ipfs v0.4.20\n- ipfs-cluster v0.10.1\n- gomod support\n\n**Temporal:** A versatile easy to use tool for companies with large amounts of data to secure, store and track. The platform can be used as is, or customarily built to manage and deploy blockchain-based applications and non-blockchain data-storage solutions for any enterprise.\n\n**Temporal Features:**\n\nIf you don’t want to run your own Temporal installation you can use our hosted version[, Full Featured Pinning Service](https://temporal.cloud/) w/ Free 3GB/Monthly, 5 Free IPNS record creation a month, 100 Free pubSub messages a month and 5 Free IPFS keys\n\n[Interface walk-through](https://medium.com/@rtradetech/temporal-cloud-walk-through-c477568be551)\n\n[Full Service IPFS API](https://gateway.temporal.cloud/ipns/docs.api.temporal.cloud/)\n\n[Temporal-JS SDK Full public IPFS and IPNS usage](https://github.com/clemlak/temporal-js)\n\n[IPFS Gateway](https://gateway.temporal.cloud)\n\n[I2P IPFS Gateway access](http://cdii3ou5mve5sfxyirs6kogt4tbvivk2d6o25awbcbazjrlhjeza.b32.i2p)\n \n[Installing your own Temporal](https://rtradetechnologies.atlassian.net/wiki/x/U4JIAw)\n\nAlso the [Usages and Features](https://github.com/RTradeLtd/Temporal) section of the README.md doc on the GitHub repository covers using the docker compose file to spin up the environment.\n\n### **Anything you build or use on our platform is NOT vendor locked-in. All software solutions currently available can be run in your own infrastructure simply by downloading our code off of github**\n\n![](https://cdn-images-1.medium.com/max/2000/1*TRZNxp9hh6ZjZha9R1RmFQ.png)",
      "json_metadata": "{\"tags\":[\"cryptocurrency\",\"blockchain\",\"ipfs\",\"storage\",\"search\"],\"image\":[\"https://cdn-images-1.medium.com/max/2000/1*7gnii4YYVJ_eloYkU27Y6g.jpeg\",\"https://cdn-images-1.medium.com/max/2000/1*TRZNxp9hh6ZjZha9R1RmFQ.png\"],\"links\":[\"https://github.com/RTradeLtd/Lens\",\"https://temporal.cloud/lens\",\"https://gateway.temporal.cloud/ipfs/QmZqSYDQrtWg4LHnqT6DPqa1XUr7u4oeaGcyaTiGHJY3SR\",\"https://github.com/RTradeLtd/grpc/tree/master/lensv2\",\"https://twitter.com/rtradetech\",\"https://t.me/rtradetech\",\"http://www.rtradetechnologies.com/en/\",\"https://github.com/RTradeLtd\",\"https://github.com/RTradeLtd/Temporal/releases/tag/v2.1.0\",\"https://temporal.cloud/\",\"https://medium.com/@rtradetech/temporal-cloud-walk-through-c477568be551\",\"https://gateway.temporal.cloud/ipns/docs.api.temporal.cloud/\",\"https://github.com/clemlak/temporal-js\",\"https://gateway.temporal.cloud\",\"http://cdii3ou5mve5sfxyirs6kogt4tbvivk2d6o25awbcbazjrlhjeza.b32.i2p\",\"https://rtradetechnologies.atlassian.net/wiki/x/U4JIAw\",\"https://github.com/RTradeLtd/Temporal\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
2019/05/05 19:11:15
parent authorrtrade
parent permlinkre-cheetah-cheetah-re-rtradeefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts-20190429t231821753z
authordavidmind
permlinkre-rtrade-re-cheetah-cheetah-re-rtradeefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts-20190505t191106119z
title
bodyI don't know if you have heard about utopian, utopian support open source project like yours. Sorry for cheetah flagging down your post. You can always join utopian discord channel [here](https://discord.gg) good luck and have fun.
json metadata{"tags":["ethereum"],"links":["https://discord.gg"],"app":"steemit/0.1"}
Transaction InfoBlock #32649105/Trx d71cae44745019c680bdabdf25e38bd97c04b271
View Raw JSON Data
{
  "trx_id": "d71cae44745019c680bdabdf25e38bd97c04b271",
  "block": 32649105,
  "trx_in_block": 8,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-05-05T19:11:15",
  "op": [
    "comment",
    {
      "parent_author": "rtrade",
      "parent_permlink": "re-cheetah-cheetah-re-rtradeefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts-20190429t231821753z",
      "author": "davidmind",
      "permlink": "re-rtrade-re-cheetah-cheetah-re-rtradeefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts-20190505t191106119z",
      "title": "",
      "body": "I don't know if you have heard about utopian, utopian support open source project like yours. Sorry for cheetah flagging down your post. You can always join utopian discord channel [here](https://discord.gg) good luck and have fun.",
      "json_metadata": "{\"tags\":[\"ethereum\"],\"links\":[\"https://discord.gg\"],\"app\":\"steemit/0.1\"}"
    }
  ]
}
2019/04/30 23:38:15
voterkatamori
authorrtrade
permlinkefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts
weight10000 (100.00%)
Transaction InfoBlock #32510551/Trx bfb01c9d2ce93d876b73989a53e5a0d3d682ad10
View Raw JSON Data
{
  "trx_id": "bfb01c9d2ce93d876b73989a53e5a0d3d682ad10",
  "block": 32510551,
  "trx_in_block": 35,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-04-30T23:38:15",
  "op": [
    "vote",
    {
      "voter": "katamori",
      "author": "rtrade",
      "permlink": "efficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts",
      "weight": 10000
    }
  ]
}
2019/04/30 23:37:33
parent authorrtrade
parent permlinkre-cheetah-cheetah-re-rtradeefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts-20190429t231821753z
authorkatamori
permlinkkatamori-re-rtrade-re-cheetah-cheetah-re-rtradeefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts-20190430t233731374z
title
bodyI was about to rant about plagiarism but holy shit, you're the author indeed. (unless someone compromised this name on Steem) Maybe try contacting whoever makes this anti-plagiarism measure (not sure if cheetah is the creator or the bot) Posted using [Partiko Android](https://partiko.app/referral/katamori)
json metadata{"app":"partiko","client":"android"}
Transaction InfoBlock #32510537/Trx 60e397560e3af8460cde43f51b601dd42531c5d2
View Raw JSON Data
{
  "trx_id": "60e397560e3af8460cde43f51b601dd42531c5d2",
  "block": 32510537,
  "trx_in_block": 10,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-04-30T23:37:33",
  "op": [
    "comment",
    {
      "parent_author": "rtrade",
      "parent_permlink": "re-cheetah-cheetah-re-rtradeefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts-20190429t231821753z",
      "author": "katamori",
      "permlink": "katamori-re-rtrade-re-cheetah-cheetah-re-rtradeefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts-20190430t233731374z",
      "title": "",
      "body": "I was about to rant about plagiarism but holy shit, you're the author indeed. (unless someone compromised this name on Steem)\n\nMaybe try contacting whoever makes this anti-plagiarism measure (not sure if cheetah is the creator or the bot)\n\nPosted using [Partiko Android](https://partiko.app/referral/katamori)",
      "json_metadata": "{\"app\":\"partiko\",\"client\":\"android\"}"
    }
  ]
}
2019/04/30 02:00:24
votersahulinkan7
authorrtrade
permlinkefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts
weight10000 (100.00%)
Transaction InfoBlock #32484619/Trx 7736e4b2f3a6ed71384a6df6fabe8878d71aba04
View Raw JSON Data
{
  "trx_id": "7736e4b2f3a6ed71384a6df6fabe8878d71aba04",
  "block": 32484619,
  "trx_in_block": 11,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-04-30T02:00:24",
  "op": [
    "vote",
    {
      "voter": "sahulinkan7",
      "author": "rtrade",
      "permlink": "efficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts",
      "weight": 10000
    }
  ]
}
2019/04/29 23:32:39
votersteffenix
authorrtrade
permlinkefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts
weight10000 (100.00%)
Transaction InfoBlock #32481665/Trx 66fa855846c5cfc7778d62af7db60d59fa94075b
View Raw JSON Data
{
  "trx_id": "66fa855846c5cfc7778d62af7db60d59fa94075b",
  "block": 32481665,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-04-29T23:32:39",
  "op": [
    "vote",
    {
      "voter": "steffenix",
      "author": "rtrade",
      "permlink": "efficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts",
      "weight": 10000
    }
  ]
}
2019/04/29 23:30:03
parent authorrtrade
parent permlinkefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts
authorguiltyparties
permlinkre-rtrade-efficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts-20190429t233128131z
title
body!cheetah unban Account verified.
json metadata{"tags":["ethereum"],"app":"steemit/0.1"}
Transaction InfoBlock #32481613/Trx 0f899451986f191e29686ff307be197ab4b88584
View Raw JSON Data
{
  "trx_id": "0f899451986f191e29686ff307be197ab4b88584",
  "block": 32481613,
  "trx_in_block": 12,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-04-29T23:30:03",
  "op": [
    "comment",
    {
      "parent_author": "rtrade",
      "parent_permlink": "efficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts",
      "author": "guiltyparties",
      "permlink": "re-rtrade-efficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts-20190429t233128131z",
      "title": "",
      "body": "!cheetah unban\n\nAccount verified.",
      "json_metadata": "{\"tags\":[\"ethereum\"],\"app\":\"steemit/0.1\"}"
    }
  ]
}
2019/04/29 23:21:00
voterrtrade
authorrtrade
permlinkre-cheetah-cheetah-re-rtradeefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts-20190429t231821753z
weight10000 (100.00%)
Transaction InfoBlock #32481432/Trx b4ed0dc4f271edcc96f74c3939e0d7c37dd3932f
View Raw JSON Data
{
  "trx_id": "b4ed0dc4f271edcc96f74c3939e0d7c37dd3932f",
  "block": 32481432,
  "trx_in_block": 12,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-04-29T23:21:00",
  "op": [
    "vote",
    {
      "voter": "rtrade",
      "author": "rtrade",
      "permlink": "re-cheetah-cheetah-re-rtradeefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts-20190429t231821753z",
      "weight": 10000
    }
  ]
}
2019/04/29 23:20:51
voterrtrade
authorcheetah
permlinkcheetah-re-rtradeefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts
weight-10000 (-100.00%)
Transaction InfoBlock #32481429/Trx b87419d1bda4a1dfc8c1a1a796f15d725b5e2c68
View Raw JSON Data
{
  "trx_id": "b87419d1bda4a1dfc8c1a1a796f15d725b5e2c68",
  "block": 32481429,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-04-29T23:20:51",
  "op": [
    "vote",
    {
      "voter": "rtrade",
      "author": "cheetah",
      "permlink": "cheetah-re-rtradeefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts",
      "weight": -10000
    }
  ]
}
2019/04/29 23:20:15
voterlinuxguy
authorrtrade
permlinkefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts
weight10000 (100.00%)
Transaction InfoBlock #32481417/Trx c8715cab9a6df6c7e191745176217e5e5c29374f
View Raw JSON Data
{
  "trx_id": "c8715cab9a6df6c7e191745176217e5e5c29374f",
  "block": 32481417,
  "trx_in_block": 12,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-04-29T23:20:15",
  "op": [
    "vote",
    {
      "voter": "linuxguy",
      "author": "rtrade",
      "permlink": "efficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts",
      "weight": 10000
    }
  ]
}
2019/04/29 23:20:09
voterlinuxguy
authorrtrade
permlinkre-cheetah-cheetah-re-rtradeefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts-20190429t231821753z
weight10000 (100.00%)
Transaction InfoBlock #32481415/Trx ab207f4c9f70343e4d1733939b3f8cd71cb4f4d0
View Raw JSON Data
{
  "trx_id": "ab207f4c9f70343e4d1733939b3f8cd71cb4f4d0",
  "block": 32481415,
  "trx_in_block": 18,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-04-29T23:20:09",
  "op": [
    "vote",
    {
      "voter": "linuxguy",
      "author": "rtrade",
      "permlink": "re-cheetah-cheetah-re-rtradeefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts-20190429t231821753z",
      "weight": 10000
    }
  ]
}
2019/04/29 23:18:30
votercheetah
authorrtrade
permlinkre-cheetah-cheetah-re-rtradeefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts-20190429t231821753z
weight-8 (-0.08%)
Transaction InfoBlock #32481382/Trx c4d88fbff2e170112ad6b59e0d5959d09199fb41
View Raw JSON Data
{
  "trx_id": "c4d88fbff2e170112ad6b59e0d5959d09199fb41",
  "block": 32481382,
  "trx_in_block": 17,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-04-29T23:18:30",
  "op": [
    "vote",
    {
      "voter": "cheetah",
      "author": "rtrade",
      "permlink": "re-cheetah-cheetah-re-rtradeefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts-20190429t231821753z",
      "weight": -8
    }
  ]
}
2019/04/29 23:18:21
parent authorcheetah
parent permlinkcheetah-re-rtradeefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts
authorrtrade
permlinkre-cheetah-cheetah-re-rtradeefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts-20190429t231821753z
title
bodyThis is such bullshit, all because I refused to verify my account with some unknown third-party service?
json metadata{"tags":["ethereum"],"app":"steemit/0.1"}
Transaction InfoBlock #32481379/Trx 2b037cbad7f428b1a7a9bb6deac6957efa538aa6
View Raw JSON Data
{
  "trx_id": "2b037cbad7f428b1a7a9bb6deac6957efa538aa6",
  "block": 32481379,
  "trx_in_block": 12,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-04-29T23:18:21",
  "op": [
    "comment",
    {
      "parent_author": "cheetah",
      "parent_permlink": "cheetah-re-rtradeefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts",
      "author": "rtrade",
      "permlink": "re-cheetah-cheetah-re-rtradeefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts-20190429t231821753z",
      "title": "",
      "body": "This is such bullshit, all because I refused to verify my account with some unknown third-party service?",
      "json_metadata": "{\"tags\":[\"ethereum\"],\"app\":\"steemit/0.1\"}"
    }
  ]
}
2019/04/29 23:17:33
voterrtrade
authorrtrade
permlinkefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts
weight10000 (100.00%)
Transaction InfoBlock #32481363/Trx c579b975d6675163b05e4c98522e23fe2f82ae50
View Raw JSON Data
{
  "trx_id": "c579b975d6675163b05e4c98522e23fe2f82ae50",
  "block": 32481363,
  "trx_in_block": 18,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-04-29T23:17:33",
  "op": [
    "vote",
    {
      "voter": "rtrade",
      "author": "rtrade",
      "permlink": "efficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts",
      "weight": 10000
    }
  ]
}
2019/04/29 23:17:27
parent authorrtrade
parent permlinkefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts
authorcheetah
permlinkcheetah-re-rtradeefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts
title
bodyWarning! This user is on my black list, likely as a known plagiarist, spammer or ID thief. Please be cautious with this post! If you believe this is an error, please chat with us in the #cheetah-appeals channel in [our discord](https://discord.gg/7FkETjJ).
json metadata
Transaction InfoBlock #32481361/Trx a0483f0816f2d6ccc152b448eee9edb7412d710e
View Raw JSON Data
{
  "trx_id": "a0483f0816f2d6ccc152b448eee9edb7412d710e",
  "block": 32481361,
  "trx_in_block": 5,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-04-29T23:17:27",
  "op": [
    "comment",
    {
      "parent_author": "rtrade",
      "parent_permlink": "efficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts",
      "author": "cheetah",
      "permlink": "cheetah-re-rtradeefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts",
      "title": "",
      "body": "Warning! This user is on my black list, likely as a known plagiarist, spammer or ID thief. Please be cautious with this post!\nIf you believe this is an error, please chat with us in the #cheetah-appeals channel in [our discord](https://discord.gg/7FkETjJ).",
      "json_metadata": ""
    }
  ]
}
2019/04/29 23:17:21
votercheetah
authorrtrade
permlinkefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts
weight-8 (-0.08%)
Transaction InfoBlock #32481359/Trx 4338b0e5dcb715d7ab9f91ac3568cfa157b1b997
View Raw JSON Data
{
  "trx_id": "4338b0e5dcb715d7ab9f91ac3568cfa157b1b997",
  "block": 32481359,
  "trx_in_block": 24,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-04-29T23:17:21",
  "op": [
    "vote",
    {
      "voter": "cheetah",
      "author": "rtrade",
      "permlink": "efficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts",
      "weight": -8
    }
  ]
}
2019/04/29 23:17:18
parent author
parent permlinkethereum
authorrtrade
permlinkefficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts
titleEfficient, Usable, And Cheap Storage Of IPFS Hashes In Solidity Smart Contracts
body![](https://steemitimages.com/p/C3TZR1g81UNaPs7vzNXHueW5ZM76DSHWEY7onmfLxcK2iP9NnDPd8cYgNcNPAgCHxWtpiRzAc3VPR8tn2BRS41v4wLj1g6J1mqvtWTX7e1pTL9Hbpc4G9mg?format=match&mode=fit&width=640) # Efficient, Usable, And Cheap Storage Of IPFS Hashes In Solidity Smart Contracts Recently while working on a new project, I encountered the need to store IPFS Hashes, in particular CIDv1 type on the ethereum blockchain, in a user-friendly but also gas efficient manner. Why CIDv1? Well CIDv0 uses sha2-256, whose output size does not fit into a single `bytes32` storage slot. From what I've seen in the wild, anytime people need to store IPFS hashes in smart contracts, it's almost always a hash of the IPFS CID stored in a `bytes32` storage variable, or the IPFS hash itself stored in a `string` storage variable. Working with CIDv1 does not suffer from this :) While there is nothing wrong with either of those two approaches, they are suboptimal. Hashing a hash simply to fit into a single storage slot makes it significantly harder to consume and is only worthwhile if you need to do so for security reasons. Storing the IPFS hash in a `string` storage variable is very expensive in general, and also suboptimal. The trick here is being able to fit into as few, but fully occupied storage slots as possible (efficient), while being easy to consume (usable) and using minimal gas (cheap). This sounds simple in theory as all you need to do is find a hash function that takes up a single `bytes32` storage variable, or two `bytes32` storage variables, but because IPFS uses multiformats (or more appropriately, multihash) this isn't as easy as it sounds. To figure this out, we're going to need to talk a bit about multihash. ## Multihash [Multihash](https://multiformats.io/multihash/) is a subset of the [multiformat](https://multiformats.io/) specification and allows us to create [self describing hashes](https://github.com/multiformats/multihash). The format for multihash looks like (image is from github.com/multiformats/multiformats): ![](https://raw.githubusercontent.com/multiformats/multiformats/eb22cd807db692877a9094b5bfb4d2997fd0278a/img/multihash.006.jpg) So given the above, this means that even if you were able to find a hash function whose output is 32 bytes, multihash would then add an additional 4 bytes onto that for a total of 36 bytes. This means we then need to store it in a `bytes` storage variable which has a single word overhead. ## Solution This then lead me to the question, what if we can find a hash function which when in multihash format takes up a single `bytes32` storage slot we would be good to go! Well not quite, the only multihash that did this was `blake2b-136`, which `go-ipfs` nodes don't accept by default due to security risks... yikes! After several hours of different experimentation (aka blindly trying multihashes), I was finally able to find a hash function which when in multihash the output is 64 bytes, which means we can store this in exactly two `bytes32` storage slots, completely filling two slots and not wasting any. The multihash is `blake2b-328`. So to use this, all we need to do is take the 64 bytes output, split it in two and we're good to go! ![](https://gateway.temporal.cloud/ipfs/QmR5uZMmt6rzsyW4iyHjFSb8ieUqqrWJWz7ea2iA6pBV1M) ## Example To keep things short, I'll demonstrate the most optimal solution I found after trying a few different combinations and ways to store two `bytes32` storage variables. The first step is two define two parts of the hash, `hashPart1` and `hashPart2`. In order to store our IFPS hashes here, we need to take the 64 bytes output of the `blake2b-328` multihash, split it in half, storing each half within a 2 element array of `bytes32` type, passing that into the function `updateHash`. Now, whenever we want to consume this data, all we have to do is call `getHash` which will return the complete hash in `bytes` type. If you're consuming this in a mobile phone DApp, then all you need to do is convert to string, which in golang would be `string(returnedBytes)` and you have your IPFS Hash in plaintext! ```solidity pragma solidity 0.5.7; contract Hash { bytes32 public hashPart1; bytes32 public hashPart2; function updateHash(bytes32[2] memory _hash) public returns (bool) { hashPart1 = _hash[0]; hashPart2 = _hash[1]; return true; } function getHash() public view returns (bytes memory) { bytes memory joined = new bytes(64); bytes32 h1 = link.currentHash[0]; bytes32 h2 = link.currentHash[1]; assembly { mstore(add(joined, 32), h1) mstore(add(joined, 64), h2) } return joined; } } ``` So does this actually save gas, or did I just waste your time? ## Gas Consumption To test gas consumption, i wrote the following fairly ugly test contract to measure gas consumption. To get cas costs, I would check the `CumulativeGasUsed` field of the transaction receipt. Tests were ran on a local private PoA chain on my laptop with a 1sec block time, using `geth 1.8.27-stable`. The functions `updateLink`, `updateLinkHash` and `updateLinkParts` are used to test gas costs from different ways of storing data in two `bytes32` storage slots. The function `setCID` is used to test gas costs for storing a hashed IPFS hash.. The function `setCIDString` was used to test gas costs from storing the plaintext (aka string) version of the IPFS hash. ```solidity pragma solidity 0.5.7; contract GasTest { string public hashString; bytes32 public hash; bytes32[2] public linkHash; bytes32 public linkPart1; bytes32 public linkPart2; LinkObject private link; struct LinkObject { bytes32[2] currentHash; } function updateLink(bytes32[2] memory _newHash) public returns (bool) { link.currentHash = _newHash; return true; } function updateLinkHash(bytes32[2] memory _newHash) public returns (bool) { linkHash = _newHash; return true; } function updateLinkParts(bytes32[2] memory _newHash) public returns (bool) { linkPart1 = _newHash[0]; linkPart2 = _newHash[1]; return true; } function setCID(bytes32 _cid) public returns (bool) { hash = _cid; return true; } function setCIDString(string memory _cid) public returns (bool) { hashString = _cid; return true; } } ``` And the results of cumulative gas usage from the above contract is | Function | Cumulative Gas Used | |------|---------------------| | updateLink | 66360 | | updateLinkHash | 66426 | | updateLinkParts | 66071 | | setCID | 43810 | | setCIDString | 86213 | Initially you might be looking at the gas cost for `setCID` and start thinking that I just wasted your precious time. However, we need to consider the fact that this isn't actually just the IPFS hash. It is a hash, *of* the IPFS hash. So while this may be gas efficient, it is not easy to consume outside of smart contracts, and is abysmal at best to consume within other smart contracts because: 1) We need to store a plaintext copy of the hash somewhere accessible by the smart contract (storage) 2) We need to read the plaintext data from storage, hash it, then compare the two hashed hashes. Now after considering that, the gas prices for the hash storage methods being talked about here (66071 -> 66360 depending on the method being used), combined with the fact that there you can store+consume the hashes as is, seems pretty useful in my eyes. ## Takeways * Use `blake2b-328` * Cast to bytes * Store in 2 `bytes32` storage slots * ??? * profit!
json metadata{"tags":["ethereum","blockchain","ipfs","smart-contract","storage"],"image":["https://steemitimages.com/p/C3TZR1g81UNaPs7vzNXHueW5ZM76DSHWEY7onmfLxcK2iP9NnDPd8cYgNcNPAgCHxWtpiRzAc3VPR8tn2BRS41v4wLj1g6J1mqvtWTX7e1pTL9Hbpc4G9mg?format=match&mode=fit&width=640","https://raw.githubusercontent.com/multiformats/multiformats/eb22cd807db692877a9094b5bfb4d2997fd0278a/img/multihash.006.jpg","https://gateway.temporal.cloud/ipfs/QmR5uZMmt6rzsyW4iyHjFSb8ieUqqrWJWz7ea2iA6pBV1M"],"links":["https://multiformats.io/multihash/","https://multiformats.io/","https://github.com/multiformats/multihash"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #32481358/Trx 5901a547779026205a1f48b1a5629c1c1c2fb505
View Raw JSON Data
{
  "trx_id": "5901a547779026205a1f48b1a5629c1c1c2fb505",
  "block": 32481358,
  "trx_in_block": 14,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-04-29T23:17:18",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "ethereum",
      "author": "rtrade",
      "permlink": "efficient-usable-and-cheap-storage-of-ipfs-hashes-in-solidity-smart-contracts",
      "title": "Efficient, Usable, And Cheap Storage Of IPFS Hashes In Solidity Smart Contracts",
      "body": "![](https://steemitimages.com/p/C3TZR1g81UNaPs7vzNXHueW5ZM76DSHWEY7onmfLxcK2iP9NnDPd8cYgNcNPAgCHxWtpiRzAc3VPR8tn2BRS41v4wLj1g6J1mqvtWTX7e1pTL9Hbpc4G9mg?format=match&mode=fit&width=640)\n\n# Efficient, Usable, And Cheap Storage Of IPFS Hashes In Solidity Smart Contracts\n\nRecently while working on a new project, I encountered the need to store IPFS Hashes, in particular CIDv1 type on the ethereum blockchain, in a user-friendly but also gas efficient manner. Why CIDv1? Well CIDv0 uses sha2-256, whose output size does not fit into a single `bytes32` storage slot. From what I've seen in the wild, anytime people need to store IPFS hashes in smart contracts, it's almost always a hash of the IPFS CID stored in a `bytes32` storage variable, or the IPFS hash itself stored in a `string` storage variable. Working with CIDv1 does not suffer from this :)\n\nWhile there is nothing wrong with either of those two approaches, they are suboptimal. Hashing a hash simply to fit into a single storage slot makes it significantly harder to consume and is only worthwhile if you need to do so for security reasons. Storing the IPFS hash in a `string` storage variable is very expensive in general, and also suboptimal.\n\nThe trick here is being able to fit into as few, but fully occupied storage slots as possible (efficient), while being easy to consume (usable) and using minimal gas (cheap). This sounds simple in theory as all you need to do is find a hash function that takes up a single `bytes32` storage variable, or two `bytes32` storage variables, but because IPFS uses multiformats (or more appropriately, multihash) this isn't as easy as it sounds. To figure this out, we're going to need to talk a bit about multihash.\n\n## Multihash\n\n[Multihash](https://multiformats.io/multihash/) is a subset of the [multiformat](https://multiformats.io/) specification and allows us to create [self describing hashes](https://github.com/multiformats/multihash). The format for multihash looks like (image is from github.com/multiformats/multiformats):\n\n![](https://raw.githubusercontent.com/multiformats/multiformats/eb22cd807db692877a9094b5bfb4d2997fd0278a/img/multihash.006.jpg)\n\nSo given the above, this means that even if you were able to find a hash function whose output is 32 bytes, multihash would then add an additional 4 bytes onto that for a total of 36 bytes. This means we then need to store it in a `bytes` storage variable which has a single word overhead.\n\n## Solution\n\nThis then lead me to the question, what if we can find a hash function which when in multihash format takes up a single `bytes32` storage slot we would be good to go! Well not quite, the only multihash that did this was `blake2b-136`, which `go-ipfs` nodes don't accept by default due to security risks... yikes!\n\nAfter several hours of different experimentation (aka blindly trying multihashes), I was finally able to find a hash function which when in multihash the output is 64 bytes, which means we can store this in exactly two `bytes32` storage slots, completely filling two slots and not wasting any. The multihash is `blake2b-328`. So to use this, all we need to do is take the 64 bytes output, split it in two and we're good to go!\n\n![](https://gateway.temporal.cloud/ipfs/QmR5uZMmt6rzsyW4iyHjFSb8ieUqqrWJWz7ea2iA6pBV1M)\n\n## Example\n\nTo keep things short, I'll demonstrate the most optimal solution I found after trying a few different combinations and ways to store two `bytes32` storage variables.\n\nThe first step is two define two parts of the hash, `hashPart1` and `hashPart2`. In order to store our IFPS hashes here, we need to take the 64 bytes output of the `blake2b-328` multihash, split it in half, storing each half within a 2 element array of `bytes32` type, passing that into the function `updateHash`.\n\nNow, whenever we want to consume this data, all we have to do is call `getHash` which will return the complete hash in `bytes` type. If you're consuming this in a mobile phone DApp, then all you need to do is convert to string, which in golang would be `string(returnedBytes)` and you have your IPFS Hash in plaintext!\n\n\n```solidity\npragma solidity 0.5.7;\n\ncontract Hash {\n    \n    bytes32 public hashPart1;\n    bytes32 public hashPart2;\n\n\n    function updateHash(bytes32[2] memory _hash) public returns (bool) {\n        hashPart1 = _hash[0];\n        hashPart2 = _hash[1];\n        return true;\n    }\n\n    function getHash() public view returns (bytes memory) {\n        bytes memory joined = new bytes(64);\n        bytes32 h1 = link.currentHash[0];\n        bytes32 h2 = link.currentHash[1];\n        assembly {\n            mstore(add(joined, 32), h1)\n            mstore(add(joined, 64), h2)\n        }\n        return joined; \n    }\n\n}\n```\n\nSo does this actually save gas, or did I just waste your time?\n\n\n## Gas Consumption\n\nTo test gas consumption, i wrote the following fairly ugly test contract to measure gas consumption. To get cas costs, I would check the `CumulativeGasUsed` field of the transaction receipt. Tests were ran on a local private PoA chain on my laptop with a 1sec block time, using `geth 1.8.27-stable`.\n\nThe functions `updateLink`, `updateLinkHash` and `updateLinkParts` are used to test gas costs from different ways of storing data in two `bytes32` storage slots. The function `setCID` is used to test gas costs for storing a hashed IPFS hash.. The function `setCIDString` was used to test gas costs from storing the plaintext (aka string) version of the IPFS hash.\n\n```solidity\npragma solidity 0.5.7;\n\ncontract GasTest {\n\n    string public hashString;\n    bytes32 public hash;\n    bytes32[2] public linkHash;\n    bytes32 public linkPart1;\n    bytes32 public linkPart2;\n    LinkObject private link;\n\n    struct LinkObject {\n        bytes32[2] currentHash;\n    }\n\n    function updateLink(bytes32[2] memory _newHash) public returns (bool) {\n        link.currentHash = _newHash;\n        return true;\n    }\n\n    function updateLinkHash(bytes32[2] memory _newHash) public returns (bool) {\n        linkHash = _newHash;\n        return true;\n    }\n\n    function updateLinkParts(bytes32[2] memory _newHash) public returns (bool) {\n        linkPart1 = _newHash[0];\n        linkPart2 = _newHash[1];\n        return true;\n    }\n\n    function setCID(bytes32 _cid) public returns (bool) {\n        hash = _cid;\n        return true;\n    }\n\n\n    function setCIDString(string memory _cid) public returns (bool) {\n        hashString = _cid;\n        return true;\n    }\n}\n```\n\nAnd the results of cumulative gas usage from the above contract is\n\n\n| Function | Cumulative Gas Used |\n|------|---------------------|\n| updateLink | 66360 |\n| updateLinkHash | 66426 |\n| updateLinkParts | 66071 |\n| setCID | 43810 |\n| setCIDString | 86213 |\n\nInitially you might be looking at the gas cost for `setCID` and start thinking that I just wasted your precious time. However, we need to consider the fact that this isn't actually just the IPFS hash. It is a hash, *of* the IPFS hash. So while this may be gas efficient, it is not easy to consume outside of smart contracts, and is abysmal at best to consume within other smart contracts because:\n\n1) We need to store a plaintext copy of the hash somewhere accessible by the smart contract (storage)\n2) We need to read the plaintext data from storage, hash it, then compare the two hashed hashes.\n\nNow after considering that, the gas prices for the hash storage methods being talked about here (66071 -> 66360 depending on the method being used), combined with the fact that there you can store+consume the hashes as is, seems pretty useful in my eyes.\n\n\n\n## Takeways\n\n* Use `blake2b-328`\n* Cast to bytes\n* Store in 2 `bytes32` storage slots\n* ???\n* profit!",
      "json_metadata": "{\"tags\":[\"ethereum\",\"blockchain\",\"ipfs\",\"smart-contract\",\"storage\"],\"image\":[\"https://steemitimages.com/p/C3TZR1g81UNaPs7vzNXHueW5ZM76DSHWEY7onmfLxcK2iP9NnDPd8cYgNcNPAgCHxWtpiRzAc3VPR8tn2BRS41v4wLj1g6J1mqvtWTX7e1pTL9Hbpc4G9mg?format=match&mode=fit&width=640\",\"https://raw.githubusercontent.com/multiformats/multiformats/eb22cd807db692877a9094b5bfb4d2997fd0278a/img/multihash.006.jpg\",\"https://gateway.temporal.cloud/ipfs/QmR5uZMmt6rzsyW4iyHjFSb8ieUqqrWJWz7ea2iA6pBV1M\"],\"links\":[\"https://multiformats.io/multihash/\",\"https://multiformats.io/\",\"https://github.com/multiformats/multihash\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
rtradereceived 0.000 STEEM from power down installment (0.000 SP)
2019/01/15 18:31:00
from accountrtrade
to accountrtrade
withdrawn0.000006 VESTS
deposited0.000 STEEM
Transaction InfoBlock #29484210/Virtual Operation #9
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 29484210,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 9,
  "timestamp": "2019-01-15T18:31:00",
  "op": [
    "fill_vesting_withdraw",
    {
      "from_account": "rtrade",
      "to_account": "rtrade",
      "withdrawn": "0.000006 VESTS",
      "deposited": "0.000 STEEM"
    }
  ]
}
rtradereceived 13.725 STEEM from power down installment (16.935 SP)
2019/01/08 18:31:00
from accountrtrade
to accountrtrade
withdrawn27577.396201 VESTS
deposited13.725 STEEM
Transaction InfoBlock #29282749/Virtual Operation #3
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 29282749,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 3,
  "timestamp": "2019-01-08T18:31:00",
  "op": [
    "fill_vesting_withdraw",
    {
      "from_account": "rtrade",
      "to_account": "rtrade",
      "withdrawn": "27577.396201 VESTS",
      "deposited": "13.725 STEEM"
    }
  ]
}
rtradereceived 13.720 STEEM from power down installment (16.935 SP)
2019/01/01 18:31:00
from accountrtrade
to accountrtrade
withdrawn27577.396201 VESTS
deposited13.720 STEEM
Transaction InfoBlock #29081384/Virtual Operation #2
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 29081384,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 2,
  "timestamp": "2019-01-01T18:31:00",
  "op": [
    "fill_vesting_withdraw",
    {
      "from_account": "rtrade",
      "to_account": "rtrade",
      "withdrawn": "27577.396201 VESTS",
      "deposited": "13.720 STEEM"
    }
  ]
}
2018/12/29 11:17:09
voterrtrade
authorrtrade
permlinkre-steemcleaners-re-rtrade-rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage-20181221t092103126z
weight10000 (100.00%)
Transaction InfoBlock #28986379/Trx 096750aa9c1c918e8db429f7c957d84f1aae1752
View Raw JSON Data
{
  "trx_id": "096750aa9c1c918e8db429f7c957d84f1aae1752",
  "block": 28986379,
  "trx_in_block": 12,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-29T11:17:09",
  "op": [
    "vote",
    {
      "voter": "rtrade",
      "author": "rtrade",
      "permlink": "re-steemcleaners-re-rtrade-rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage-20181221t092103126z",
      "weight": 10000
    }
  ]
}
rtradereceived 13.715 STEEM from power down installment (16.935 SP)
2018/12/25 18:31:00
from accountrtrade
to accountrtrade
withdrawn27577.396201 VESTS
deposited13.715 STEEM
Transaction InfoBlock #28879894/Virtual Operation #14
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 28879894,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 14,
  "timestamp": "2018-12-25T18:31:00",
  "op": [
    "fill_vesting_withdraw",
    {
      "from_account": "rtrade",
      "to_account": "rtrade",
      "withdrawn": "27577.396201 VESTS",
      "deposited": "13.715 STEEM"
    }
  ]
}
2018/12/21 09:23:18
voterlinuxguy
authorrtrade
permlinkre-steemcleaners-re-rtrade-rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage-20181221t092103126z
weight10000 (100.00%)
Transaction InfoBlock #28753801/Trx 7734db945c89d1863a6101df4b752b499627e9a0
View Raw JSON Data
{
  "trx_id": "7734db945c89d1863a6101df4b752b499627e9a0",
  "block": 28753801,
  "trx_in_block": 20,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-21T09:23:18",
  "op": [
    "vote",
    {
      "voter": "linuxguy",
      "author": "rtrade",
      "permlink": "re-steemcleaners-re-rtrade-rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage-20181221t092103126z",
      "weight": 10000
    }
  ]
}
2018/12/21 09:23:09
voterlinuxguy
authorrtrade
permlinkre-steemcleaner-re-rtrade-rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage-20181221t092034476z
weight10000 (100.00%)
Transaction InfoBlock #28753798/Trx 96475638a2a5e05a0d38b308aacbc27df084f84c
View Raw JSON Data
{
  "trx_id": "96475638a2a5e05a0d38b308aacbc27df084f84c",
  "block": 28753798,
  "trx_in_block": 9,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-21T09:23:09",
  "op": [
    "vote",
    {
      "voter": "linuxguy",
      "author": "rtrade",
      "permlink": "re-steemcleaner-re-rtrade-rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage-20181221t092034476z",
      "weight": 10000
    }
  ]
}
2018/12/21 09:21:33
voterrtrade
authorrtrade
permlinkre-steemcleaner-re-rtrade-rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage-20181221t092034476z
weight10000 (100.00%)
Transaction InfoBlock #28753766/Trx 61e420667b586b1a801dd347ca2b8244198df471
View Raw JSON Data
{
  "trx_id": "61e420667b586b1a801dd347ca2b8244198df471",
  "block": 28753766,
  "trx_in_block": 26,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-21T09:21:33",
  "op": [
    "vote",
    {
      "voter": "rtrade",
      "author": "rtrade",
      "permlink": "re-steemcleaner-re-rtrade-rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage-20181221t092034476z",
      "weight": 10000
    }
  ]
}
2018/12/21 09:21:12
votercheetah
authorrtrade
permlinkre-steemcleaners-re-rtrade-rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage-20181221t092103126z
weight-8 (-0.08%)
Transaction InfoBlock #28753759/Trx 62ab34c7fb6c64a1f1f1ffbe51ce600b9a42771c
View Raw JSON Data
{
  "trx_id": "62ab34c7fb6c64a1f1f1ffbe51ce600b9a42771c",
  "block": 28753759,
  "trx_in_block": 6,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-21T09:21:12",
  "op": [
    "vote",
    {
      "voter": "cheetah",
      "author": "rtrade",
      "permlink": "re-steemcleaners-re-rtrade-rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage-20181221t092103126z",
      "weight": -8
    }
  ]
}
2018/12/21 09:21:03
parent authorsteemcleaners
parent permlinkre-rtrade-rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage-20181208t110301526z
authorrtrade
permlinkre-steemcleaners-re-rtrade-rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage-20181221t092103126z
title
bodyNot sure what exactly "steemcleaner" is but we're not going to verify with services we've never heard about, nor that didn't bother to reach out to us through proper channels. Tweeting us isn't a reliable method of contacting us. Our emails are clearly available on our websites, telegram, and other community channels.
json metadata{"tags":["cryptocurrency"],"app":"steemit/0.1"}
Transaction InfoBlock #28753756/Trx e341e6b20358c86e0f3c879954c91f03da8be2c6
View Raw JSON Data
{
  "trx_id": "e341e6b20358c86e0f3c879954c91f03da8be2c6",
  "block": 28753756,
  "trx_in_block": 10,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-21T09:21:03",
  "op": [
    "comment",
    {
      "parent_author": "steemcleaners",
      "parent_permlink": "re-rtrade-rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage-20181208t110301526z",
      "author": "rtrade",
      "permlink": "re-steemcleaners-re-rtrade-rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage-20181221t092103126z",
      "title": "",
      "body": "Not sure what exactly \"steemcleaner\" is but we're not going to verify with services we've never heard about, nor that didn't bother to reach out to us through proper channels. Tweeting us isn't a reliable method of contacting us. Our emails are clearly available on our websites, telegram, and other community channels.",
      "json_metadata": "{\"tags\":[\"cryptocurrency\"],\"app\":\"steemit/0.1\"}"
    }
  ]
}
2018/12/21 09:20:57
voterrtrade
authorsteemcleaner
permlinkre-rtrade-rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage-20181214t161012580z
weight-10000 (-100.00%)
Transaction InfoBlock #28753754/Trx 0497d9cc6758e9164226fef7eef089327c1a6e63
View Raw JSON Data
{
  "trx_id": "0497d9cc6758e9164226fef7eef089327c1a6e63",
  "block": 28753754,
  "trx_in_block": 14,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-21T09:20:57",
  "op": [
    "vote",
    {
      "voter": "rtrade",
      "author": "steemcleaner",
      "permlink": "re-rtrade-rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage-20181214t161012580z",
      "weight": -10000
    }
  ]
}
2018/12/21 09:20:48
voterrtrade
authorcheetah
permlinkcheetah-re-steemcleanerre-rtrade-rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage-20181214t161012580z
weight-10000 (-100.00%)
Transaction InfoBlock #28753751/Trx 7df693aac050803b53fdfbf077f204750e189f1d
View Raw JSON Data
{
  "trx_id": "7df693aac050803b53fdfbf077f204750e189f1d",
  "block": 28753751,
  "trx_in_block": 8,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-21T09:20:48",
  "op": [
    "vote",
    {
      "voter": "rtrade",
      "author": "cheetah",
      "permlink": "cheetah-re-steemcleanerre-rtrade-rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage-20181214t161012580z",
      "weight": -10000
    }
  ]
}
2018/12/21 09:20:45
votercheetah
authorrtrade
permlinkre-steemcleaner-re-rtrade-rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage-20181221t092034476z
weight-8 (-0.08%)
Transaction InfoBlock #28753750/Trx a3a05b1e4a176bfdd2eebd756b5a79ee4fe73c37
View Raw JSON Data
{
  "trx_id": "a3a05b1e4a176bfdd2eebd756b5a79ee4fe73c37",
  "block": 28753750,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-21T09:20:45",
  "op": [
    "vote",
    {
      "voter": "cheetah",
      "author": "rtrade",
      "permlink": "re-steemcleaner-re-rtrade-rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage-20181221t092034476z",
      "weight": -8
    }
  ]
}
2018/12/21 09:20:36
parent authorsteemcleaner
parent permlinkre-rtrade-rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage-20181214t161012580z
authorrtrade
permlinkre-steemcleaner-re-rtrade-rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage-20181221t092034476z
title
bodyNot sure what exactly "steemcleaner" is but we're not going to verify with services we've never heard about, nor that didn't bother to reach out to us through proper channels. Tweeting us isn't a reliable method of contacting us. Our emails are clearly available on our websites, telegram, and other community channels.
json metadata{"tags":["cryptocurrency"],"app":"steemit/0.1"}
Transaction InfoBlock #28753747/Trx a2bba2bc9edd0409a469766c043664cbec39ab6e
View Raw JSON Data
{
  "trx_id": "a2bba2bc9edd0409a469766c043664cbec39ab6e",
  "block": 28753747,
  "trx_in_block": 3,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-21T09:20:36",
  "op": [
    "comment",
    {
      "parent_author": "steemcleaner",
      "parent_permlink": "re-rtrade-rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage-20181214t161012580z",
      "author": "rtrade",
      "permlink": "re-steemcleaner-re-rtrade-rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage-20181221t092034476z",
      "title": "",
      "body": "Not sure what exactly \"steemcleaner\" is but we're not going to verify with services we've never heard about, nor that didn't bother to reach out to us through proper channels. Tweeting us isn't a reliable method of contacting us. Our emails are clearly available on our websites, telegram, and other community channels.",
      "json_metadata": "{\"tags\":[\"cryptocurrency\"],\"app\":\"steemit/0.1\"}"
    }
  ]
}
2018/12/21 09:20:18
voterrtrade
authorsteemcleaners
permlinkre-rtrade-rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage-20181208t110301526z
weight-10000 (-100.00%)
Transaction InfoBlock #28753741/Trx 10151ff299298b7b35749292f82a5d1d48fc5829
View Raw JSON Data
{
  "trx_id": "10151ff299298b7b35749292f82a5d1d48fc5829",
  "block": 28753741,
  "trx_in_block": 3,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-21T09:20:18",
  "op": [
    "vote",
    {
      "voter": "rtrade",
      "author": "steemcleaners",
      "permlink": "re-rtrade-rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage-20181208t110301526z",
      "weight": -10000
    }
  ]
}
rtradereceived 13.709 STEEM from power down installment (16.935 SP)
2018/12/18 18:31:00
from accountrtrade
to accountrtrade
withdrawn27577.396201 VESTS
deposited13.709 STEEM
Transaction InfoBlock #28678417/Virtual Operation #2
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 28678417,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 2,
  "timestamp": "2018-12-18T18:31:00",
  "op": [
    "fill_vesting_withdraw",
    {
      "from_account": "rtrade",
      "to_account": "rtrade",
      "withdrawn": "27577.396201 VESTS",
      "deposited": "13.709 STEEM"
    }
  ]
}
2018/12/14 16:10:12
parent authorrtrade
parent permlinkrtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage
authorsteemcleaner
permlinkre-rtrade-rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage-20181214t161012580z
title
body!cheetah ban Failed ID Verification.
json metadata{"app":"steemcleaners/0.3","format":"markdown+html","community":"steemcleaners"}
Transaction InfoBlock #28560473/Trx bed9d99e89128255a02ae0d27cc66b84de511b33
View Raw JSON Data
{
  "trx_id": "bed9d99e89128255a02ae0d27cc66b84de511b33",
  "block": 28560473,
  "trx_in_block": 19,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-14T16:10:12",
  "op": [
    "comment",
    {
      "parent_author": "rtrade",
      "parent_permlink": "rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage",
      "author": "steemcleaner",
      "permlink": "re-rtrade-rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage-20181214t161012580z",
      "title": "",
      "body": "!cheetah ban\nFailed ID Verification.",
      "json_metadata": "{\"app\":\"steemcleaners/0.3\",\"format\":\"markdown+html\",\"community\":\"steemcleaners\"}"
    }
  ]
}
rtradereceived 13.704 STEEM from power down installment (16.935 SP)
2018/12/11 18:31:00
from accountrtrade
to accountrtrade
withdrawn27577.396201 VESTS
deposited13.704 STEEM
Transaction InfoBlock #28476956/Virtual Operation #22
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 28476956,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 22,
  "timestamp": "2018-12-11T18:31:00",
  "op": [
    "fill_vesting_withdraw",
    {
      "from_account": "rtrade",
      "to_account": "rtrade",
      "withdrawn": "27577.396201 VESTS",
      "deposited": "13.704 STEEM"
    }
  ]
}
2018/12/10 09:16:21
voterdemandkelvin
authorrtrade
permlinkrtrade-technologies-ltd-mega-development-update
weight10000 (100.00%)
Transaction InfoBlock #28437093/Trx 6c7fe0823d1a62e5857229f4003fb4bd464e22f0
View Raw JSON Data
{
  "trx_id": "6c7fe0823d1a62e5857229f4003fb4bd464e22f0",
  "block": 28437093,
  "trx_in_block": 9,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-10T09:16:21",
  "op": [
    "vote",
    {
      "voter": "demandkelvin",
      "author": "rtrade",
      "permlink": "rtrade-technologies-ltd-mega-development-update",
      "weight": 10000
    }
  ]
}
2018/12/10 09:16:21
voterdemandkelvin
authorrtrade
permlinkrtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage
weight10000 (100.00%)
Transaction InfoBlock #28437093/Trx 0f8f6810c649ea7f62ce17939a88083e5f4824e0
View Raw JSON Data
{
  "trx_id": "0f8f6810c649ea7f62ce17939a88083e5f4824e0",
  "block": 28437093,
  "trx_in_block": 5,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-10T09:16:21",
  "op": [
    "vote",
    {
      "voter": "demandkelvin",
      "author": "rtrade",
      "permlink": "rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage",
      "weight": 10000
    }
  ]
}
2018/12/08 11:03:03
parent authorrtrade
parent permlinkrtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage
authorsteemcleaners
permlinkre-rtrade-rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage-20181208t110301526z
title
bodyHello, We have contacted you on your Twitter to verify the authorship of your Steemit blog but we have received no response yet. We would be grateful if you could, please, respond to us via Twitter. https://twitter.com/steemcleaners/status/1068225314965331970 Please note I am a volunteer that works to ensure that plagiarised content does not get rewarded. I have no way to remove any content from steemit.com. Thank you
json metadata{"tags":["cryptocurrency"],"links":["https://twitter.com/steemcleaners/status/1068225314965331970"],"app":"steemit/0.1"}
Transaction InfoBlock #28381650/Trx b2e2e68ab4c8868607026005e0b8c12febc6ce92
View Raw JSON Data
{
  "trx_id": "b2e2e68ab4c8868607026005e0b8c12febc6ce92",
  "block": 28381650,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-08T11:03:03",
  "op": [
    "comment",
    {
      "parent_author": "rtrade",
      "parent_permlink": "rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage",
      "author": "steemcleaners",
      "permlink": "re-rtrade-rtrade-technologies-to-use-chainlink-to-provide-oracles-for-high-quality-off-chain-data-storage-20181208t110301526z",
      "title": "",
      "body": "Hello, \n\nWe have contacted you on your Twitter to verify the authorship of your Steemit blog but we have received no response yet. We would be grateful if you could, please, respond to us via Twitter. \n\nhttps://twitter.com/steemcleaners/status/1068225314965331970\n\nPlease note I am a volunteer that works to ensure that plagiarised content does not get rewarded. I have no way to remove any content from steemit.com.\n\nThank you",
      "json_metadata": "{\"tags\":[\"cryptocurrency\"],\"links\":[\"https://twitter.com/steemcleaners/status/1068225314965331970\"],\"app\":\"steemit/0.1\"}"
    }
  ]
}
rtradeclaimed reward balance: 1.279 STEEM, 0.004 SBD, 1.596 SP
2018/12/06 23:13:39
accountrtrade
reward steem1.279 STEEM
reward sbd0.004 SBD
reward vests2598.707695 VESTS
Transaction InfoBlock #28338704/Trx 79d6ca68e30c5bc15dde63698642df88d9571107
View Raw JSON Data
{
  "trx_id": "79d6ca68e30c5bc15dde63698642df88d9571107",
  "block": 28338704,
  "trx_in_block": 9,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-06T23:13:39",
  "op": [
    "claim_reward_balance",
    {
      "account": "rtrade",
      "reward_steem": "1.279 STEEM",
      "reward_sbd": "0.004 SBD",
      "reward_vests": "2598.707695 VESTS"
    }
  ]
}

Account Metadata

POSTING JSON METADATA
profile{"location":"Canada","website":"http://www.rtradetechnologies.com","about":"Steemit page for RTrade Technologies LTD. Specialists in Blockchain Infrastructure","name":"RTrade Technologies","profile_image":"https://cdn.steemitimages.com/DQmS3zhzYVoAcpMWWALxHmxULS9krj2uPXYorCqr9dvf6Ep/about-us_R-logo%20Circle.png","cover_image":"https://cdn.steemitimages.com/DQmcrrfZzmzKWjtN2JagXTsvCqd9wyF6igBquUEvmPTVqFa/Twitter%20Header.png"}
JSON METADATA
profile{"location":"Canada","website":"http://www.rtradetechnologies.com","about":"Steemit page for RTrade Technologies LTD. Specialists in Blockchain Infrastructure","name":"RTrade Technologies","profile_image":"https://cdn.steemitimages.com/DQmS3zhzYVoAcpMWWALxHmxULS9krj2uPXYorCqr9dvf6Ep/about-us_R-logo%20Circle.png","cover_image":"https://cdn.steemitimages.com/DQmcrrfZzmzKWjtN2JagXTsvCqd9wyF6igBquUEvmPTVqFa/Twitter%20Header.png"}
{
  "posting_json_metadata": {
    "profile": {
      "location": "Canada",
      "website": "http://www.rtradetechnologies.com",
      "about": "Steemit page for RTrade Technologies LTD. Specialists in Blockchain Infrastructure",
      "name": "RTrade Technologies",
      "profile_image": "https://cdn.steemitimages.com/DQmS3zhzYVoAcpMWWALxHmxULS9krj2uPXYorCqr9dvf6Ep/about-us_R-logo%20Circle.png",
      "cover_image": "https://cdn.steemitimages.com/DQmcrrfZzmzKWjtN2JagXTsvCqd9wyF6igBquUEvmPTVqFa/Twitter%20Header.png"
    }
  },
  "json_metadata": {
    "profile": {
      "location": "Canada",
      "website": "http://www.rtradetechnologies.com",
      "about": "Steemit page for RTrade Technologies LTD. Specialists in Blockchain Infrastructure",
      "name": "RTrade Technologies",
      "profile_image": "https://cdn.steemitimages.com/DQmS3zhzYVoAcpMWWALxHmxULS9krj2uPXYorCqr9dvf6Ep/about-us_R-logo%20Circle.png",
      "cover_image": "https://cdn.steemitimages.com/DQmcrrfZzmzKWjtN2JagXTsvCqd9wyF6igBquUEvmPTVqFa/Twitter%20Header.png"
    }
  }
}

Auth Keys

Owner
Single Signature
Public Keys
STM7FjLoFn2ZCFr8Xh7t6hTsYGyGHe7C7dyegFz7ByTuGcHpfZXiH1/1
Active
Single Signature
Public Keys
STM6wzdmt6xJ6SQh87k7FHm8z8jXnx1Hx4msAA2qiQpaMmHAeiXM71/1
Posting
Single Signature
Public Keys
STM6zrckzoNfRuT31Z74BHFDKoJxnck8o2E4ADEutTRn3GDMwrYeW1/1
Memo
STM7buGbJducfuRaRqK9MHDsJHrdBT7eHrsjoWYLPFzMmbQEvpfdy
{
  "owner": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM7FjLoFn2ZCFr8Xh7t6hTsYGyGHe7C7dyegFz7ByTuGcHpfZXiH",
        1
      ]
    ]
  },
  "active": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM6wzdmt6xJ6SQh87k7FHm8z8jXnx1Hx4msAA2qiQpaMmHAeiXM7",
        1
      ]
    ]
  },
  "posting": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM6zrckzoNfRuT31Z74BHFDKoJxnck8o2E4ADEutTRn3GDMwrYeW",
        1
      ]
    ]
  },
  "memo": "STM7buGbJducfuRaRqK9MHDsJHrdBT7eHrsjoWYLPFzMmbQEvpfdy"
}

Witness Votes

0 / 30
No active witness votes.
[]