Ecoer Logo

@mvpworkshop

25

How to disrupt the business model & build innovative products

steemit.com/@mvpworkshop
VOTING POWER100.00%
DOWNVOTE POWER100.00%
RESOURCE CREDITS100.00%
REPUTATION PROGRESS0.00%
Net Worth
0.009USD
STEEM
0.037STEEM
SBD
0.000SBD
Effective Power
5.010SP
├── Own SP
0.125SP
└── Incoming Deleg
+4.885SP

Detailed Balance

STEEM
balance
0.000STEEM
market_balance
0.000STEEM
savings_balance
0.000STEEM
reward_steem_balance
0.037STEEM
STEEM POWER
Own SP
0.125SP
Delegated Out
0.000SP
Delegation In
4.885SP
Effective Power
5.010SP
Reward SP (pending)
0.037SP
SBD
sbd_balance
0.000SBD
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.037 STEEM",
  "vesting_shares": "202.957312 VESTS",
  "delegated_vesting_shares": "0.000000 VESTS",
  "received_vesting_shares": "7940.702494 VESTS",
  "sbd_balance": "0.000 SBD",
  "savings_sbd_balance": "0.000 SBD",
  "reward_sbd_balance": "0.000 SBD",
  "conversions": []
}

Account Info

namemvpworkshop
id1065321
rank296,778
reputation989675010
created2018-07-05T14:01:51
recovery_accountsteem
proxyNone
post_count2
comment_count0
lifetime_vote_count0
witnesses_voted_for0
last_post2018-08-08T17:09:51
last_root_post2018-08-08T17:09:51
last_vote_time2018-08-08T17:17:39
proxied_vsf_votes0, 0, 0, 0
can_vote1
voting_power0
delayed_votes0
balance0.000 STEEM
savings_balance0.000 STEEM
sbd_balance0.000 SBD
savings_sbd_balance0.000 SBD
vesting_shares202.957312 VESTS
delegated_vesting_shares0.000000 VESTS
received_vesting_shares7940.702494 VESTS
reward_vesting_balance74.951665 VESTS
vesting_balance0.000 STEEM
vesting_withdraw_rate0.000000 VESTS
next_vesting_withdrawal1969-12-31T23:59:59
withdrawn0
to_withdraw0
withdraw_routes0
savings_withdraw_requests0
last_account_recovery1970-01-01T00:00:00
reset_accountnull
last_owner_update1970-01-01T00:00:00
last_account_update2018-08-03T14:17:57
minedNo
sbd_seconds0
sbd_last_interest_payment1970-01-01T00:00:00
savings_sbd_last_interest_payment1970-01-01T00:00:00
{
  "active": {
    "account_auths": [],
    "key_auths": [
      [
        "STM8AwEvFtAmoUGWdFKGQknCgsw61eSqsN7FJj9emogzicWbwwsmx",
        1
      ]
    ],
    "weight_threshold": 1
  },
  "balance": "0.000 STEEM",
  "can_vote": true,
  "comment_count": 0,
  "created": "2018-07-05T14:01:51",
  "curation_rewards": 0,
  "delegated_vesting_shares": "0.000000 VESTS",
  "downvote_manabar": {
    "current_mana": 2035914951,
    "last_update_time": 1779077550
  },
  "guest_bloggers": [],
  "id": 1065321,
  "json_metadata": "{\"profile\":{\"profile_image\":\"https://cdn.steemitimages.com/DQmNjBhbCMdMyarzg4HUt36MYjhQKgdohvpd6tNayWRxh2d/logoMVPW.jpg\",\"name\":\"MVP Workshop\",\"about\":\"How to disrupt the business model & build innovative products\",\"location\":\"Belgrade\",\"website\":\"https://mvpworkshop.co/\"}}",
  "last_account_recovery": "1970-01-01T00:00:00",
  "last_account_update": "2018-08-03T14:17:57",
  "last_owner_update": "1970-01-01T00:00:00",
  "last_post": "2018-08-08T17:09:51",
  "last_root_post": "2018-08-08T17:09:51",
  "last_vote_time": "2018-08-08T17:17:39",
  "lifetime_vote_count": 0,
  "market_history": [],
  "memo_key": "STM7PD4rtTxjxCFGWf3avB47LcsTYMC9zu5MLvycXobKePMymjgg9",
  "mined": false,
  "name": "mvpworkshop",
  "next_vesting_withdrawal": "1969-12-31T23:59:59",
  "other_history": [],
  "owner": {
    "account_auths": [],
    "key_auths": [
      [
        "STM6aMfpyJFYbU8wCcfXYrFMP7scXNo1YGZswtuvbyuJkyuXZ2PKG",
        1
      ]
    ],
    "weight_threshold": 1
  },
  "pending_claimed_accounts": 0,
  "post_bandwidth": 0,
  "post_count": 2,
  "post_history": [],
  "posting": {
    "account_auths": [],
    "key_auths": [
      [
        "STM5VxGkiiUWn9CeE5Sew5A2kF8MmGSDPaRrjfdqAMm379x7jdmR1",
        1
      ]
    ],
    "weight_threshold": 1
  },
  "posting_json_metadata": "{\"profile\":{\"profile_image\":\"https://cdn.steemitimages.com/DQmNjBhbCMdMyarzg4HUt36MYjhQKgdohvpd6tNayWRxh2d/logoMVPW.jpg\",\"name\":\"MVP Workshop\",\"about\":\"How to disrupt the business model & build innovative products\",\"location\":\"Belgrade\",\"website\":\"https://mvpworkshop.co/\"}}",
  "posting_rewards": 74,
  "proxied_vsf_votes": [
    0,
    0,
    0,
    0
  ],
  "proxy": "",
  "received_vesting_shares": "7940.702494 VESTS",
  "recovery_account": "steem",
  "reputation": 989675010,
  "reset_account": "null",
  "reward_sbd_balance": "0.000 SBD",
  "reward_steem_balance": "0.037 STEEM",
  "reward_vesting_balance": "74.951665 VESTS",
  "reward_vesting_steem": "0.037 STEEM",
  "savings_balance": "0.000 STEEM",
  "savings_sbd_balance": "0.000 SBD",
  "savings_sbd_last_interest_payment": "1970-01-01T00:00:00",
  "savings_sbd_seconds": "0",
  "savings_sbd_seconds_last_update": "1970-01-01T00:00:00",
  "savings_withdraw_requests": 0,
  "sbd_balance": "0.000 SBD",
  "sbd_last_interest_payment": "1970-01-01T00:00:00",
  "sbd_seconds": "0",
  "sbd_seconds_last_update": "1970-01-01T00:00:00",
  "tags_usage": [],
  "to_withdraw": 0,
  "transfer_history": [],
  "vesting_balance": "0.000 STEEM",
  "vesting_shares": "202.957312 VESTS",
  "vesting_withdraw_rate": "0.000000 VESTS",
  "vote_history": [],
  "voting_manabar": {
    "current_mana": "8143659806",
    "last_update_time": 1779077550
  },
  "voting_power": 0,
  "withdraw_routes": 0,
  "withdrawn": 0,
  "witness_votes": [],
  "witnesses_voted_for": 0,
  "rank": 296778
}

Withdraw Routes

IncomingOutgoing
Empty
Empty
{
  "incoming": [],
  "outgoing": []
}
From Date
To Date
steemdelegated 4.885 SP to @mvpworkshop
2026/05/18 04:12:30
delegateemvpworkshop
delegatorsteem
vesting shares7940.702494 VESTS
Transaction InfoBlock #106148171/Trx 5ff02e52fa7dc14c49b2fb7085d69915737a1672
View Raw JSON Data
{
  "block": 106148171,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "mvpworkshop",
      "delegator": "steem",
      "vesting_shares": "7940.702494 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2026-05-18T04:12:30",
  "trx_id": "5ff02e52fa7dc14c49b2fb7085d69915737a1672",
  "trx_in_block": 1,
  "virtual_op": 0
}
steemdelegated 3.217 SP to @mvpworkshop
2026/05/12 19:52:00
delegateemvpworkshop
delegatorsteem
vesting shares5228.492089 VESTS
Transaction InfoBlock #105994901/Trx 6438b938dd5c421fddb2d248ef11872e84338893
View Raw JSON Data
{
  "block": 105994901,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "mvpworkshop",
      "delegator": "steem",
      "vesting_shares": "5228.492089 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2026-05-12T19:52:00",
  "trx_id": "6438b938dd5c421fddb2d248ef11872e84338893",
  "trx_in_block": 0,
  "virtual_op": 0
}
steemdelegated 4.893 SP to @mvpworkshop
2026/04/26 03:27:12
delegateemvpworkshop
delegatorsteem
vesting shares7953.218250 VESTS
Transaction InfoBlock #105515711/Trx e9b381e9440cc31b4f9219585148f0fdb039c042
View Raw JSON Data
{
  "block": 105515711,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "mvpworkshop",
      "delegator": "steem",
      "vesting_shares": "7953.218250 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2026-04-26T03:27:12",
  "trx_id": "e9b381e9440cc31b4f9219585148f0fdb039c042",
  "trx_in_block": 0,
  "virtual_op": 0
}
steemdelegated 3.242 SP to @mvpworkshop
2026/01/23 18:24:48
delegateemvpworkshop
delegatorsteem
vesting shares5270.038908 VESTS
Transaction InfoBlock #102864525/Trx e345624332a021fe26bab8a96d7dbc6606f32f0d
View Raw JSON Data
{
  "block": 102864525,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "mvpworkshop",
      "delegator": "steem",
      "vesting_shares": "5270.038908 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2026-01-23T18:24:48",
  "trx_id": "e345624332a021fe26bab8a96d7dbc6606f32f0d",
  "trx_in_block": 5,
  "virtual_op": 0
}
steemdelegated 3.343 SP to @mvpworkshop
2024/12/17 13:36:51
delegateemvpworkshop
delegatorsteem
vesting shares5434.258105 VESTS
Transaction InfoBlock #91310779/Trx 162b293fd768d484c3342067fe6d4ebc92ee80f7
View Raw JSON Data
{
  "block": 91310779,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "mvpworkshop",
      "delegator": "steem",
      "vesting_shares": "5434.258105 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2024-12-17T13:36:51",
  "trx_id": "162b293fd768d484c3342067fe6d4ebc92ee80f7",
  "trx_in_block": 3,
  "virtual_op": 0
}
steemdelegated 3.447 SP to @mvpworkshop
2023/11/14 05:18:42
delegateemvpworkshop
delegatorsteem
vesting shares5603.391637 VESTS
Transaction InfoBlock #79864952/Trx 9b0e4496c3eeee6cd49496fa1ce5f64ea12729ee
View Raw JSON Data
{
  "block": 79864952,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "mvpworkshop",
      "delegator": "steem",
      "vesting_shares": "5603.391637 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2023-11-14T05:18:42",
  "trx_id": "9b0e4496c3eeee6cd49496fa1ce5f64ea12729ee",
  "trx_in_block": 3,
  "virtual_op": 0
}
steemdelegated 5.254 SP to @mvpworkshop
2023/09/22 07:55:15
delegateemvpworkshop
delegatorsteem
vesting shares8540.300423 VESTS
Transaction InfoBlock #78359911/Trx 6da236796a85215d8e2a04f7ce44973f7130c007
View Raw JSON Data
{
  "block": 78359911,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "mvpworkshop",
      "delegator": "steem",
      "vesting_shares": "8540.300423 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2023-09-22T07:55:15",
  "trx_id": "6da236796a85215d8e2a04f7ce44973f7130c007",
  "trx_in_block": 1,
  "virtual_op": 0
}
steemdelegated 5.390 SP to @mvpworkshop
2022/11/03 15:42:39
delegateemvpworkshop
delegatorsteem
vesting shares8762.351861 VESTS
Transaction InfoBlock #69118046/Trx 400c4399fe589ca1419636c31970932d5707fb23
View Raw JSON Data
{
  "block": 69118046,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "mvpworkshop",
      "delegator": "steem",
      "vesting_shares": "8762.351861 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-11-03T15:42:39",
  "trx_id": "400c4399fe589ca1419636c31970932d5707fb23",
  "trx_in_block": 10,
  "virtual_op": 0
}
steemdelegated 5.526 SP to @mvpworkshop
2022/01/17 21:06:39
delegateemvpworkshop
delegatorsteem
vesting shares8982.459462 VESTS
Transaction InfoBlock #60821537/Trx 4d52722b55078f47eba8bb599212fa6688043c5c
View Raw JSON Data
{
  "block": 60821537,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "mvpworkshop",
      "delegator": "steem",
      "vesting_shares": "8982.459462 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-01-17T21:06:39",
  "trx_id": "4d52722b55078f47eba8bb599212fa6688043c5c",
  "trx_in_block": 25,
  "virtual_op": 0
}
steemdelegated 5.639 SP to @mvpworkshop
2021/06/14 04:23:00
delegateemvpworkshop
delegatorsteem
vesting shares9166.653750 VESTS
Transaction InfoBlock #54611979/Trx a402313bc2266b510481d71ca7112e6d4ada15d3
View Raw JSON Data
{
  "block": 54611979,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "mvpworkshop",
      "delegator": "steem",
      "vesting_shares": "9166.653750 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2021-06-14T04:23:00",
  "trx_id": "a402313bc2266b510481d71ca7112e6d4ada15d3",
  "trx_in_block": 0,
  "virtual_op": 0
}
steemdelegated 5.755 SP to @mvpworkshop
2020/12/11 14:37:18
delegateemvpworkshop
delegatorsteem
vesting shares9354.075724 VESTS
Transaction InfoBlock #49359299/Trx 2a374c6015a466be037714926e13647645753983
View Raw JSON Data
{
  "block": 49359299,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "mvpworkshop",
      "delegator": "steem",
      "vesting_shares": "9354.075724 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-12-11T14:37:18",
  "trx_id": "2a374c6015a466be037714926e13647645753983",
  "trx_in_block": 7,
  "virtual_op": 0
}
steemdelegated 1.177 SP to @mvpworkshop
2020/12/06 08:13:30
delegateemvpworkshop
delegatorsteem
vesting shares1912.543513 VESTS
Transaction InfoBlock #49210839/Trx 31f15a4200d2ca807f1b2b8019779736e08d8113
View Raw JSON Data
{
  "block": 49210839,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "mvpworkshop",
      "delegator": "steem",
      "vesting_shares": "1912.543513 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-12-06T08:13:30",
  "trx_id": "31f15a4200d2ca807f1b2b8019779736e08d8113",
  "trx_in_block": 20,
  "virtual_op": 0
}
steemdelegated 5.758 SP to @mvpworkshop
2020/12/05 18:14:54
delegateemvpworkshop
delegatorsteem
vesting shares9360.283578 VESTS
Transaction InfoBlock #49194384/Trx fccd344ec069f0207f9605f3324f57ca7962c014
View Raw JSON Data
{
  "block": 49194384,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "mvpworkshop",
      "delegator": "steem",
      "vesting_shares": "9360.283578 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-12-05T18:14:54",
  "trx_id": "fccd344ec069f0207f9605f3324f57ca7962c014",
  "trx_in_block": 2,
  "virtual_op": 0
}
steemdelegated 1.181 SP to @mvpworkshop
2020/11/02 22:50:57
delegateemvpworkshop
delegatorsteem
vesting shares1920.017158 VESTS
Transaction InfoBlock #48266295/Trx eaf3615a9d5f73bc6c8c39918293e945b408bfca
View Raw JSON Data
{
  "block": 48266295,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "mvpworkshop",
      "delegator": "steem",
      "vesting_shares": "1920.017158 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-11-02T22:50:57",
  "trx_id": "eaf3615a9d5f73bc6c8c39918293e945b408bfca",
  "trx_in_block": 3,
  "virtual_op": 0
}
steemdelegated 5.883 SP to @mvpworkshop
2020/05/09 09:14:30
delegateemvpworkshop
delegatorsteem
vesting shares9563.088937 VESTS
Transaction InfoBlock #43221137/Trx f26a42c5fe6a6376771fe48c508273842be8a9bf
View Raw JSON Data
{
  "block": 43221137,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "mvpworkshop",
      "delegator": "steem",
      "vesting_shares": "9563.088937 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-05-09T09:14:30",
  "trx_id": "f26a42c5fe6a6376771fe48c508273842be8a9bf",
  "trx_in_block": 16,
  "virtual_op": 0
}
steemdelegated 1.202 SP to @mvpworkshop
2020/05/08 13:22:18
delegateemvpworkshop
delegatorsteem
vesting shares1953.311140 VESTS
Transaction InfoBlock #43197855/Trx 055b6192bfe9a1e611da02cb97efa42478a2c85b
View Raw JSON Data
{
  "block": 43197855,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "mvpworkshop",
      "delegator": "steem",
      "vesting_shares": "1953.311140 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-05-08T13:22:18",
  "trx_id": "055b6192bfe9a1e611da02cb97efa42478a2c85b",
  "trx_in_block": 16,
  "virtual_op": 0
}
steemdelegated 5.949 SP to @mvpworkshop
2019/11/01 08:50:18
delegateemvpworkshop
delegatorsteem
vesting shares9669.488020 VESTS
Transaction InfoBlock #37789387/Trx f888d07585f643f49dc7a542b730a4096596de38
View Raw JSON Data
{
  "block": 37789387,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "mvpworkshop",
      "delegator": "steem",
      "vesting_shares": "9669.488020 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2019-11-01T08:50:18",
  "trx_id": "f888d07585f643f49dc7a542b730a4096596de38",
  "trx_in_block": 3,
  "virtual_op": 0
}
2019/07/05 15:20:03
authorsteemitboard
bodyCongratulations @mvpworkshop! You received a personal award! <table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@mvpworkshop/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/@mvpworkshop) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=mvpworkshop)_</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"]}
parent authormvpworkshop
parent permlink5-ways-to-build-hype-around-your-ico
permlinksteemitboard-notify-mvpworkshop-20190705t152002000z
title
Transaction InfoBlock #34399282/Trx d03e4000ef0096882ba81f8574fa0b902d9674e4
View Raw JSON Data
{
  "block": 34399282,
  "op": [
    "comment",
    {
      "author": "steemitboard",
      "body": "Congratulations @mvpworkshop! You received a personal award!\n\n<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@mvpworkshop/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/@mvpworkshop) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=mvpworkshop)_</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\"]}",
      "parent_author": "mvpworkshop",
      "parent_permlink": "5-ways-to-build-hype-around-your-ico",
      "permlink": "steemitboard-notify-mvpworkshop-20190705t152002000z",
      "title": ""
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2019-07-05T15:20:03",
  "trx_id": "d03e4000ef0096882ba81f8574fa0b902d9674e4",
  "trx_in_block": 7,
  "virtual_op": 0
}
steemdelegated 6.070 SP to @mvpworkshop
2018/11/26 18:44:51
delegateemvpworkshop
delegatorsteem
vesting shares9866.963397 VESTS
Transaction InfoBlock #28045438/Trx c92cdbe34a82c9597366531a85e0fbfe7d644703
View Raw JSON Data
{
  "block": 28045438,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "mvpworkshop",
      "delegator": "steem",
      "vesting_shares": "9866.963397 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-11-26T18:44:51",
  "trx_id": "c92cdbe34a82c9597366531a85e0fbfe7d644703",
  "trx_in_block": 41,
  "virtual_op": 0
}
mvpworkshopreceived 0.037 STEEM, 0.046 SP author reward for @mvpworkshop / a-closer-look-at-the-inter-planetary-file-system-ipfs
2018/08/10 14:19:42
authormvpworkshop
permlinka-closer-look-at-the-inter-planetary-file-system-ipfs
sbd payout0.000 SBD
steem payout0.037 STEEM
vesting payout74.951665 VESTS
Transaction InfoBlock #24947347/Virtual Operation #8
View Raw JSON Data
{
  "block": 24947347,
  "op": [
    "author_reward",
    {
      "author": "mvpworkshop",
      "permlink": "a-closer-look-at-the-inter-planetary-file-system-ipfs",
      "sbd_payout": "0.000 SBD",
      "steem_payout": "0.037 STEEM",
      "vesting_payout": "74.951665 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-10T14:19:42",
  "trx_id": "0000000000000000000000000000000000000000",
  "trx_in_block": 4294967295,
  "virtual_op": 8
}
2018/08/08 21:26:18
authorsteemitboard
bodyCongratulations @mvpworkshop! You have completed the following achievement on Steemit and have been rewarded with new badge(s) : [![](https://steemitimages.com/70x70/http://steemitboard.com/notifications/firstvote.png)](http://steemitboard.com/@mvpworkshop) You made your First Vote <sub>_Click on the badge to view your Board of Honor._</sub> <sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub> > Do you like [SteemitBoard's project](https://steemit.com/@steemitboard)? Then **[Vote for its witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1)** and **get one more award**!
json metadata{"image":["https://steemitboard.com/img/notify.png"]}
parent authormvpworkshop
parent permlink5-ways-to-build-hype-around-your-ico
permlinksteemitboard-notify-mvpworkshop-20180808t212618000z
title
Transaction InfoBlock #24898299/Trx 85ed85b5e875f5f2df112be40ceb006ef023f33a
View Raw JSON Data
{
  "block": 24898299,
  "op": [
    "comment",
    {
      "author": "steemitboard",
      "body": "Congratulations @mvpworkshop! You have completed the following achievement on Steemit and have been rewarded with new badge(s) :\n\n[![](https://steemitimages.com/70x70/http://steemitboard.com/notifications/firstvote.png)](http://steemitboard.com/@mvpworkshop) You made your First Vote\n\n<sub>_Click on the badge to view your Board of Honor._</sub>\n<sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub>\n\n\n\n> Do you like [SteemitBoard's project](https://steemit.com/@steemitboard)? Then **[Vote for its witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1)** and **get one more award**!",
      "json_metadata": "{\"image\":[\"https://steemitboard.com/img/notify.png\"]}",
      "parent_author": "mvpworkshop",
      "parent_permlink": "5-ways-to-build-hype-around-your-ico",
      "permlink": "steemitboard-notify-mvpworkshop-20180808t212618000z",
      "title": ""
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-08T21:26:18",
  "trx_id": "85ed85b5e875f5f2df112be40ceb006ef023f33a",
  "trx_in_block": 3,
  "virtual_op": 0
}
2018/08/08 18:48:51
idfollow
json["follow",{"follower":"mvpworkshop","following":"ubg","what":["blog"]}]
required auths[]
required posting auths["mvpworkshop"]
Transaction InfoBlock #24895153/Trx 428a77c69a03080283efcfd36bb4139a2aaba241
View Raw JSON Data
{
  "block": 24895153,
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"mvpworkshop\",\"following\":\"ubg\",\"what\":[\"blog\"]}]",
      "required_auths": [],
      "required_posting_auths": [
        "mvpworkshop"
      ]
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-08T18:48:51",
  "trx_id": "428a77c69a03080283efcfd36bb4139a2aaba241",
  "trx_in_block": 54,
  "virtual_op": 0
}
2018/08/08 18:36:27
authormvpworkshop
permlink5-ways-to-build-hype-around-your-ico
voterubg
weight100 (1.00%)
Transaction InfoBlock #24894905/Trx e5178c33d6b30a8398151e3ed409dac37a7ae9e6
View Raw JSON Data
{
  "block": 24894905,
  "op": [
    "vote",
    {
      "author": "mvpworkshop",
      "permlink": "5-ways-to-build-hype-around-your-ico",
      "voter": "ubg",
      "weight": 100
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-08T18:36:27",
  "trx_id": "e5178c33d6b30a8398151e3ed409dac37a7ae9e6",
  "trx_in_block": 0,
  "virtual_op": 0
}
2018/08/08 17:17:39
authorcryptonet
permlink9th-august-2018-cryptocurrencies-events-to-watch-or-expected-price-spikes-for-crypto-traders-and-investors
votermvpworkshop
weight10000 (100.00%)
Transaction InfoBlock #24893331/Trx 7852eade811bcfbc9464b2070fe343e0e42deb59
View Raw JSON Data
{
  "block": 24893331,
  "op": [
    "vote",
    {
      "author": "cryptonet",
      "permlink": "9th-august-2018-cryptocurrencies-events-to-watch-or-expected-price-spikes-for-crypto-traders-and-investors",
      "voter": "mvpworkshop",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-08T17:17:39",
  "trx_id": "7852eade811bcfbc9464b2070fe343e0e42deb59",
  "trx_in_block": 23,
  "virtual_op": 0
}
2018/08/08 17:15:54
authorsugandhaseth
permlinklife-is-all-about-having-a-deep-futurist-2018-08-08-16-26-13
votermvpworkshop
weight10000 (100.00%)
Transaction InfoBlock #24893296/Trx ef1f81cc5fa82750ce473c0b13a0fc25d014e5e0
View Raw JSON Data
{
  "block": 24893296,
  "op": [
    "vote",
    {
      "author": "sugandhaseth",
      "permlink": "life-is-all-about-having-a-deep-futurist-2018-08-08-16-26-13",
      "voter": "mvpworkshop",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-08T17:15:54",
  "trx_id": "ef1f81cc5fa82750ce473c0b13a0fc25d014e5e0",
  "trx_in_block": 32,
  "virtual_op": 0
}
2018/08/08 17:09:51
authormvpworkshop
bodyLeading one ICO marketing campaign is a serious job. You will need every hack you can implement and as much target audience on your side as possible. If you are asking yourself, why in the earth would I do something crazy as that, you should read our previous blog post (link). We promised to provide how-to insights for you, so here are a few hacks that proved to be useful. ![andre-francois-557694-unsplash.jpg](https://cdn.steemitimages.com/DQmcEEyhBFfh6y8vUGjkQ1b3VahAPhph12DzVETSanUbc1w/andre-francois-557694-unsplash.jpg) # STRONG COMMUNITY This is the essence of every ICO, without people that believe in your product you will end nowhere. Your job as a part of a startup or a company starting an ICO is to create believers. If they want you to win, odds are you are going to win. Most of the ICOs create Telegram or Discord channel groups that are providing 24h information flow about the project and ICO that they are running. The best way is to test the most used channels in this communities and figure out which ones give the best results for you. Start with your own network to build a small community that you will, later on, expand to the supergroup. # CREATE YOUR OWN CHEERLEADING TEAM Employee your best fans. Maybe you think it is not a big deal, and you have enough admins leading your Telegram or Discord channel, but you will be surprised. When you see you have believers, and your Telegram user is faster in providing accurate pieces of information about your ICO than your admins, well hire him. It will accelerate your growth. Because you have one more ambassador on your side. Some of them would be happy just to be a part of the team they are cheerleading for, but be sure that if you reward them fairly they will double the investment. # CONFERENCES We all know this are the best places to meet the right people or to lose your time. When it comes to blockchain and cryptocurrencies it is a good place to connect with other people from the field. Here the most important part is to provide the value. Pay for the speaking slot and get exposure to the “wales” investors and influencers that will spread a word about your ICO. Word of mouth and underground recommendation of a believer is much more valuable than trying to trick the Facebook algorithm. There are a lot of “exclusive” private conferences that are not marketing because their specific target group is already in their network. Therefore building a hype on the pear-to-pear way could result in the biggest presales and crowd investment. # REVIEWS People are talking. And someone needs to start talking good words about what you do. If you are still bad in spreading a resonate story, then hire someone to do it for you. It is no secret that the YouTube reviewers are paid. It is a good way to create hype around your ICO, because other YouTubers would follow. The key is to map the right one for your story. A lot of scammers would pretend to be someone else, maybe you should research and find out who this people are. Perhaps there is a good reason they are pretending to be them. # GIFTS Everyone loves gifts. Promo materials with cool messages that resonate with your mission are a good path. Create hoodies, t shirts, stickers, hats, or flying oysters - just don’t forget to put your logo on it. And send it to your supporters, or potential ones. If you don’t have supporters, or have only a few of “crazy in love” ones you need to bring more people to your army. This is the old-fashioned way, but it works still. Off course they won’t mind to get some crypto. :) In every second have written in stone that you should treat every person in your community with kindness and respect. Yes, marketing an ICO could be a massive job. Still have in mind that one annoying reply to the trolling user on your community channel could go badly. It can result in a viral review on the YouTube or other relevant platforms, if it turns out to be an undercover influencer. Create effortless trust and value, and the hype would be there. Sometimes life is simple, people love to support quality projects.
json metadata{"tags":["ico","hack","blockchain","marketing"],"image":["https://cdn.steemitimages.com/DQmcEEyhBFfh6y8vUGjkQ1b3VahAPhph12DzVETSanUbc1w/andre-francois-557694-unsplash.jpg"],"app":"steemit/0.1","format":"markdown"}
parent author
parent permlinkico
permlink5-ways-to-build-hype-around-your-ico
title5 ways to build hype around your ICO
Transaction InfoBlock #24893175/Trx 70d757eca53ee85b97dd3533548d8d472a95cb8c
View Raw JSON Data
{
  "block": 24893175,
  "op": [
    "comment",
    {
      "author": "mvpworkshop",
      "body": "Leading one ICO marketing campaign is a serious job. You will need every hack you can implement and as much target audience on your side as possible. If you are asking yourself, why in the earth would I do something crazy as that, you should read our previous blog post (link). We promised to provide how-to insights for you, so here are a few hacks that proved to be useful.\n\n![andre-francois-557694-unsplash.jpg](https://cdn.steemitimages.com/DQmcEEyhBFfh6y8vUGjkQ1b3VahAPhph12DzVETSanUbc1w/andre-francois-557694-unsplash.jpg)\n\n# STRONG COMMUNITY\n\nThis is the essence of every ICO, without people that believe in your product you will end nowhere. Your job as a part of a startup or a company starting an ICO is to create believers. If they want you to win, odds are you are going to win. Most of the ICOs create Telegram or Discord channel groups that are providing 24h information flow about the project and ICO that they are running. The best way is to test the most used channels in this communities and figure out which ones give the best results for you. Start with your own network to build a small community that you will, later on, expand to the supergroup.\n\n# CREATE YOUR OWN CHEERLEADING TEAM\n\nEmployee your best fans. Maybe you think it is not a big deal, and you have enough admins leading your Telegram or Discord channel, but you will be surprised. When you see you have believers, and your Telegram user is faster in providing accurate pieces of information about your ICO than your admins, well hire him. It will accelerate your growth. Because you have one more ambassador on your side. Some of them would be happy just to be a part of the team they are cheerleading for, but be sure that if you reward them fairly they will double the investment.\n\n# CONFERENCES\n\nWe all know this are the best places to meet the right people or to lose your time. When it comes to blockchain and cryptocurrencies it is a good place to connect with other people from the field. Here the most important part is to provide the value. Pay for the speaking slot and get exposure to the “wales” investors and influencers that will spread a word about your ICO. Word of mouth and underground recommendation of a believer is much more valuable than trying to trick the Facebook algorithm. There are a lot of “exclusive” private conferences that are not marketing because their specific target group is already in their network. Therefore building a hype on the pear-to-pear way could result in the biggest presales and crowd investment.  \n\n# REVIEWS\n\nPeople are talking. And someone needs to start talking good words about what you do. If you are still bad in spreading a resonate story, then hire someone to do it for you. It is no secret that the YouTube reviewers are paid. It is a good way to create hype around your ICO, because other YouTubers would follow. The key is to map the right one for your story. A lot of scammers would pretend to be someone else, maybe you should research and find out who this people are. Perhaps there is a good reason they are pretending to be them.\n\n# GIFTS\n\nEveryone loves gifts. Promo materials with cool messages that resonate with your mission are a good path. Create hoodies, t shirts, stickers, hats, or flying oysters - just don’t forget to put your logo on it. And send it to your supporters, or potential ones. If you don’t have supporters, or have only a few of “crazy in love” ones you need to bring more people to your army. This is the old-fashioned way, but it works still. Off course they won’t mind to get some crypto. :)\n\n\n\nIn every second have written in stone that you should treat every person in your community with kindness and respect. Yes, marketing an ICO could be a massive job. Still have in mind that one annoying reply to the trolling user on your community channel could go badly. It can result in a viral review on the YouTube or other relevant platforms, if it turns out to be an undercover influencer. Create effortless trust and value, and the hype would be there. Sometimes life is simple, people love to support quality projects.",
      "json_metadata": "{\"tags\":[\"ico\",\"hack\",\"blockchain\",\"marketing\"],\"image\":[\"https://cdn.steemitimages.com/DQmcEEyhBFfh6y8vUGjkQ1b3VahAPhph12DzVETSanUbc1w/andre-francois-557694-unsplash.jpg\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "ico",
      "permlink": "5-ways-to-build-hype-around-your-ico",
      "title": "5 ways to build hype around your ICO"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-08T17:09:51",
  "trx_id": "70d757eca53ee85b97dd3533548d8d472a95cb8c",
  "trx_in_block": 18,
  "virtual_op": 0
}
2018/08/06 09:19:39
authormvpworkshop
permlinka-closer-look-at-the-inter-planetary-file-system-ipfs
voterlunix
weight10000 (100.00%)
Transaction InfoBlock #24826202/Trx fc9debf92c0d1e1a5cf59dce97d001b69d5274a5
View Raw JSON Data
{
  "block": 24826202,
  "op": [
    "vote",
    {
      "author": "mvpworkshop",
      "permlink": "a-closer-look-at-the-inter-planetary-file-system-ipfs",
      "voter": "lunix",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-06T09:19:39",
  "trx_id": "fc9debf92c0d1e1a5cf59dce97d001b69d5274a5",
  "trx_in_block": 47,
  "virtual_op": 0
}
2018/08/04 20:30:57
authorsteemitboard
bodyCongratulations @mvpworkshop! You have completed the following achievement on Steemit and have been rewarded with new badge(s) : [![](https://steemitimages.com/70x70/http://steemitboard.com/notifications/firstpost.png)](http://steemitboard.com/@mvpworkshop) You published your First Post [![](https://steemitimages.com/70x70/http://steemitboard.com/notifications/firstvoted.png)](http://steemitboard.com/@mvpworkshop) You got a First Vote <sub>_Click on the badge to view your Board of Honor._</sub> <sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub> > Do you like [SteemitBoard's project](https://steemit.com/@steemitboard)? Then **[Vote for its witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1)** and **get one more award**!
json metadata{"image":["https://steemitboard.com/img/notify.png"]}
parent authormvpworkshop
parent permlinka-closer-look-at-the-inter-planetary-file-system-ipfs
permlinksteemitboard-notify-mvpworkshop-20180804t203056000z
title
Transaction InfoBlock #24782043/Trx 817ffe0877380dba230adc7e4afa9632fec7828b
View Raw JSON Data
{
  "block": 24782043,
  "op": [
    "comment",
    {
      "author": "steemitboard",
      "body": "Congratulations @mvpworkshop! You have completed the following achievement on Steemit and have been rewarded with new badge(s) :\n\n[![](https://steemitimages.com/70x70/http://steemitboard.com/notifications/firstpost.png)](http://steemitboard.com/@mvpworkshop) You published your First Post\n[![](https://steemitimages.com/70x70/http://steemitboard.com/notifications/firstvoted.png)](http://steemitboard.com/@mvpworkshop) You got a First Vote\n\n<sub>_Click on the badge to view your Board of Honor._</sub>\n<sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub>\n\n\n\n> Do you like [SteemitBoard's project](https://steemit.com/@steemitboard)? Then **[Vote for its witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1)** and **get one more award**!",
      "json_metadata": "{\"image\":[\"https://steemitboard.com/img/notify.png\"]}",
      "parent_author": "mvpworkshop",
      "parent_permlink": "a-closer-look-at-the-inter-planetary-file-system-ipfs",
      "permlink": "steemitboard-notify-mvpworkshop-20180804t203056000z",
      "title": ""
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-04T20:30:57",
  "trx_id": "817ffe0877380dba230adc7e4afa9632fec7828b",
  "trx_in_block": 3,
  "virtual_op": 0
}
2018/08/04 13:32:57
authormvpworkshop
permlinka-closer-look-at-the-inter-planetary-file-system-ipfs
voterubg
weight100 (1.00%)
Transaction InfoBlock #24773684/Trx 082dbf3fe19ab0b6ad1569f056bb6c29db5851f4
View Raw JSON Data
{
  "block": 24773684,
  "op": [
    "vote",
    {
      "author": "mvpworkshop",
      "permlink": "a-closer-look-at-the-inter-planetary-file-system-ipfs",
      "voter": "ubg",
      "weight": 100
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-04T13:32:57",
  "trx_id": "082dbf3fe19ab0b6ad1569f056bb6c29db5851f4",
  "trx_in_block": 11,
  "virtual_op": 0
}
2018/08/03 15:57:27
authormvpworkshop
permlinka-closer-look-at-the-inter-planetary-file-system-ipfs
votersensation
weight10000 (100.00%)
Transaction InfoBlock #24747782/Trx 70f510b3515c44957d33033442c5fe9050341173
View Raw JSON Data
{
  "block": 24747782,
  "op": [
    "vote",
    {
      "author": "mvpworkshop",
      "permlink": "a-closer-look-at-the-inter-planetary-file-system-ipfs",
      "voter": "sensation",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-03T15:57:27",
  "trx_id": "70f510b3515c44957d33033442c5fe9050341173",
  "trx_in_block": 6,
  "virtual_op": 0
}
2018/08/03 14:49:45
authormvpworkshop
permlinka-closer-look-at-the-inter-planetary-file-system-ipfs
voterhr1
weight2 (0.02%)
Transaction InfoBlock #24746429/Trx ef340ecd37fcd8e496786b80b8974916b8b017b7
View Raw JSON Data
{
  "block": 24746429,
  "op": [
    "vote",
    {
      "author": "mvpworkshop",
      "permlink": "a-closer-look-at-the-inter-planetary-file-system-ipfs",
      "voter": "hr1",
      "weight": 2
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-03T14:49:45",
  "trx_id": "ef340ecd37fcd8e496786b80b8974916b8b017b7",
  "trx_in_block": 31,
  "virtual_op": 0
}
2018/08/03 14:28:12
authormvpworkshop
permlinka-closer-look-at-the-inter-planetary-file-system-ipfs
votercryptolita
weight10000 (100.00%)
Transaction InfoBlock #24745998/Trx a8a1fb33d634c9b199b683c9efa411712d31690d
View Raw JSON Data
{
  "block": 24745998,
  "op": [
    "vote",
    {
      "author": "mvpworkshop",
      "permlink": "a-closer-look-at-the-inter-planetary-file-system-ipfs",
      "voter": "cryptolita",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-03T14:28:12",
  "trx_id": "a8a1fb33d634c9b199b683c9efa411712d31690d",
  "trx_in_block": 2,
  "virtual_op": 0
}
2018/08/03 14:23:36
authormvpworkshop
body@@ -13687,12 +13687,99 @@ d take part. +%0A%0AAuthor: %5BNemanja Krstonjic %5D(https://www.linkedin.com/in/nemanja-krstonic-bbaa55137/)
json metadata{"tags":["blockchain","ipfs","merkledag","mvpworkshop","crypto"],"image":["https://cdn.steemitimages.com/DQmcDHowuXxezNXLAqr6wmgLkPPnayrM3F4RBuxSw4efzZ7/img1.png","https://cdn.steemitimages.com/DQmYQBfnnapZRPBddHzUnFUeaXHkzWPyGx9iGbBWfYp5zSp/IPFSStack.jpeg","https://cdn.steemitimages.com/DQmaLbCExpxZ6HU9onvJYbnA4XWu5JS2QDZwQa3tFBoVo2R/Hash%20tables%20&%20Distributed%20hash%20tables.png","https://cdn.steemitimages.com/DQme7X5sc9V3CJD3RxDBRZt5pQEE8DnsyQZPcaP9CruWZ6B/Kademlia%20binary%20tree.png","https://cdn.steemitimages.com/DQmVpERpKkEUb4y6GDr1ijrvQ24rNXynWQjxc89t5cTQwaX/K-bucket.jpeg","https://cdn.steemitimages.com/DQmZZHiu5fdpRhTx6MPgPZ3QfowwSH7mEe2Rj8zjEahGL2b/Merkle%20tree&%20direct%20acyclic%20graph.png","https://cdn.steemitimages.com/DQmXUpsisx8f9Xp9CcvoKBE9TiWpAyV4JjT34WKajjmKANY/MerkleDAG.jpeg","https://cdn.steemitimages.com/DQmZynyVhwHkwxwZdeqgHjTmnPRkY7WbjfShfREBY1ce9Nr/test.png","https://cdn.steemitimages.com/DQmf2KufgXvpp2hYGpihxSrKLfCPJ5iXH1dqP28foFZJKqM/git_add.png","https://cdn.steemitimages.com/DQmRsLW6g56NgJ4D3qUBvCLXvD18ax4vGpg2FPThbC9cMsp/git_commit.png","https://cdn.steemitimages.com/DQmfTvh7HnuF2aD2E8ZgxShQw6VE2ihjyb29CmGg3wBk2NZ/change_text.png"],"links":["https://en.wikipedia.org/wiki/NAT_traversal","https://en.wikipedia.org/wiki/Self-certifying_File_System","https://www.linkedin.com/in/nemanja-krstonic-bbaa55137/"],"app":"steemit/0.1","format":"markdown"}
parent author
parent permlinkblockchain
permlinka-closer-look-at-the-inter-planetary-file-system-ipfs
titleA closer look at the Inter-planetary File System (IPFS)
Transaction InfoBlock #24745906/Trx f0ba0e4c9435d5ee56890f88cf3e52641fd386ff
View Raw JSON Data
{
  "block": 24745906,
  "op": [
    "comment",
    {
      "author": "mvpworkshop",
      "body": "@@ -13687,12 +13687,99 @@\n d take part.\n+%0A%0AAuthor: %5BNemanja Krstonjic %5D(https://www.linkedin.com/in/nemanja-krstonic-bbaa55137/)\n",
      "json_metadata": "{\"tags\":[\"blockchain\",\"ipfs\",\"merkledag\",\"mvpworkshop\",\"crypto\"],\"image\":[\"https://cdn.steemitimages.com/DQmcDHowuXxezNXLAqr6wmgLkPPnayrM3F4RBuxSw4efzZ7/img1.png\",\"https://cdn.steemitimages.com/DQmYQBfnnapZRPBddHzUnFUeaXHkzWPyGx9iGbBWfYp5zSp/IPFSStack.jpeg\",\"https://cdn.steemitimages.com/DQmaLbCExpxZ6HU9onvJYbnA4XWu5JS2QDZwQa3tFBoVo2R/Hash%20tables%20&%20Distributed%20hash%20tables.png\",\"https://cdn.steemitimages.com/DQme7X5sc9V3CJD3RxDBRZt5pQEE8DnsyQZPcaP9CruWZ6B/Kademlia%20binary%20tree.png\",\"https://cdn.steemitimages.com/DQmVpERpKkEUb4y6GDr1ijrvQ24rNXynWQjxc89t5cTQwaX/K-bucket.jpeg\",\"https://cdn.steemitimages.com/DQmZZHiu5fdpRhTx6MPgPZ3QfowwSH7mEe2Rj8zjEahGL2b/Merkle%20tree&%20direct%20acyclic%20graph.png\",\"https://cdn.steemitimages.com/DQmXUpsisx8f9Xp9CcvoKBE9TiWpAyV4JjT34WKajjmKANY/MerkleDAG.jpeg\",\"https://cdn.steemitimages.com/DQmZynyVhwHkwxwZdeqgHjTmnPRkY7WbjfShfREBY1ce9Nr/test.png\",\"https://cdn.steemitimages.com/DQmf2KufgXvpp2hYGpihxSrKLfCPJ5iXH1dqP28foFZJKqM/git_add.png\",\"https://cdn.steemitimages.com/DQmRsLW6g56NgJ4D3qUBvCLXvD18ax4vGpg2FPThbC9cMsp/git_commit.png\",\"https://cdn.steemitimages.com/DQmfTvh7HnuF2aD2E8ZgxShQw6VE2ihjyb29CmGg3wBk2NZ/change_text.png\"],\"links\":[\"https://en.wikipedia.org/wiki/NAT_traversal\",\"https://en.wikipedia.org/wiki/Self-certifying_File_System\",\"https://www.linkedin.com/in/nemanja-krstonic-bbaa55137/\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "blockchain",
      "permlink": "a-closer-look-at-the-inter-planetary-file-system-ipfs",
      "title": "A closer look at the Inter-planetary File System (IPFS)"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-03T14:23:36",
  "trx_id": "f0ba0e4c9435d5ee56890f88cf3e52641fd386ff",
  "trx_in_block": 0,
  "virtual_op": 0
}
2018/08/03 14:20:00
authormvpworkshop
permlinka-closer-look-at-the-inter-planetary-file-system-ipfs
voterfastresteem
weight100 (1.00%)
Transaction InfoBlock #24745834/Trx 989c4ad2164057dd224a98873f912994778e96c4
View Raw JSON Data
{
  "block": 24745834,
  "op": [
    "vote",
    {
      "author": "mvpworkshop",
      "permlink": "a-closer-look-at-the-inter-planetary-file-system-ipfs",
      "voter": "fastresteem",
      "weight": 100
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-03T14:20:00",
  "trx_id": "989c4ad2164057dd224a98873f912994778e96c4",
  "trx_in_block": 1,
  "virtual_op": 0
}
2018/08/03 14:19:42
authormvpworkshop
body![img1.png](https://cdn.steemitimages.com/DQmcDHowuXxezNXLAqr6wmgLkPPnayrM3F4RBuxSw4efzZ7/img1.png) <tl;dr> In this article we’ll discuss the Interplanetary File System (IPFS) alongside all of its functionalities and components. As we dive deeper into the subject, we are going to shift focus to **DHT** (distributed hash table) and Git’s **MerkleDAG** implementations in IPFS. Feel free to jump on the part you are most interested in. It is crucial to understand the importance of these concepts due to the fact that almost all technological solutions in the P2P systems nowadays are relying on these technologies. ## Firstly, let’s take a look at some of the “problems” with the Web 2.0 today: &nbsp; * __Location-based addressing__ It might not seem like a problem, after all, that’s how the web works. Having to access your data on a server from the other part of the world might bring some time complexity to the table. * __Centralization & single point of failure__ This is a well-known problem where if a centralized server goes down, there is no way to access any of the data you might need. * __Censorship__ The whole point of the internet is to share data, but while we have potent entities restricting our access to information, we will not have the data liberation that we seek. * __Impermanence__ Lots of links are broken, out of 1.8 billion websites in the World, only 200 million is live. ## What is IPFS? &nbsp; IPFS stands for an Interplanetary file system and it aims to change the way we distribute and work with data today. The InterPlanetary File System is a peer-to-peer distributed file system that seeks to connect all computing devices with the same system of files. It is combining well-tested internet technologies such as DHT (distributed hash tables), Git’s MerkleDAG and BitTorrent’s bit swap protocol. It uses content addressing block storage and data structure in the form of MerkleDAG upon which one can build versioned file system, blockchains, etc.. IPFS has five layers: * naming — a self-certifying PKI namespace (IPNS) * MerkleDAG — data structure format (thin waist) * exchange — block transport and replication * routing — locating peers and objects * network — establishing connections between peers ![IPFSStack.jpeg](https://cdn.steemitimages.com/DQmYQBfnnapZRPBddHzUnFUeaXHkzWPyGx9iGbBWfYp5zSp/IPFSStack.jpeg) ## Network &nbsp; The network provides point-to-point transports (reliable and unreliable) between any two IPFS nodes in the network. * [NAT traversal](https://en.wikipedia.org/wiki/NAT_traversal) — hole punching, port mapping, and relay * supports multiple transports — TCP, SCTP, UDP, … * supports encryption, signing, or clear communications * multi-multiplexes -multiplexes connections, streams, protocols, peers ## Routing — DHT &nbsp; Before we jump into routing in IPFS let’s take a look at the different ways of finding an object. There are two basic ways, *searching* and *addressing*. Searching is how google works; it finds an object by searching with keywords that match object description, i.e., comparing the actual object to know if they are the same. This makes it hard to be efficient. Addressing, on the other hand, finds objects by addressing them with their unique name. The best example is URL on the Web. Pros of this approach are that object location can be more efficient and every object is uniquely identifiable. Searching in P2P networks is not efficient, finding a solution in ether centralized, distributed or even hybrid method does not provide the system with desirable speed efficiency. Creating more efficient search and object location was the original motivation for researching distributed hash tables. One major goal of P2P systems is object lookup: Given a data item X stored in some set of nodes in the system, find it. ## What is DHT &nbsp; DHT performs the functions of a hash table. You can store a key and value pair, and you can look up a value if you have the key. Let’s take a look at hash tables to get a better understanding of what DHTs are: ![Hash tables & Distributed hash tables.png](https://cdn.steemitimages.com/DQmaLbCExpxZ6HU9onvJYbnA4XWu5JS2QDZwQa3tFBoVo2R/Hash%20tables%20&%20Distributed%20hash%20tables.png) The task of maintaining the mapping from keys to values is distributed among the nodes, in such a way that a change in the set of participants causes a minimal amount of disruption. In a DHT, each node is responsible for one or more hash buckets. As nodes join and leave, the responsibilities change. Nodes communicate among themselves to find the responsible node, and scalable communications are what makes DHTs efficient. DHTs also support all the normal hash table operations. Lets first take a look at how basic DHT works after which we will take a look at IPFS implementation of Kademlia DHT. Upon the creation of the DHT, hash buckets are distributed among nodes. The process is starting by dividing buckets over nodes that are already in the network. Nodes are forming an overlay network connected by virtual or logical links. Routing scheme is established. DHT behavior and usage differ for different implementations, but when we talk about the basic concept the procedure is like following: * *Node knows “object” name and wants to find it* * *Node routes a message in an overlay to the responsible node* * *Responsible node replies with “object”* The characteristics of any implementation of DHT is **autonomy and decentralization** which means nodes collectively form the system without any central coordination. The system is **fault tolerant**, i.e., should be reliable even with nodes continuously joining, leaving, and failing. DHTs are **scalable**, and it should function efficiently even with thousands or millions of nodes. > Quick tip: check how Cord DHT works. **How does Kademlia DHT look like** Unlike other DHT routing systems, Kademlia uses **tree-based routing**. Kademlia binary tree treats nodes as leaves of a binary tree, starting from the root, for any given node, dividing the binary tree into a series of successively lower subtrees that don’t contain the node. Every node keeps touch with at least one node from each of its subtrees. Corresponding to each subtree, there is a k-bucket. In this forest, every node needs to keep a list of (**IP-address, Port, Node id**) triples, and (**key, value**) tuples for further exchanging information with others. ![Kademlia binary tree.png](https://cdn.steemitimages.com/DQme7X5sc9V3CJD3RxDBRZt5pQEE8DnsyQZPcaP9CruWZ6B/Kademlia%20binary%20tree.png) Nodes, files, and keywords, deploy SHA1 hash into a 160-bit space. By each node, information about files and keywords are kept just for the closest nodes. **K-bucket** ![K-bucket.jpeg](https://cdn.steemitimages.com/DQmVpERpKkEUb4y6GDr1ijrvQ24rNXynWQjxc89t5cTQwaX/K-bucket.jpeg) For each i (0 ≤ i < 160) every node keeps a list of nodes of distance between 2^i and 2^(i+1) from itself. Each list is a k-bucket. The list is sorted by the time last seen. The value of k is chosen so that any given set of k nodes is unlikely to fail within an hour. The list is updated whenever a node receives a message. The nodes in the k-buckets are the stepping stones of routing. By relying on the oldest nodes, that they will remain online. DoS attack is prevented since the new nodes find it challenging to get into the k-bucket. **Kademlia RPC** — remote procedure call * **PING**: to test whether a node is online * **STORE**: instruct a node to store a key * **FIND_NODE**: takes an ID as an argument, a recipient returns (IP address, UDP port, node id) of the k nodes that it knows from the set of nodes closest to ID (node lookup) * **FIND_VALUE**: behaves like FIND_NODE, unless the recipient received a STORE for that key, it just returns the stored value To store a (key, value) pair, a participant locates the closest k nodes to the key and sends them STORE RPCs. For Kademlia’s file sharing application, the original publisher of a (key, value) pair is required to republish it every 24 hours. Otherwise, (key, value) pairs expire 24 hours after publication. Fault tolerance and concurrent change are handled well via the use of k-buckets. Proximity routing chooses nodes that have low latency and handles DoS attacks by using nodes that are up for a long time. # Block Exchange &nbsp; Bitswap is the data exchanging model used in IPFS, it manages to request and send blocks to and from other peers in the network. Bitswap serves two main purposes, first is to get blocks which are requested by the network (it have routes because of DHT). The second is to send those block to nodes that want them. Bitswap is a message based protocol, as opposed to response-reply. All messages contain want lists or blocks. Upon receiving a want list, a node should consider sending out wanted blocks if they have them. Upon receiving blocks, the node should send out a notification called a ‘Cancel’ signifying that they no longer want the block. At a protocol level, bitswap is very simple. # MerkleDAG &nbsp; In a **MerkleDAG**, Merkle stands for Merkle Tree and DAG for a direct acyclic graph. Which means this data is similar to Merkle tree but not so strict, so DAG does not need to be balanced, and its non-leaf nodes are allowed to contain data. > __“Merkle trees make it possible for the web to be built on a small contribution of many rather than concentrated resources of a few.”__ ![Merkle tree& direct acyclic graph.png](https://cdn.steemitimages.com/DQmZZHiu5fdpRhTx6MPgPZ3QfowwSH7mEe2Rj8zjEahGL2b/Merkle%20tree&%20direct%20acyclic%20graph.png) When we combine them we get something like this: ![MerkleDAG.jpeg](https://cdn.steemitimages.com/DQmXUpsisx8f9Xp9CcvoKBE9TiWpAyV4JjT34WKajjmKANY/MerkleDAG.jpeg) IPFS object is a MerkleDAG data structure which has two fields, data and an array of links, when we do ipfs object get QmfM2r8s.. (__or the middle right object in the picture< 256Kb__) we get something like this: ``` "Links":[{ "Name":"", "Hash":"QmYSK2Jy...", "Size":2621 }] "Data":"\u0008\Hello World!..."} - each object data is up to 256Kb` ``` &nbsp; But when we have data which is bigger than 256Kb (middle left object) we will have an array of link structures with different hashes pointing to parts of data which was previously fragmented. ``` "Links":[{ "Name":"" , "Hash":"QmYSK2Jy...", "Size":2621 }] "Links":[{ "Name":"" , "Hash":"QmQeUqdj...", "Size":564261 }] "Data":"\u0008\u..."} ``` &nbsp; Every hash is unique because every one of them is produced with a SHA-256 algorithm based on the data content. This content addressing gives IPFS ability to **deduplicate** files automatically. That means if we have two files that contain same data the hash produced by both will be the same and will point to one object place. Merkle DAG also gives us the ability to have **versioned file system**. There are two main reasons why versioning is essential, first is being able to access history or how the data has been changed over time. Second is being able to link to any one of those versions, forever. Let’s take a look at how Git versioning system works. Create two files: __test.txt and hello_world.txt__ ![test.png](https://cdn.steemitimages.com/DQmZynyVhwHkwxwZdeqgHjTmnPRkY7WbjfShfREBY1ce9Nr/test.png) It will add hashes to each file. When we add files to git (git add), it will create a tree object: ![git_add.png](https://cdn.steemitimages.com/DQmf2KufgXvpp2hYGpihxSrKLfCPJ5iXH1dqP28foFZJKqM/git_add.png) This tree1 object (Merkle tree) is dependent on the content of test.txt and hello_world.txt. That means if we change either of our .txt files the hash of tree1 object will change. After a git commit, more data about the owner is added, therefore it is added to a new hash. ![git_commit.png](https://cdn.steemitimages.com/DQmRsLW6g56NgJ4D3qUBvCLXvD18ax4vGpg2FPThbC9cMsp/git_commit.png) Now we have a Merkle tree with our two files. This is what happens when we edit a test.txt file: ![change_text.png](https://cdn.steemitimages.com/DQmfTvh7HnuF2aD2E8ZgxShQw6VE2ihjyb29CmGg3wBk2NZ/change_text.png) The new tree (tree2) is created, and its commit (commit2) will depend on the first commit with the original files (commit1). This allows us to have versioning. So in general, combining these properties together we have MerkleDAG data structure which acts like a “thin-waist” for secure, distributed applications, which by agreeing to follow the common format can then run across any replication, routing, and transport protocols. ## Naming Because changing an object would change its hash (content addressing) and thus its address, IPFS needs some way to provide permanent address and even better human-readable name. This is addressed with IPNS (interplanetary naming system) which handles the creation of: * mutable pointers to objects * human-readable names IPNS is based on [SFS](https://en.wikipedia.org/wiki/Self-certifying_File_System). It is a PKI namespace a name is simply the hash of a public key. Records are signed by the private key and distributed anywhere. ## Conclusion As we all know, HTTP is one of the most successful file distributed system and being worldwide used. Shifting towards peer-to-peer data distribution systems is not an easy task. While today we have such amazing solution concepts it’s just up to us which direction we are going to take them. Since the world is headed towards peer-to-peer systems, DHT and MerkleDAG is a great place to start. IPFS alongside FileCoin is taking a huge leap towards decentralized storage of personal data in which all of us should take part.
json metadata{"tags":["blockchain","ipfs","merkledag","mvpworkshop","crypto"],"image":["https://cdn.steemitimages.com/DQmcDHowuXxezNXLAqr6wmgLkPPnayrM3F4RBuxSw4efzZ7/img1.png","https://cdn.steemitimages.com/DQmYQBfnnapZRPBddHzUnFUeaXHkzWPyGx9iGbBWfYp5zSp/IPFSStack.jpeg","https://cdn.steemitimages.com/DQmaLbCExpxZ6HU9onvJYbnA4XWu5JS2QDZwQa3tFBoVo2R/Hash%20tables%20&%20Distributed%20hash%20tables.png","https://cdn.steemitimages.com/DQme7X5sc9V3CJD3RxDBRZt5pQEE8DnsyQZPcaP9CruWZ6B/Kademlia%20binary%20tree.png","https://cdn.steemitimages.com/DQmVpERpKkEUb4y6GDr1ijrvQ24rNXynWQjxc89t5cTQwaX/K-bucket.jpeg","https://cdn.steemitimages.com/DQmZZHiu5fdpRhTx6MPgPZ3QfowwSH7mEe2Rj8zjEahGL2b/Merkle%20tree&%20direct%20acyclic%20graph.png","https://cdn.steemitimages.com/DQmXUpsisx8f9Xp9CcvoKBE9TiWpAyV4JjT34WKajjmKANY/MerkleDAG.jpeg","https://cdn.steemitimages.com/DQmZynyVhwHkwxwZdeqgHjTmnPRkY7WbjfShfREBY1ce9Nr/test.png","https://cdn.steemitimages.com/DQmf2KufgXvpp2hYGpihxSrKLfCPJ5iXH1dqP28foFZJKqM/git_add.png","https://cdn.steemitimages.com/DQmRsLW6g56NgJ4D3qUBvCLXvD18ax4vGpg2FPThbC9cMsp/git_commit.png","https://cdn.steemitimages.com/DQmfTvh7HnuF2aD2E8ZgxShQw6VE2ihjyb29CmGg3wBk2NZ/change_text.png"],"links":["https://en.wikipedia.org/wiki/NAT_traversal","https://en.wikipedia.org/wiki/Self-certifying_File_System"],"app":"steemit/0.1","format":"markdown"}
parent author
parent permlinkblockchain
permlinka-closer-look-at-the-inter-planetary-file-system-ipfs
titleA closer look at the Inter-planetary File System (IPFS)
Transaction InfoBlock #24745828/Trx 99c307953d53f635ba05edbdd3292d32c8c52953
View Raw JSON Data
{
  "block": 24745828,
  "op": [
    "comment",
    {
      "author": "mvpworkshop",
      "body": "![img1.png](https://cdn.steemitimages.com/DQmcDHowuXxezNXLAqr6wmgLkPPnayrM3F4RBuxSw4efzZ7/img1.png)\n\n<tl;dr> In this article we’ll discuss the Interplanetary File System (IPFS) alongside all of its functionalities and components. As we dive deeper into the subject, we are going to shift focus to **DHT** (distributed hash table) and Git’s **MerkleDAG** implementations in IPFS. Feel free to jump on the part you are most interested in.\n\nIt is crucial to understand the importance of these concepts due to the fact that almost all technological solutions in the P2P systems nowadays are relying on these technologies.\n\n## Firstly, let’s take a look at some of the “problems” with the Web 2.0 today:\n&nbsp;\n* __Location-based addressing__\nIt might not seem like a problem, after all, that’s how the web works. Having to access your data on a server from the other part of the world might bring some time complexity to the table.\n\n* __Centralization & single point of failure__\nThis is a well-known problem where if a centralized server goes down, there is no way to access any of the data you might need.\n\n* __Censorship__\nThe whole point of the internet is to share data, but while we have potent entities restricting our access to information, we will not have the data liberation that we seek.\n\n* __Impermanence__\nLots of links are broken, out of 1.8 billion websites in the World, only 200 million is live.\n\n## What is IPFS?\n&nbsp;\nIPFS stands for an Interplanetary file system and it aims to change the way we distribute and work with data today. The InterPlanetary File System is a peer-to-peer distributed file system that seeks to connect all computing devices with the same system of files. It is combining well-tested internet technologies such as DHT (distributed hash tables), Git’s MerkleDAG and BitTorrent’s bit swap protocol. It uses content addressing block storage and data structure in the form of MerkleDAG upon which one can build versioned file system, blockchains, etc..\n\nIPFS has five layers:\n\n* naming — a self-certifying PKI namespace (IPNS)\n* MerkleDAG — data structure format (thin waist)\n* exchange — block transport and replication\n* routing — locating peers and objects\n* network — establishing connections between peers\n\n![IPFSStack.jpeg](https://cdn.steemitimages.com/DQmYQBfnnapZRPBddHzUnFUeaXHkzWPyGx9iGbBWfYp5zSp/IPFSStack.jpeg)\n\n## Network\n&nbsp;\nThe network provides point-to-point transports (reliable and unreliable) between any two IPFS nodes in the network.\n\n* [NAT traversal](https://en.wikipedia.org/wiki/NAT_traversal) — hole punching, port mapping, and relay\n* supports multiple transports — TCP, SCTP, UDP, …\n* supports encryption, signing, or clear communications\n* multi-multiplexes -multiplexes connections, streams, protocols, peers\n\n## Routing — DHT\n&nbsp;\nBefore we jump into routing in IPFS let’s take a look at the different ways of finding an object. There are two basic ways, *searching* and *addressing*. Searching is how google works; it finds an object by searching with keywords that match object description, i.e., comparing the actual object to know if they are the same. This makes it hard to be efficient.\n\nAddressing, on the other hand, finds objects by addressing them with their unique name. The best example is URL on the Web. Pros of this approach are that object location can be more efficient and every object is uniquely identifiable.\n\nSearching in P2P networks is not efficient, finding a solution in ether centralized, distributed or even hybrid method does not provide the system with desirable speed efficiency. Creating more efficient search and object location was the original motivation for researching distributed hash tables. One major goal of P2P systems is object lookup: Given a data item X stored in some set of nodes in the system, find it.\n\n## What is DHT\n&nbsp;\nDHT performs the functions of a hash table. You can store a key and value pair, and you can look up a value if you have the key. Let’s take a look at hash tables to get a better understanding of what DHTs are:\n\n\n![Hash tables & Distributed hash tables.png](https://cdn.steemitimages.com/DQmaLbCExpxZ6HU9onvJYbnA4XWu5JS2QDZwQa3tFBoVo2R/Hash%20tables%20&%20Distributed%20hash%20tables.png) \n\nThe task of maintaining the mapping from keys to values is distributed among the nodes, in such a way that a change in the set of participants causes a minimal amount of disruption.\n\nIn a DHT, each node is responsible for one or more hash buckets. As nodes join and leave, the responsibilities change. Nodes communicate among themselves to find the responsible node, and scalable communications are what makes DHTs efficient. DHTs also support all the normal hash table operations.\n\nLets first take a look at how basic DHT works after which we will take a look at IPFS implementation of Kademlia DHT.\n\nUpon the creation of the DHT, hash buckets are distributed among nodes. The process is starting by dividing buckets over nodes that are already in the network. Nodes are forming an overlay network connected by virtual or logical links. Routing scheme is established. DHT behavior and usage differ for different implementations, but when we talk about the basic concept the procedure is like following:\n\n* *Node knows “object” name and wants to find it*\n* *Node routes a message in an overlay to the responsible node*\n* *Responsible node replies with “object”*\n\nThe characteristics of any implementation of DHT is **autonomy and decentralization** which means nodes collectively form the system without any central coordination. The system is **fault tolerant**, i.e., should be reliable even with nodes continuously joining, leaving, and failing. DHTs are **scalable**, and it should function efficiently even with thousands or millions of nodes.\n\n> Quick tip: check how Cord DHT works.\n\n**How does Kademlia DHT look like**\n\nUnlike other DHT routing systems, Kademlia uses **tree-based routing**. Kademlia binary tree treats nodes as leaves of a binary tree, starting from the root, for any given node, dividing the binary tree into a series of successively lower subtrees that don’t contain the node. Every node keeps touch with at least one node from each of its subtrees. Corresponding to each subtree, there is a k-bucket.\n\nIn this forest, every node needs to keep a list of (**IP-address, Port, Node id**) triples, and (**key, value**) tuples for further exchanging information with others.\n\n![Kademlia binary tree.png](https://cdn.steemitimages.com/DQme7X5sc9V3CJD3RxDBRZt5pQEE8DnsyQZPcaP9CruWZ6B/Kademlia%20binary%20tree.png)\n\n\nNodes, files, and keywords, deploy SHA1 hash into a 160-bit space. By each node, information about files and keywords are kept just for the closest nodes.\n\n\n**K-bucket**\n\n![K-bucket.jpeg](https://cdn.steemitimages.com/DQmVpERpKkEUb4y6GDr1ijrvQ24rNXynWQjxc89t5cTQwaX/K-bucket.jpeg)\n\nFor each i (0 ≤ i < 160) every node keeps a list of nodes of distance between 2^i and 2^(i+1) from itself. Each list is a k-bucket. The list is sorted by the time last seen. The value of k is chosen so that any given set of k nodes is unlikely to fail within an hour. The list is updated whenever a node receives a message.\n\nThe nodes in the k-buckets are the stepping stones of routing. By relying on the oldest nodes, that they will remain online. DoS attack is prevented since the new nodes find it challenging to get into the k-bucket.\n\n**Kademlia RPC** — remote procedure call\n\n* **PING**: to test whether a node is online\n* **STORE**: instruct a node to store a key\n* **FIND_NODE**: takes an ID as an argument, a recipient returns (IP address, UDP port, node id) of the k nodes that it knows from the set of nodes closest to ID (node lookup)\n* **FIND_VALUE**: behaves like FIND_NODE, unless the recipient received a STORE for that key, it just returns the stored value\n\nTo store a (key, value) pair, a participant locates the closest k nodes to the key and sends them STORE RPCs. For Kademlia’s file sharing application, the original publisher of a (key, value) pair is required to republish it every 24 hours. Otherwise, (key, value) pairs expire 24 hours after publication.\n\nFault tolerance and concurrent change are handled well via the use of k-buckets. Proximity routing chooses nodes that have low latency and handles DoS attacks by using nodes that are up for a long time.\n\n\n# Block Exchange\n&nbsp;\nBitswap is the data exchanging model used in IPFS, it manages to request and send blocks to and from other peers in the network. Bitswap serves two main purposes, first is to get blocks which are requested by the network (it have routes because of DHT). The second is to send those block to nodes that want them.\n\nBitswap is a message based protocol, as opposed to response-reply. All messages contain want lists or blocks. Upon receiving a want list, a node should consider sending out wanted blocks if they have them. Upon receiving blocks, the node should send out a notification called a ‘Cancel’ signifying that they no longer want the block. At a protocol level, bitswap is very simple.\n\n# MerkleDAG\n&nbsp;\nIn a **MerkleDAG**, Merkle stands for Merkle Tree and DAG for a direct acyclic graph. Which means this data is similar to Merkle tree but not so strict, so DAG does not need to be balanced, and its non-leaf nodes are allowed to contain data.\n\n> __“Merkle trees make it possible for the web to be built on a small contribution of many rather than concentrated resources of a few.”__\n\n![Merkle tree& direct acyclic graph.png](https://cdn.steemitimages.com/DQmZZHiu5fdpRhTx6MPgPZ3QfowwSH7mEe2Rj8zjEahGL2b/Merkle%20tree&%20direct%20acyclic%20graph.png)\n\nWhen we combine them we get something like this:\n\n![MerkleDAG.jpeg](https://cdn.steemitimages.com/DQmXUpsisx8f9Xp9CcvoKBE9TiWpAyV4JjT34WKajjmKANY/MerkleDAG.jpeg)\n\nIPFS object is a MerkleDAG data structure which has two fields, data and an array of links, when we do ipfs object get QmfM2r8s.. (__or the middle right object in the picture< 256Kb__) we get something like this:\n\n```\n\"Links\":[{\n\n    \"Name\":\"\",\n\n    \"Hash\":\"QmYSK2Jy...\",\n\n    \"Size\":2621 }]\n\n\"Data\":\"\\u0008\\Hello World!...\"}  - each object data is up to 256Kb`\n```\n&nbsp;\nBut when we have data which is bigger than 256Kb (middle left object) we will have an array of link structures with different hashes pointing to parts of data which was previously fragmented.\n\n``` \n\"Links\":[{\n\n     \"Name\":\"\" ,\n\n     \"Hash\":\"QmYSK2Jy...\",\n\n     \"Size\":2621 }]\n\n\"Links\":[{\n\n     \"Name\":\"\" ,\n\n     \"Hash\":\"QmQeUqdj...\",\n\n     \"Size\":564261 }]\n\n\"Data\":\"\\u0008\\u...\"}\n```\n&nbsp;\nEvery hash is unique because every one of them is produced with a SHA-256 algorithm based on the data content. This content addressing gives IPFS ability to **deduplicate** files automatically. That means if we have two files that contain same data the hash produced by both will be the same and will point to one object place.\n\nMerkle DAG also gives us the ability to have **versioned file system**. There are two main reasons why versioning is essential, first is being able to access history or how the data has been changed over time. Second is being able to link to any one of those versions, forever.\n\nLet’s take a look at how Git versioning system works. Create two files: __test.txt and hello_world.txt__\n\n![test.png](https://cdn.steemitimages.com/DQmZynyVhwHkwxwZdeqgHjTmnPRkY7WbjfShfREBY1ce9Nr/test.png)\n\nIt will add hashes to each file. When we add files to git (git add), it will create a tree object:\n\n![git_add.png](https://cdn.steemitimages.com/DQmf2KufgXvpp2hYGpihxSrKLfCPJ5iXH1dqP28foFZJKqM/git_add.png)\n\nThis tree1 object (Merkle tree) is dependent on the content of test.txt and hello_world.txt. That means if we change either of our .txt files the hash of tree1 object will change. After a git commit, more data about the owner is added, therefore it is added to a new hash.\n\n![git_commit.png](https://cdn.steemitimages.com/DQmRsLW6g56NgJ4D3qUBvCLXvD18ax4vGpg2FPThbC9cMsp/git_commit.png)\n\nNow we have a Merkle tree with our two files. This is what happens when we edit a test.txt file:\n\n![change_text.png](https://cdn.steemitimages.com/DQmfTvh7HnuF2aD2E8ZgxShQw6VE2ihjyb29CmGg3wBk2NZ/change_text.png)\n\nThe new tree (tree2) is created, and its commit (commit2) will depend on the first commit with the original files (commit1). This allows us to have versioning.\n\nSo in general, combining these properties together we have MerkleDAG data structure which acts like a “thin-waist” for secure, distributed applications, which by agreeing to follow the common format can then run across any replication, routing, and transport protocols.\n\n## Naming\n\nBecause changing an object would change its hash (content addressing) and thus its address, IPFS needs some way to provide permanent address and even better human-readable name. This is addressed with IPNS (interplanetary naming system) which handles the creation of:\n\n* mutable pointers to objects\n* human-readable names\n\nIPNS is based on [SFS](https://en.wikipedia.org/wiki/Self-certifying_File_System). It is a PKI namespace a name is simply the hash of a public key. Records are signed by the private key and distributed anywhere.\n\n## Conclusion\n\nAs we all know, HTTP is one of the most successful file distributed system and being worldwide used. Shifting towards peer-to-peer data distribution systems is not an easy task. While today we have such amazing solution concepts it’s just up to us which direction we are going to take them. Since the world is headed towards peer-to-peer systems, DHT and MerkleDAG is a great place to start. IPFS alongside FileCoin is taking a huge leap towards decentralized storage of personal data in which all of us should take part.",
      "json_metadata": "{\"tags\":[\"blockchain\",\"ipfs\",\"merkledag\",\"mvpworkshop\",\"crypto\"],\"image\":[\"https://cdn.steemitimages.com/DQmcDHowuXxezNXLAqr6wmgLkPPnayrM3F4RBuxSw4efzZ7/img1.png\",\"https://cdn.steemitimages.com/DQmYQBfnnapZRPBddHzUnFUeaXHkzWPyGx9iGbBWfYp5zSp/IPFSStack.jpeg\",\"https://cdn.steemitimages.com/DQmaLbCExpxZ6HU9onvJYbnA4XWu5JS2QDZwQa3tFBoVo2R/Hash%20tables%20&%20Distributed%20hash%20tables.png\",\"https://cdn.steemitimages.com/DQme7X5sc9V3CJD3RxDBRZt5pQEE8DnsyQZPcaP9CruWZ6B/Kademlia%20binary%20tree.png\",\"https://cdn.steemitimages.com/DQmVpERpKkEUb4y6GDr1ijrvQ24rNXynWQjxc89t5cTQwaX/K-bucket.jpeg\",\"https://cdn.steemitimages.com/DQmZZHiu5fdpRhTx6MPgPZ3QfowwSH7mEe2Rj8zjEahGL2b/Merkle%20tree&%20direct%20acyclic%20graph.png\",\"https://cdn.steemitimages.com/DQmXUpsisx8f9Xp9CcvoKBE9TiWpAyV4JjT34WKajjmKANY/MerkleDAG.jpeg\",\"https://cdn.steemitimages.com/DQmZynyVhwHkwxwZdeqgHjTmnPRkY7WbjfShfREBY1ce9Nr/test.png\",\"https://cdn.steemitimages.com/DQmf2KufgXvpp2hYGpihxSrKLfCPJ5iXH1dqP28foFZJKqM/git_add.png\",\"https://cdn.steemitimages.com/DQmRsLW6g56NgJ4D3qUBvCLXvD18ax4vGpg2FPThbC9cMsp/git_commit.png\",\"https://cdn.steemitimages.com/DQmfTvh7HnuF2aD2E8ZgxShQw6VE2ihjyb29CmGg3wBk2NZ/change_text.png\"],\"links\":[\"https://en.wikipedia.org/wiki/NAT_traversal\",\"https://en.wikipedia.org/wiki/Self-certifying_File_System\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "blockchain",
      "permlink": "a-closer-look-at-the-inter-planetary-file-system-ipfs",
      "title": "A closer look at the Inter-planetary File System (IPFS)"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-03T14:19:42",
  "trx_id": "99c307953d53f635ba05edbdd3292d32c8c52953",
  "trx_in_block": 3,
  "virtual_op": 0
}
mvpworkshopupdated their account properties
2018/08/03 14:17:57
accountmvpworkshop
json metadata{"profile":{"profile_image":"https://cdn.steemitimages.com/DQmNjBhbCMdMyarzg4HUt36MYjhQKgdohvpd6tNayWRxh2d/logoMVPW.jpg","name":"MVP Workshop","about":"How to disrupt the business model & build innovative products","location":"Belgrade","website":"https://mvpworkshop.co/"}}
memo keySTM7PD4rtTxjxCFGWf3avB47LcsTYMC9zu5MLvycXobKePMymjgg9
Transaction InfoBlock #24745793/Trx 86f5b5e72389c9ba5ed9dfe3b1301f1de5ef4053
View Raw JSON Data
{
  "block": 24745793,
  "op": [
    "account_update",
    {
      "account": "mvpworkshop",
      "json_metadata": "{\"profile\":{\"profile_image\":\"https://cdn.steemitimages.com/DQmNjBhbCMdMyarzg4HUt36MYjhQKgdohvpd6tNayWRxh2d/logoMVPW.jpg\",\"name\":\"MVP Workshop\",\"about\":\"How to disrupt the business model & build innovative products\",\"location\":\"Belgrade\",\"website\":\"https://mvpworkshop.co/\"}}",
      "memo_key": "STM7PD4rtTxjxCFGWf3avB47LcsTYMC9zu5MLvycXobKePMymjgg9"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-03T14:17:57",
  "trx_id": "86f5b5e72389c9ba5ed9dfe3b1301f1de5ef4053",
  "trx_in_block": 23,
  "virtual_op": 0
}
mvpworkshopupdated their account properties
2018/08/03 10:41:21
accountmvpworkshop
json metadata{"profile":{"profile_image":"https://cdn.steemitimages.com/DQmRDrSqFHkXxhqjfK6wW3wNUPAEZX8BD1hQFk5xFGApwHn/MVPW-Logo-Sign-Purple.png","name":"MVP Workshop","about":"How to disrupt the business model & build innovative products","location":"Belgrade","website":"https://mvpworkshop.co/"}}
memo keySTM7PD4rtTxjxCFGWf3avB47LcsTYMC9zu5MLvycXobKePMymjgg9
Transaction InfoBlock #24741463/Trx c9b6da802ba788ff6ffad98457dbd2348ba445ba
View Raw JSON Data
{
  "block": 24741463,
  "op": [
    "account_update",
    {
      "account": "mvpworkshop",
      "json_metadata": "{\"profile\":{\"profile_image\":\"https://cdn.steemitimages.com/DQmRDrSqFHkXxhqjfK6wW3wNUPAEZX8BD1hQFk5xFGApwHn/MVPW-Logo-Sign-Purple.png\",\"name\":\"MVP Workshop\",\"about\":\"How to disrupt the business model & build innovative products\",\"location\":\"Belgrade\",\"website\":\"https://mvpworkshop.co/\"}}",
      "memo_key": "STM7PD4rtTxjxCFGWf3avB47LcsTYMC9zu5MLvycXobKePMymjgg9"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-03T10:41:21",
  "trx_id": "c9b6da802ba788ff6ffad98457dbd2348ba445ba",
  "trx_in_block": 36,
  "virtual_op": 0
}
mvpworkshopupdated their account properties
2018/08/03 10:38:30
accountmvpworkshop
json metadata{"profile":{"profile_image":"https://cdn.steemitimages.com/DQmSNdLaoFnfR1PWMLdb7CBKndch9MBFGPdasfGXcPgyg24/MVPW-Logo-Square-1.jpg","name":"MVP Workshop","about":"How to disrupt the business model & build innovative products","location":"Belgrade","website":"https://mvpworkshop.co/"}}
memo keySTM7PD4rtTxjxCFGWf3avB47LcsTYMC9zu5MLvycXobKePMymjgg9
Transaction InfoBlock #24741406/Trx 345e946149ad123e6a1ba4bcac4c04bbcdd55df9
View Raw JSON Data
{
  "block": 24741406,
  "op": [
    "account_update",
    {
      "account": "mvpworkshop",
      "json_metadata": "{\"profile\":{\"profile_image\":\"https://cdn.steemitimages.com/DQmSNdLaoFnfR1PWMLdb7CBKndch9MBFGPdasfGXcPgyg24/MVPW-Logo-Square-1.jpg\",\"name\":\"MVP Workshop\",\"about\":\"How to disrupt the business model & build innovative products\",\"location\":\"Belgrade\",\"website\":\"https://mvpworkshop.co/\"}}",
      "memo_key": "STM7PD4rtTxjxCFGWf3avB47LcsTYMC9zu5MLvycXobKePMymjgg9"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-03T10:38:30",
  "trx_id": "345e946149ad123e6a1ba4bcac4c04bbcdd55df9",
  "trx_in_block": 1,
  "virtual_op": 0
}
mvpworkshopupdated their account properties
2018/08/03 10:37:03
accountmvpworkshop
json metadata{"profile":{"profile_image":"https://cdn.steemitimages.com/DQmS1BrMdjUgT9UPZiSJJw76jmVnu6vXhK5Mm4ThmuqKD3d/Logo.jpg","name":"MVP Workshop","about":"How to disrupt the business model & build innovative products","location":"Belgrade","website":"https://mvpworkshop.co/"}}
memo keySTM7PD4rtTxjxCFGWf3avB47LcsTYMC9zu5MLvycXobKePMymjgg9
Transaction InfoBlock #24741377/Trx d1d5ee460719215903a5a4721f57f2a3b7354c9e
View Raw JSON Data
{
  "block": 24741377,
  "op": [
    "account_update",
    {
      "account": "mvpworkshop",
      "json_metadata": "{\"profile\":{\"profile_image\":\"https://cdn.steemitimages.com/DQmS1BrMdjUgT9UPZiSJJw76jmVnu6vXhK5Mm4ThmuqKD3d/Logo.jpg\",\"name\":\"MVP Workshop\",\"about\":\"How to disrupt the business model & build innovative products\",\"location\":\"Belgrade\",\"website\":\"https://mvpworkshop.co/\"}}",
      "memo_key": "STM7PD4rtTxjxCFGWf3avB47LcsTYMC9zu5MLvycXobKePMymjgg9"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-03T10:37:03",
  "trx_id": "d1d5ee460719215903a5a4721f57f2a3b7354c9e",
  "trx_in_block": 41,
  "virtual_op": 0
}
steemdelegated 18.604 SP to @mvpworkshop
2018/07/05 16:28:33
delegateemvpworkshop
delegatorsteem
vesting shares30240.524603 VESTS
Transaction InfoBlock #23914106/Trx 2cd535cd2256fe17f2c3b8f288fbfce65b36aca6
View Raw JSON Data
{
  "block": 23914106,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "mvpworkshop",
      "delegator": "steem",
      "vesting_shares": "30240.524603 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-07-05T16:28:33",
  "trx_id": "2cd535cd2256fe17f2c3b8f288fbfce65b36aca6",
  "trx_in_block": 53,
  "virtual_op": 0
}
steemcreated a new account: @mvpworkshop
2018/07/05 14:01:51
active{"account_auths":[],"key_auths":[["STM8AwEvFtAmoUGWdFKGQknCgsw61eSqsN7FJj9emogzicWbwwsmx",1]],"weight_threshold":1}
creatorsteem
delegation30690.000000 VESTS
extensions[]
fee0.100 STEEM
json metadata{}
memo keySTM7PD4rtTxjxCFGWf3avB47LcsTYMC9zu5MLvycXobKePMymjgg9
new account namemvpworkshop
owner{"account_auths":[],"key_auths":[["STM6aMfpyJFYbU8wCcfXYrFMP7scXNo1YGZswtuvbyuJkyuXZ2PKG",1]],"weight_threshold":1}
posting{"account_auths":[],"key_auths":[["STM5VxGkiiUWn9CeE5Sew5A2kF8MmGSDPaRrjfdqAMm379x7jdmR1",1]],"weight_threshold":1}
Transaction InfoBlock #23911173/Trx 38f7d3b80eba71d2f5cce0a39a43c50182a519e7
View Raw JSON Data
{
  "block": 23911173,
  "op": [
    "account_create_with_delegation",
    {
      "active": {
        "account_auths": [],
        "key_auths": [
          [
            "STM8AwEvFtAmoUGWdFKGQknCgsw61eSqsN7FJj9emogzicWbwwsmx",
            1
          ]
        ],
        "weight_threshold": 1
      },
      "creator": "steem",
      "delegation": "30690.000000 VESTS",
      "extensions": [],
      "fee": "0.100 STEEM",
      "json_metadata": "{}",
      "memo_key": "STM7PD4rtTxjxCFGWf3avB47LcsTYMC9zu5MLvycXobKePMymjgg9",
      "new_account_name": "mvpworkshop",
      "owner": {
        "account_auths": [],
        "key_auths": [
          [
            "STM6aMfpyJFYbU8wCcfXYrFMP7scXNo1YGZswtuvbyuJkyuXZ2PKG",
            1
          ]
        ],
        "weight_threshold": 1
      },
      "posting": {
        "account_auths": [],
        "key_auths": [
          [
            "STM5VxGkiiUWn9CeE5Sew5A2kF8MmGSDPaRrjfdqAMm379x7jdmR1",
            1
          ]
        ],
        "weight_threshold": 1
      }
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-07-05T14:01:51",
  "trx_id": "38f7d3b80eba71d2f5cce0a39a43c50182a519e7",
  "trx_in_block": 3,
  "virtual_op": 0
}

Account Metadata

POSTING JSON METADATA
profile{"profile_image":"https://cdn.steemitimages.com/DQmNjBhbCMdMyarzg4HUt36MYjhQKgdohvpd6tNayWRxh2d/logoMVPW.jpg","name":"MVP Workshop","about":"How to disrupt the business model & build innovative products","location":"Belgrade","website":"https://mvpworkshop.co/"}
JSON METADATA
profile{"profile_image":"https://cdn.steemitimages.com/DQmNjBhbCMdMyarzg4HUt36MYjhQKgdohvpd6tNayWRxh2d/logoMVPW.jpg","name":"MVP Workshop","about":"How to disrupt the business model & build innovative products","location":"Belgrade","website":"https://mvpworkshop.co/"}
{
  "posting_json_metadata": {
    "profile": {
      "profile_image": "https://cdn.steemitimages.com/DQmNjBhbCMdMyarzg4HUt36MYjhQKgdohvpd6tNayWRxh2d/logoMVPW.jpg",
      "name": "MVP Workshop",
      "about": "How to disrupt the business model & build innovative products",
      "location": "Belgrade",
      "website": "https://mvpworkshop.co/"
    }
  },
  "json_metadata": {
    "profile": {
      "profile_image": "https://cdn.steemitimages.com/DQmNjBhbCMdMyarzg4HUt36MYjhQKgdohvpd6tNayWRxh2d/logoMVPW.jpg",
      "name": "MVP Workshop",
      "about": "How to disrupt the business model & build innovative products",
      "location": "Belgrade",
      "website": "https://mvpworkshop.co/"
    }
  }
}

Auth Keys

Owner
Single Signature
Public Keys
STM6aMfpyJFYbU8wCcfXYrFMP7scXNo1YGZswtuvbyuJkyuXZ2PKG1/1
Active
Single Signature
Public Keys
STM8AwEvFtAmoUGWdFKGQknCgsw61eSqsN7FJj9emogzicWbwwsmx1/1
Posting
Single Signature
Public Keys
STM5VxGkiiUWn9CeE5Sew5A2kF8MmGSDPaRrjfdqAMm379x7jdmR11/1
Memo
STM7PD4rtTxjxCFGWf3avB47LcsTYMC9zu5MLvycXobKePMymjgg9
{
  "owner": {
    "account_auths": [],
    "key_auths": [
      [
        "STM6aMfpyJFYbU8wCcfXYrFMP7scXNo1YGZswtuvbyuJkyuXZ2PKG",
        1
      ]
    ],
    "weight_threshold": 1
  },
  "active": {
    "account_auths": [],
    "key_auths": [
      [
        "STM8AwEvFtAmoUGWdFKGQknCgsw61eSqsN7FJj9emogzicWbwwsmx",
        1
      ]
    ],
    "weight_threshold": 1
  },
  "posting": {
    "account_auths": [],
    "key_auths": [
      [
        "STM5VxGkiiUWn9CeE5Sew5A2kF8MmGSDPaRrjfdqAMm379x7jdmR1",
        1
      ]
    ],
    "weight_threshold": 1
  },
  "memo": "STM7PD4rtTxjxCFGWf3avB47LcsTYMC9zu5MLvycXobKePMymjgg9"
}

Witness Votes

0 / 30
No active witness votes.
[]