Ecoer Logo

@dockerqi

25

Simple freedom

steemit.com/@dockerqi
VOTING POWER100.00%
DOWNVOTE POWER100.00%
RESOURCE CREDITS100.00%
REPUTATION PROGRESS0.00%
Net Worth
0.007USD
STEEM
0.000STEEM
SBD
0.000SBD
Effective Power
5.001SP
├── Own SP
0.124SP
└── Incoming Deleg
+4.877SP

Detailed Balance

STEEM
balance
0.000STEEM
market_balance
0.000STEEM
savings_balance
0.000STEEM
reward_steem_balance
0.000STEEM
STEEM POWER
Own SP
0.124SP
Delegated Out
0.000SP
Delegation In
4.877SP
Effective Power
5.001SP
Reward SP (pending)
0.000SP
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.000 STEEM",
  "vesting_shares": "202.110100 VESTS",
  "delegated_vesting_shares": "0.000000 VESTS",
  "received_vesting_shares": "7941.549706 VESTS",
  "sbd_balance": "0.000 SBD",
  "savings_sbd_balance": "0.000 SBD",
  "reward_sbd_balance": "0.000 SBD",
  "conversions": []
}

Account Info

namedockerqi
id1136835
rank231,022
reputation52094806
created2018-09-22T09:05:36
recovery_accountsteem
proxyNone
post_count6
comment_count0
lifetime_vote_count0
witnesses_voted_for0
last_post2018-09-22T10:15:39
last_root_post2018-09-22T10:15:39
last_vote_time1970-01-01T00:00:00
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.110100 VESTS
delegated_vesting_shares0.000000 VESTS
received_vesting_shares7941.549706 VESTS
reward_vesting_balance0.000000 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-09-22T09:57:42
minedNo
sbd_seconds0
sbd_last_interest_payment1970-01-01T00:00:00
savings_sbd_last_interest_payment1970-01-01T00:00:00
{
  "id": 1136835,
  "name": "dockerqi",
  "owner": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM7kvwN4UpAFMYMQJ48B45BtofUktKZbEPikjqcSMai767U5sGbm",
        1
      ]
    ]
  },
  "active": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM4wEQSjfZSyz7Wnn6sYhAT4HQMeG1bKcF42vwwWhDEsmeDPTPu2",
        1
      ]
    ]
  },
  "posting": {
    "weight_threshold": 1,
    "account_auths": [
      [
        "dtube.app",
        1
      ]
    ],
    "key_auths": [
      [
        "STM6tjJG7X1wZonKkM9zRBE37e2q7VVFJgYLwEbihGzsNGwuc97Mq",
        1
      ]
    ]
  },
  "memo_key": "STM8W821Y6EWCKbNoi41C6a3rgi7i7DzhLpSf6D21w1q24SWZ4cSg",
  "json_metadata": "{\"profile\":{\"profile_image\":\"https://cdn.steemitimages.com/DQmWZ52Tg2qPQydeJAc9QrTejAMZyFVw1tYC8xbCmZ1rBfH/%E5%9B%BE%E7%89%87912d2581da820d8e8a3234da8b8ad0e5.png\",\"name\":\"DOCKERQI\",\"cover_image\":\"https://cdn.steemitimages.com/DQmWZ52Tg2qPQydeJAc9QrTejAMZyFVw1tYC8xbCmZ1rBfH/%E5%9B%BE%E7%89%87912d2581da820d8e8a3234da8b8ad0e5.png\",\"about\":\"Simple freedom\"}}",
  "posting_json_metadata": "{\"profile\":{\"profile_image\":\"https://cdn.steemitimages.com/DQmWZ52Tg2qPQydeJAc9QrTejAMZyFVw1tYC8xbCmZ1rBfH/%E5%9B%BE%E7%89%87912d2581da820d8e8a3234da8b8ad0e5.png\",\"name\":\"DOCKERQI\",\"cover_image\":\"https://cdn.steemitimages.com/DQmWZ52Tg2qPQydeJAc9QrTejAMZyFVw1tYC8xbCmZ1rBfH/%E5%9B%BE%E7%89%87912d2581da820d8e8a3234da8b8ad0e5.png\",\"about\":\"Simple freedom\"}}",
  "proxy": "",
  "last_owner_update": "1970-01-01T00:00:00",
  "last_account_update": "2018-09-22T09:57:42",
  "created": "2018-09-22T09:05: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": 6,
  "can_vote": true,
  "voting_manabar": {
    "current_mana": "8143659806",
    "last_update_time": 1779060930
  },
  "downvote_manabar": {
    "current_mana": 2035914951,
    "last_update_time": 1779060930
  },
  "voting_power": 0,
  "balance": "0.000 STEEM",
  "savings_balance": "0.000 STEEM",
  "sbd_balance": "0.000 SBD",
  "sbd_seconds": "0",
  "sbd_seconds_last_update": "1970-01-01T00:00:00",
  "sbd_last_interest_payment": "1970-01-01T00:00:00",
  "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": "202.110100 VESTS",
  "delegated_vesting_shares": "0.000000 VESTS",
  "received_vesting_shares": "7941.549706 VESTS",
  "vesting_withdraw_rate": "0.000000 VESTS",
  "next_vesting_withdrawal": "1969-12-31T23:59:59",
  "withdrawn": 0,
  "to_withdraw": 0,
  "withdraw_routes": 0,
  "curation_rewards": 0,
  "posting_rewards": 0,
  "proxied_vsf_votes": [
    0,
    0,
    0,
    0
  ],
  "witnesses_voted_for": 0,
  "last_post": "2018-09-22T10:15:39",
  "last_root_post": "2018-09-22T10:15:39",
  "last_vote_time": "1970-01-01T00:00:00",
  "post_bandwidth": 0,
  "pending_claimed_accounts": 0,
  "vesting_balance": "0.000 STEEM",
  "reputation": 52094806,
  "transfer_history": [],
  "market_history": [],
  "post_history": [],
  "vote_history": [],
  "other_history": [],
  "witness_votes": [],
  "tags_usage": [],
  "guest_bloggers": [],
  "rank": 231022
}

Withdraw Routes

IncomingOutgoing
Empty
Empty
{
  "incoming": [],
  "outgoing": []
}
From Date
To Date
steemdelegated 4.877 SP to @dockerqi
2026/05/17 23:35:30
delegatorsteem
delegateedockerqi
vesting shares7941.549706 VESTS
Transaction InfoBlock #106142657/Trx c3334614b4bdab2e16eb9a094cade3b2ba753ef0
View Raw JSON Data
{
  "trx_id": "c3334614b4bdab2e16eb9a094cade3b2ba753ef0",
  "block": 106142657,
  "trx_in_block": 3,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2026-05-17T23:35:30",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "dockerqi",
      "vesting_shares": "7941.549706 VESTS"
    }
  ]
}
steemdelegated 3.211 SP to @dockerqi
2026/05/12 01:10:51
delegatorsteem
delegateedockerqi
vesting shares5229.339301 VESTS
Transaction InfoBlock #105972525/Trx dee1ee052895404c808d5ff788b2bb7b0c6ff60c
View Raw JSON Data
{
  "trx_id": "dee1ee052895404c808d5ff788b2bb7b0c6ff60c",
  "block": 105972525,
  "trx_in_block": 3,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2026-05-12T01:10:51",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "dockerqi",
      "vesting_shares": "5229.339301 VESTS"
    }
  ]
}
steemdelegated 4.885 SP to @dockerqi
2026/04/25 22:57:30
delegatorsteem
delegateedockerqi
vesting shares7954.065462 VESTS
Transaction InfoBlock #105510329/Trx f6d992c275c838276cedaa53986c37147e98dde8
View Raw JSON Data
{
  "trx_id": "f6d992c275c838276cedaa53986c37147e98dde8",
  "block": 105510329,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2026-04-25T22:57:30",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "dockerqi",
      "vesting_shares": "7954.065462 VESTS"
    }
  ]
}
steemdelegated 3.237 SP to @dockerqi
2026/01/23 06:01:54
delegatorsteem
delegateedockerqi
vesting shares5270.886120 VESTS
Transaction InfoBlock #102849688/Trx cc071a52a11b97e84fbfb7a3a257bde5c9ed7651
View Raw JSON Data
{
  "trx_id": "cc071a52a11b97e84fbfb7a3a257bde5c9ed7651",
  "block": 102849688,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2026-01-23T06:01:54",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "dockerqi",
      "vesting_shares": "5270.886120 VESTS"
    }
  ]
}
steemdelegated 3.338 SP to @dockerqi
2024/12/17 01:21:42
delegatorsteem
delegateedockerqi
vesting shares5435.105317 VESTS
Transaction InfoBlock #91296112/Trx df11cfb875afeee2846a81bbe4dd84c675d8ffca
View Raw JSON Data
{
  "trx_id": "df11cfb875afeee2846a81bbe4dd84c675d8ffca",
  "block": 91296112,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2024-12-17T01:21:42",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "dockerqi",
      "vesting_shares": "5435.105317 VESTS"
    }
  ]
}
steemdelegated 3.442 SP to @dockerqi
2023/11/13 17:04:45
delegatorsteem
delegateedockerqi
vesting shares5604.238849 VESTS
Transaction InfoBlock #79850328/Trx 05e7918ad77261cc67af8f88dc1d32322dd0491b
View Raw JSON Data
{
  "trx_id": "05e7918ad77261cc67af8f88dc1d32322dd0491b",
  "block": 79850328,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2023-11-13T17:04:45",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "dockerqi",
      "vesting_shares": "5604.238849 VESTS"
    }
  ]
}
steemdelegated 5.245 SP to @dockerqi
2023/09/21 21:03:09
delegatorsteem
delegateedockerqi
vesting shares8541.517635 VESTS
Transaction InfoBlock #78346897/Trx a17d2c3115b7d3611f8bb6143330fdf4dd7502c1
View Raw JSON Data
{
  "trx_id": "a17d2c3115b7d3611f8bb6143330fdf4dd7502c1",
  "block": 78346897,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2023-09-21T21:03:09",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "dockerqi",
      "vesting_shares": "8541.517635 VESTS"
    }
  ]
}
steemdelegated 5.381 SP to @dockerqi
2022/11/03 10:56:54
delegatorsteem
delegateedockerqi
vesting shares8763.199073 VESTS
Transaction InfoBlock #69112361/Trx f2e120291b4e46d13d2bef1eca53308f1f313108
View Raw JSON Data
{
  "trx_id": "f2e120291b4e46d13d2bef1eca53308f1f313108",
  "block": 69112361,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-11-03T10:56:54",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "dockerqi",
      "vesting_shares": "8763.199073 VESTS"
    }
  ]
}
steemdelegated 5.517 SP to @dockerqi
2022/01/17 10:16:24
delegatorsteem
delegateedockerqi
vesting shares8983.732304 VESTS
Transaction InfoBlock #60808598/Trx f4ed79c4e80c9e3bc742ee490736c41463a9faa5
View Raw JSON Data
{
  "trx_id": "f4ed79c4e80c9e3bc742ee490736c41463a9faa5",
  "block": 60808598,
  "trx_in_block": 24,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-01-17T10:16:24",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "dockerqi",
      "vesting_shares": "8983.732304 VESTS"
    }
  ]
}
steemdelegated 5.630 SP to @dockerqi
2021/06/14 00:13:12
delegatorsteem
delegateedockerqi
vesting shares9167.500962 VESTS
Transaction InfoBlock #54607016/Trx 6fb2517e6a08ddf2cf8dce40b04cfdde756f4349
View Raw JSON Data
{
  "trx_id": "6fb2517e6a08ddf2cf8dce40b04cfdde756f4349",
  "block": 54607016,
  "trx_in_block": 3,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2021-06-14T00:13:12",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "dockerqi",
      "vesting_shares": "9167.500962 VESTS"
    }
  ]
}
steemdelegated 5.745 SP to @dockerqi
2020/12/11 10:33:15
delegatorsteem
delegateedockerqi
vesting shares9354.922936 VESTS
Transaction InfoBlock #49354508/Trx f0f39d09264bd8557e5317763c4034fde0c7e260
View Raw JSON Data
{
  "trx_id": "f0f39d09264bd8557e5317763c4034fde0c7e260",
  "block": 49354508,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-12-11T10:33:15",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "dockerqi",
      "vesting_shares": "9354.922936 VESTS"
    }
  ]
}
steemdelegated 1.174 SP to @dockerqi
2020/12/06 04:10:33
delegatorsteem
delegateedockerqi
vesting shares1912.543513 VESTS
Transaction InfoBlock #49206072/Trx d0eba90ef7c40d8a440193a18bdfa7f1b475ccee
View Raw JSON Data
{
  "trx_id": "d0eba90ef7c40d8a440193a18bdfa7f1b475ccee",
  "block": 49206072,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-12-06T04:10:33",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "dockerqi",
      "vesting_shares": "1912.543513 VESTS"
    }
  ]
}
steemdelegated 5.749 SP to @dockerqi
2020/12/05 14:11:30
delegatorsteem
delegateedockerqi
vesting shares9361.130790 VESTS
Transaction InfoBlock #49189605/Trx a51047a34a7e68e8cb8c75c46f58a632a4bbdda5
View Raw JSON Data
{
  "trx_id": "a51047a34a7e68e8cb8c75c46f58a632a4bbdda5",
  "block": 49189605,
  "trx_in_block": 4,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-12-05T14:11:30",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "dockerqi",
      "vesting_shares": "9361.130790 VESTS"
    }
  ]
}
steemdelegated 1.179 SP to @dockerqi
2020/11/02 14:22:45
delegatorsteem
delegateedockerqi
vesting shares1920.017158 VESTS
Transaction InfoBlock #48256314/Trx 7ed367a67613012be2a9f9d70f749a2622dccd19
View Raw JSON Data
{
  "trx_id": "7ed367a67613012be2a9f9d70f749a2622dccd19",
  "block": 48256314,
  "trx_in_block": 12,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-11-02T14:22:45",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "dockerqi",
      "vesting_shares": "1920.017158 VESTS"
    }
  ]
}
steemdelegated 5.873 SP to @dockerqi
2020/05/09 05:07:00
delegatorsteem
delegateedockerqi
vesting shares9563.936149 VESTS
Transaction InfoBlock #43216307/Trx 63e9961d67a031a77e862692fb662f3b771b4f2d
View Raw JSON Data
{
  "trx_id": "63e9961d67a031a77e862692fb662f3b771b4f2d",
  "block": 43216307,
  "trx_in_block": 6,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-05-09T05:07:00",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "dockerqi",
      "vesting_shares": "9563.936149 VESTS"
    }
  ]
}
steemdelegated 1.200 SP to @dockerqi
2020/05/08 08:37:36
delegatorsteem
delegateedockerqi
vesting shares1953.311140 VESTS
Transaction InfoBlock #43192295/Trx 6f5226b68145b5aee8c892998027c35e1d9fefdf
View Raw JSON Data
{
  "trx_id": "6f5226b68145b5aee8c892998027c35e1d9fefdf",
  "block": 43192295,
  "trx_in_block": 14,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-05-08T08:37:36",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "dockerqi",
      "vesting_shares": "1953.311140 VESTS"
    }
  ]
}
steemdelegated 5.930 SP to @dockerqi
2019/11/25 06:43:09
delegatorsteem
delegateedockerqi
vesting shares9656.179389 VESTS
Transaction InfoBlock #38476719/Trx 3253182a8e452b6f28f7e7bbab0888d1d61bd5ba
View Raw JSON Data
{
  "trx_id": "3253182a8e452b6f28f7e7bbab0888d1d61bd5ba",
  "block": 38476719,
  "trx_in_block": 17,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-11-25T06:43:09",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "dockerqi",
      "vesting_shares": "9656.179389 VESTS"
    }
  ]
}
2019/09/22 10:47:00
parent authordockerqi
parent permlinklinux-you-don-t-know
authorsteemitboard
permlinksteemitboard-notify-dockerqi-20190922t104700000z
title
bodyCongratulations @dockerqi! You received a personal award! <table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@dockerqi/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/@dockerqi) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=dockerqi)_</sub> **Do not miss the last post from @steemitboard:** <table><tr><td><a href="https://steemit.com/steemfest/@steemitboard/steemitboard-supports-the-steemfest-travel-reimbursement-fund"><img src="https://steemitimages.com/64x128/https://cdn.steemitimages.com/DQmXDHs9xfx8ZZ3DESFUqHRUQAcQT5kUWobArsRoJg2Yz1F/image.png"></a></td><td><a href="https://steemit.com/steemfest/@steemitboard/steemitboard-supports-the-steemfest-travel-reimbursement-fund">SteemitBoard supports the SteemFest⁴ Travel Reimbursement Fund.</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 #36642065/Trx 4053a4c2814b694a5a9eb486e967cddabe5798a1
View Raw JSON Data
{
  "trx_id": "4053a4c2814b694a5a9eb486e967cddabe5798a1",
  "block": 36642065,
  "trx_in_block": 10,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-22T10:47:00",
  "op": [
    "comment",
    {
      "parent_author": "dockerqi",
      "parent_permlink": "linux-you-don-t-know",
      "author": "steemitboard",
      "permlink": "steemitboard-notify-dockerqi-20190922t104700000z",
      "title": "",
      "body": "Congratulations @dockerqi! You received a personal award!\n\n<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@dockerqi/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/@dockerqi) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=dockerqi)_</sub>\n\n\n**Do not miss the last post from @steemitboard:**\n<table><tr><td><a href=\"https://steemit.com/steemfest/@steemitboard/steemitboard-supports-the-steemfest-travel-reimbursement-fund\"><img src=\"https://steemitimages.com/64x128/https://cdn.steemitimages.com/DQmXDHs9xfx8ZZ3DESFUqHRUQAcQT5kUWobArsRoJg2Yz1F/image.png\"></a></td><td><a href=\"https://steemit.com/steemfest/@steemitboard/steemitboard-supports-the-steemfest-travel-reimbursement-fund\">SteemitBoard supports the SteemFest⁴ Travel Reimbursement Fund.</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\"]}"
    }
  ]
}
steemdelegated 6.051 SP to @dockerqi
2018/12/22 11:06:54
delegatorsteem
delegateedockerqi
vesting shares9853.370287 VESTS
Transaction InfoBlock #28784660/Trx 7aca7c1e1f22fba1181297d517612e686ddba579
View Raw JSON Data
{
  "trx_id": "7aca7c1e1f22fba1181297d517612e686ddba579",
  "block": 28784660,
  "trx_in_block": 9,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-22T11:06:54",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "dockerqi",
      "vesting_shares": "9853.370287 VESTS"
    }
  ]
}
2018/09/24 09:01:42
voterjoelpugapt
authordockerqi
permlinklinux-you-don-t-know
weight10000 (100.00%)
Transaction InfoBlock #26220826/Trx 021480332e07895c13917fc6e3ceff694dee2f84
View Raw JSON Data
{
  "trx_id": "021480332e07895c13917fc6e3ceff694dee2f84",
  "block": 26220826,
  "trx_in_block": 43,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-09-24T09:01:42",
  "op": [
    "vote",
    {
      "voter": "joelpugapt",
      "author": "dockerqi",
      "permlink": "linux-you-don-t-know",
      "weight": 10000
    }
  ]
}
2018/09/22 10:17:39
votermgoboe
authordockerqi
permlinklinux-you-don-t-know
weight10000 (100.00%)
Transaction InfoBlock #26164789/Trx 76a086ac4bd479643fa7ef6909c20fc2cc34f574
View Raw JSON Data
{
  "trx_id": "76a086ac4bd479643fa7ef6909c20fc2cc34f574",
  "block": 26164789,
  "trx_in_block": 46,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-09-22T10:17:39",
  "op": [
    "vote",
    {
      "voter": "mgoboe",
      "author": "dockerqi",
      "permlink": "linux-you-don-t-know",
      "weight": 10000
    }
  ]
}
dockerqipublished a new post: linux-you-don-t-know
2018/09/22 10:15:39
parent author
parent permlinklinux
authordockerqi
permlinklinux-you-don-t-know
titleLinux you don't know
body<html> <p>Mr. Inamori’s words in the Living Act have always inspired me and are now being forwarded to you who are reading this article:</p> <p><br></p> <p>"Working so hard, just want to find happiness in interest and games, at best, you can only get a moment of pleasure, you can't taste the surprise and happiness from the bottom of your heart, but the joy from work is not like candy - put it in your mouth It is full of sweetness, but needs to be exuded from hard work and hardships. Therefore, when we concentrate on our work and tirelessly overcome the sense of accomplishment after hardship, there is no such thing as an analogy in the world." "Not to mention that work in human life occupies a large proportion. If you can't get a sense of fullness from work and work, then even if we find happiness from other places, we will still feel empty and shortcomings."</p> <p><br></p> <p>Learning is a chore</p> <p>I don't want to avoid this problem - learning is a painful thing. If learning Linux is really simple, it must be a lie of a liar. At least this will not bring you a high salary. In the few minutes after each wake up, the brain will be in a state of struggle - whether it is a chat, or a US drama, or a League of Legends, or a look at the damn Liu Wei What a terrible Linux textbook? At this time, please don't forget your original dream. After ten years, you will be grateful to yourself who are desperately trying to learn. As an author, my mission is to make this book worthy of the time, effort, and money you spend on it, so that every time you finish a chapter, it's an improvement.</p> <p><br></p> <p>Remarks: This article is taken from "Linux should be like this". I am the author of this book.</p> <p><br></p> <p>Open source sharing spirit</p> <p><br></p> <p>To put it simply, open source software is characterized by packaging software programs together with source code files for users, allowing users to modify them on an as-needed basis, or to compile them as derivatives. Released. Users have the freedom to use freedom, modify freedom, reissue freedom, and create derivatives. This is also in line with the pursuit of freedom by hackers and geeks, so the roots of the open source community at home and abroad are very large and popular.</p> <p><br></p> <p>To be frank, every technician or programmer who is committed to the Linux industry will be proud of hearing open source projects. This is a unique feeling from the bones. Open source enterprises are not solely for the benefit, but support each other and strive to serve more users. The most important features of open source software are the following.</p> <p><br></p> <p>Low risk: Using closed source software will undoubtedly deliver the fate to others. Once the closed source code is not maintained, you will be in a dilemma; and compared to commercial software companies, the open source community rarely has a problem of bankruptcy.</p> <p>High quality: Compared with closed source software products, open source projects are usually developed and maintained by the open source community. There are many users involved in writing, maintaining, and testing. The general bugs have not been fixed after the outbreak.</p> <p>Low cost: Open source workers are working behind the scenes silently and freely to contribute to the good world, so using open source community-driven software projects can save a lot of manpower, material resources and financial resources.</p> <p>More transparent: no idiot will put Trojans, backdoors, etc. in open source code, which is undoubtedly exposing his crimes to the sun.</p> <p>However, if open source software sacrifices the interests of programmers in pursuit of "freedom", this will affect the creative passion of programmers. Therefore, there are more than 60 open source license agreements recognized by the Open Source Initiative in the world. To ensure the rights of open source workers. For those who are ignorant of plagiarism, tampering, cracking or pirating other people's works, they will eventually receive a subpoena from the court one day. For developers who are ready to write an open source software, it is also very recommended to first understand the current hottest open source license agreement, choose a suitable open source license agreement to maximize the protection of their software rights.</p> <p><br></p> <p>GNU GPL (GNU General Public License): As long as the software contains products or codes that comply with the GPL, the software must also comply with the GPL license and be open source and free, so this agreement is not suitable for commercial software. . The number of open source software that follows the agreement is extremely large, and most open source software, including Linux systems, is based on this protocol. The four biggest features of the GPL open source license agreement are shown below.<img src="http://p1.pstatp.com/large/pgc-image/153629303032887957a5516" width="163" height="244"/></p> <p><br></p> <p>Freedom of Copy: Allows the software to be copied to anyone's computer without limiting the amount of copying.</p> <p>Freedom of communication: Allows software to spread in various forms.</p> <p>Fee-spreading: The software is allowed to be sold on a variety of media, but the buyer must be informed in advance that the software is freely available; therefore, in general, open-source software is profitable by providing paid services to users.</p> <p>Freedom of modification: Allows developers to add or remove features of the software, but the software must still be licensed under the GPL license.</p> <p>BSD (Berkeley Software Distribution) License Agreement: Users can use, modify, and redistribute software that complies with the license, and can publish and sell the software as commercial software, provided the following three conditions are met.</p> <p><img src="http://p98.pstatp.com/large/pgc-image/1536293030307bb0a80f9ab" width="197" height="213"/></p> <p><br></p> <p><br></p> <p>If the re-released software contains source code, the source code must continue to follow the BSD license agreement.</p> <p>If there is only a binary program in the re-released software, you need to declare the original code in the relevant document or copyright file to follow the BSD protocol.</p> <p>Marketing, including the name of the original software, the author's name, or the organization's name is not allowed.</p> <p>Apache License Version License Agreement: Allows users to have the freedom to modify code and redistribute while providing developers with copyright and patent licenses. The license agreement applies to commercial software. Now the popular Hadoop, Apache HTTP Server, MongoDB and other projects are developed based on the license agreement. Program developers must strictly observe the following four conditions when developing software that complies with the protocol.</p> <p><img src="http://p3.pstatp.com/large/pgc-image/1536293030335a9fbbca834" width="269" height="272"/></p> <p>The software and its derivatives must continue to use the Apache license agreement.</p> <p>If the program source code is modified, it needs to be declared in the documentation.</p> <p>If the software is written based on other people's source code, you need to retain the original code's agreement, trademark, patent statement and other original author's content information.</p> <p>If there is a declaration file in the re-released software, the Apache License Agreement and other license agreements need to be marked in this file.</p> <p>MPL (Mozilla Public License) license agreement: Compared to the GPL license agreement, MPL pays more attention to the balance between the source code requirements and benefits of developers.</p> <p>MIT (Massachusetts Institute of Technology) License Agreement: One of the least restrictive open source license agreements, as long as the developer of the program retains the original author's license information in the modified source code, and is therefore generally used by commercial software.</p> <p>Why study Linux?</p> <p>As early as the 1970s, UNIX systems were open source and free. But in 1979, AT&amp;T announced a commercialization plan for UNIX systems, and the open source software industry turned into a copyright-based software industry. The source code was treated as a trade secret and became a patented product. People could no longer enjoy it freely. Technological Achievements.</p> <p><br></p> <p>So in 1984, Richard Stallman launched the GNU source code open plan and developed the famous GPL license agreement for such a closed software creation environment. In 1987, the GNU project received a major breakthrough - the gcc compiler release, which allows programmers to write their own open source software based on the compiler. Then, in October 1991, Linus Torvalds, a student at the University of Helsinki in Finland, wrote an operating system called Linux. The system was quickly supported by the GNU Project and a large number of hacking programmers due to its high code quality and open source features based on the GNU GPL license. Then the Linux system entered a stage of development in full swing.</p> <p><br></p> <p>In January 1994, Bob Young integrated a large number of source code and program software based on the Linux system kernel, released Red Hat system and began to sell technical services, which further promoted the popularity of Linux systems. After 1998, with the GNU source code open plan and the Linux system continue to be hot, many IT giants led by IBM and Intel began to promote the development of open source software. By the end of 2017, the Linux kernel has evolved to version 4.13, and there are hundreds of Linux system versions, but they still use the Linux system kernel developed and maintained by Linus Torvalds. RedHat has also become a leader in the open source industry and Linux systems.</p> <p><br></p> <p>During the lecture, I often asked my classmates a question: "Why do you learn Linux?" Many students just said that "because the Linux system is open source, it is necessary to learn" in order to make me happy. In fact, this idea is completely wrong! Open source operating systems are less than 100, and open source software is at least 100,000. Why not learn one by one? So the open source feature mentioned above is only a part of the advantages, not enough to be your reason to study hard.</p> <p><br></p> <p>For the user, the open source spirit only has the icing on the cake, so the correct learning motivation should be derived from: Linux system is an excellent software product, with a UNIX-like program interface, and inherits the stability of UNIX, can be compared Goodly meet the needs of the work.</p> <p><br></p> <p>Most readers should start to understand computers and networks from Microsoft's Windows system, so there must be such an idea. "Windows systems are very useful, and they are enough to meet the daily work needs." Objectively speaking, the Windows system is really excellent, but it is not satisfactory in terms of security, high availability and high performance. You should have seen the picture below.</p> <p><br></p> <p>Linux you don't know</p> <p><br></p> <p><br></p> <p>Presumably, readers can now guess why Linux systems are used in web servers that need long-term stable operation, in cluster systems that handle big data, and in environments that need to work together. The following figure also shows the specific advantages of the Linux system compared to the Windows system.</p> <p><img src="http://p9.pstatp.com/large/pgc-image/15362930304127e6ae14f70" width="500" height="345"/></p> <p><br></p> <p><br></p> <p>Common Linux system version</p> <p>Before introducing the common Linux system version, you first need to distinguish between the Linux system kernel and the Linux distribution system.</p> <p><br></p> <p>The Linux kernel refers to a system core program maintained by Linus Torvalds that provides hardware abstraction layer, hard disk and file system control, and multitasking.</p> <p>The Linux distribution system is what we often call the Linux operating system, which is a collection of Linux kernels and various commonly used software.</p> <p>There are hundreds of Linux system versions in the world. Each system version has its own characteristics and target population. The following will select the most popular ones from the user's point of view.</p> <p><br></p> <p>Note:</p> <p><br></p> <p>The entire article will replace the term "Linux distribution system" with "Linux systems."</p> <p>Red Hat Enterprise Linux (RHEL): Red Hat is the world's largest open source technology vendor, and RHEL is the most widely used Linux system in the world. The RHEL system is extremely stable and stable, and has comprehensive technical support on a global scale. The RHEL system is also the system used in this article, Red Hat certification, and many production environments.</p> <p><br></p> <p><img src="http://p98.pstatp.com/large/pgc-image/15362930303602a2c82cc54" width="140" height="140"/></p> <p>Community Enterprise Operating System (CentOS): A widespread use of the Linux system by recompiling and publishing the RHEL system to users for free use. CentOS is currently "incorporated" by Red Hat.</p> <p><br></p> <p><img src="http://p3.pstatp.com/large/pgc-image/153629303045615c0a4d2fc" width="220" height="220"/></p> <p><br></p> <p><br></p> <p><br></p> <p>Fedora: A desktop version of the system suite released by Red Hat (currently not limited to the desktop version). Users can experience the latest technology or tools for free. These technologies or tools will be added to the RHEL system when they are mature, so Fedora is also called the "test field" of the RHEL system. If the operation and maintenance personnel want to keep their technology leadership at all times, they should pay more attention to the development and new features of such Linux systems and constantly change their learning direction.</p> <p><br></p> <p><br></p> <p><img src="http://p3.pstatp.com/large/pgc-image/1536293030455acd6b02658" width="140" height="140"/></p> <p><br></p> <p>openSUSE: A well-known Linux system from Germany, with a good reputation and market share worldwide.</p> <p><br></p> <p><br></p> <p><img src="http://p98.pstatp.com/large/pgc-image/15362930305071019a8a387" width="321" height="206"/></p> <p><br></p> <p>Gentoo: Extremely customizable and complex to operate, so it is suitable for experienced personnel. Readers can try the system after they have finished the book.</p> <p><br></p> <p><br></p> <p><img src="http://p1.pstatp.com/large/pgc-image/153629303049179463cc3c6" width="321" height="337"/></p> <p><br></p> <p><br></p> <p>Debian: It is stable and secure. It provides free basic support, supports various hardware architectures well, and provides nearly 100,000 different open source softwares. It has high recognition and usage in foreign countries.</p> <p><br></p> <p><img src="http://p1.pstatp.com/large/pgc-image/1536293030476fd6fc6a3ae" width="121" height="151"/></p> <p><br></p> <p><br></p> <p><br></p> <p>Ubuntu: is a Debian-derived operating system that is extremely compatible with new hardware. Ubuntu and Fedora are both excellent Linux desktop systems, and Ubuntu can also be used in the server space.</p> </html>
json metadata{"tags":["linux","ubuntu","debian","program"],"image":["http://p1.pstatp.com/large/pgc-image/153629303032887957a5516","http://p98.pstatp.com/large/pgc-image/1536293030307bb0a80f9ab","http://p3.pstatp.com/large/pgc-image/1536293030335a9fbbca834","http://p9.pstatp.com/large/pgc-image/15362930304127e6ae14f70","http://p98.pstatp.com/large/pgc-image/15362930303602a2c82cc54","http://p3.pstatp.com/large/pgc-image/153629303045615c0a4d2fc","http://p3.pstatp.com/large/pgc-image/1536293030455acd6b02658","http://p98.pstatp.com/large/pgc-image/15362930305071019a8a387","http://p1.pstatp.com/large/pgc-image/153629303049179463cc3c6","http://p1.pstatp.com/large/pgc-image/1536293030476fd6fc6a3ae"],"app":"steemit/0.1","format":"html"}
Transaction InfoBlock #26164749/Trx d70b7b0df844bd27dcf0fd29748632721cd4847e
View Raw JSON Data
{
  "trx_id": "d70b7b0df844bd27dcf0fd29748632721cd4847e",
  "block": 26164749,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-09-22T10:15:39",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "linux",
      "author": "dockerqi",
      "permlink": "linux-you-don-t-know",
      "title": "Linux you don't know",
      "body": "<html>\n<p>Mr. Inamori’s words in the Living Act have always inspired me and are now being forwarded to you who are reading this article:</p>\n<p><br></p>\n<p>\"Working so hard, just want to find happiness in interest and games, at best, you can only get a moment of pleasure, you can't taste the surprise and happiness from the bottom of your heart, but the joy from work is not like candy - put it in your mouth It is full of sweetness, but needs to be exuded from hard work and hardships. Therefore, when we concentrate on our work and tirelessly overcome the sense of accomplishment after hardship, there is no such thing as an analogy in the world.\" \"Not to mention that work in human life occupies a large proportion. If you can't get a sense of fullness from work and work, then even if we find happiness from other places, we will still feel empty and shortcomings.\"</p>\n<p><br></p>\n<p>Learning is a chore</p>\n<p>I don't want to avoid this problem - learning is a painful thing. If learning Linux is really simple, it must be a lie of a liar. At least this will not bring you a high salary. In the few minutes after each wake up, the brain will be in a state of struggle - whether it is a chat, or a US drama, or a League of Legends, or a look at the damn Liu Wei What a terrible Linux textbook? At this time, please don't forget your original dream. After ten years, you will be grateful to yourself who are desperately trying to learn. As an author, my mission is to make this book worthy of the time, effort, and money you spend on it, so that every time you finish a chapter, it's an improvement.</p>\n<p><br></p>\n<p>Remarks: This article is taken from \"Linux should be like this\". I am the author of this book.</p>\n<p><br></p>\n<p>Open source sharing spirit</p>\n<p><br></p>\n<p>To put it simply, open source software is characterized by packaging software programs together with source code files for users, allowing users to modify them on an as-needed basis, or to compile them as derivatives. Released. Users have the freedom to use freedom, modify freedom, reissue freedom, and create derivatives. This is also in line with the pursuit of freedom by hackers and geeks, so the roots of the open source community at home and abroad are very large and popular.</p>\n<p><br></p>\n<p>To be frank, every technician or programmer who is committed to the Linux industry will be proud of hearing open source projects. This is a unique feeling from the bones. Open source enterprises are not solely for the benefit, but support each other and strive to serve more users. The most important features of open source software are the following.</p>\n<p><br></p>\n<p>Low risk: Using closed source software will undoubtedly deliver the fate to others. Once the closed source code is not maintained, you will be in a dilemma; and compared to commercial software companies, the open source community rarely has a problem of bankruptcy.</p>\n<p>High quality: Compared with closed source software products, open source projects are usually developed and maintained by the open source community. There are many users involved in writing, maintaining, and testing. The general bugs have not been fixed after the outbreak.</p>\n<p>Low cost: Open source workers are working behind the scenes silently and freely to contribute to the good world, so using open source community-driven software projects can save a lot of manpower, material resources and financial resources.</p>\n<p>More transparent: no idiot will put Trojans, backdoors, etc. in open source code, which is undoubtedly exposing his crimes to the sun.</p>\n<p>However, if open source software sacrifices the interests of programmers in pursuit of \"freedom\", this will affect the creative passion of programmers. Therefore, there are more than 60 open source license agreements recognized by the Open Source Initiative in the world. To ensure the rights of open source workers. For those who are ignorant of plagiarism, tampering, cracking or pirating other people's works, they will eventually receive a subpoena from the court one day. For developers who are ready to write an open source software, it is also very recommended to first understand the current hottest open source license agreement, choose a suitable open source license agreement to maximize the protection of their software rights.</p>\n<p><br></p>\n<p>GNU GPL (GNU General Public License): As long as the software contains products or codes that comply with the GPL, the software must also comply with the GPL license and be open source and free, so this agreement is not suitable for commercial software. . The number of open source software that follows the agreement is extremely large, and most open source software, including Linux systems, is based on this protocol. The four biggest features of the GPL open source license agreement are shown below.<img src=\"http://p1.pstatp.com/large/pgc-image/153629303032887957a5516\" width=\"163\" height=\"244\"/></p>\n<p><br></p>\n<p>Freedom of Copy: Allows the software to be copied to anyone's computer without limiting the amount of copying.</p>\n<p>Freedom of communication: Allows software to spread in various forms.</p>\n<p>Fee-spreading: The software is allowed to be sold on a variety of media, but the buyer must be informed in advance that the software is freely available; therefore, in general, open-source software is profitable by providing paid services to users.</p>\n<p>Freedom of modification: Allows developers to add or remove features of the software, but the software must still be licensed under the GPL license.</p>\n<p>BSD (Berkeley Software Distribution) License Agreement: Users can use, modify, and redistribute software that complies with the license, and can publish and sell the software as commercial software, provided the following three conditions are met.</p>\n<p><img src=\"http://p98.pstatp.com/large/pgc-image/1536293030307bb0a80f9ab\" width=\"197\" height=\"213\"/></p>\n<p><br></p>\n<p><br></p>\n<p>If the re-released software contains source code, the source code must continue to follow the BSD license agreement.</p>\n<p>If there is only a binary program in the re-released software, you need to declare the original code in the relevant document or copyright file to follow the BSD protocol.</p>\n<p>Marketing, including the name of the original software, the author's name, or the organization's name is not allowed.</p>\n<p>Apache License Version License Agreement: Allows users to have the freedom to modify code and redistribute while providing developers with copyright and patent licenses. The license agreement applies to commercial software. Now the popular Hadoop, Apache HTTP Server, MongoDB and other projects are developed based on the license agreement. Program developers must strictly observe the following four conditions when developing software that complies with the protocol.</p>\n<p><img src=\"http://p3.pstatp.com/large/pgc-image/1536293030335a9fbbca834\" width=\"269\" height=\"272\"/></p>\n<p>The software and its derivatives must continue to use the Apache license agreement.</p>\n<p>If the program source code is modified, it needs to be declared in the documentation.</p>\n<p>If the software is written based on other people's source code, you need to retain the original code's agreement, trademark, patent statement and other original author's content information.</p>\n<p>If there is a declaration file in the re-released software, the Apache License Agreement and other license agreements need to be marked in this file.</p>\n<p>MPL (Mozilla Public License) license agreement: Compared to the GPL license agreement, MPL pays more attention to the balance between the source code requirements and benefits of developers.</p>\n<p>MIT (Massachusetts Institute of Technology) License Agreement: One of the least restrictive open source license agreements, as long as the developer of the program retains the original author's license information in the modified source code, and is therefore generally used by commercial software.</p>\n<p>Why study Linux?</p>\n<p>As early as the 1970s, UNIX systems were open source and free. But in 1979, AT&amp;T announced a commercialization plan for UNIX systems, and the open source software industry turned into a copyright-based software industry. The source code was treated as a trade secret and became a patented product. People could no longer enjoy it freely. Technological Achievements.</p>\n<p><br></p>\n<p>So in 1984, Richard Stallman launched the GNU source code open plan and developed the famous GPL license agreement for such a closed software creation environment. In 1987, the GNU project received a major breakthrough - the gcc compiler release, which allows programmers to write their own open source software based on the compiler. Then, in October 1991, Linus Torvalds, a student at the University of Helsinki in Finland, wrote an operating system called Linux. The system was quickly supported by the GNU Project and a large number of hacking programmers due to its high code quality and open source features based on the GNU GPL license. Then the Linux system entered a stage of development in full swing.</p>\n<p><br></p>\n<p>In January 1994, Bob Young integrated a large number of source code and program software based on the Linux system kernel, released Red Hat system and began to sell technical services, which further promoted the popularity of Linux systems. After 1998, with the GNU source code open plan and the Linux system continue to be hot, many IT giants led by IBM and Intel began to promote the development of open source software. By the end of 2017, the Linux kernel has evolved to version 4.13, and there are hundreds of Linux system versions, but they still use the Linux system kernel developed and maintained by Linus Torvalds. RedHat has also become a leader in the open source industry and Linux systems.</p>\n<p><br></p>\n<p>During the lecture, I often asked my classmates a question: \"Why do you learn Linux?\" Many students just said that \"because the Linux system is open source, it is necessary to learn\" in order to make me happy. In fact, this idea is completely wrong! Open source operating systems are less than 100, and open source software is at least 100,000. Why not learn one by one? So the open source feature mentioned above is only a part of the advantages, not enough to be your reason to study hard.</p>\n<p><br></p>\n<p>For the user, the open source spirit only has the icing on the cake, so the correct learning motivation should be derived from: Linux system is an excellent software product, with a UNIX-like program interface, and inherits the stability of UNIX, can be compared Goodly meet the needs of the work.</p>\n<p><br></p>\n<p>Most readers should start to understand computers and networks from Microsoft's Windows system, so there must be such an idea. \"Windows systems are very useful, and they are enough to meet the daily work needs.\" Objectively speaking, the Windows system is really excellent, but it is not satisfactory in terms of security, high availability and high performance. You should have seen the picture below.</p>\n<p><br></p>\n<p>Linux you don't know</p>\n<p><br></p>\n<p><br></p>\n<p>Presumably, readers can now guess why Linux systems are used in web servers that need long-term stable operation, in cluster systems that handle big data, and in environments that need to work together. The following figure also shows the specific advantages of the Linux system compared to the Windows system.</p>\n<p><img src=\"http://p9.pstatp.com/large/pgc-image/15362930304127e6ae14f70\" width=\"500\" height=\"345\"/></p>\n<p><br></p>\n<p><br></p>\n<p>Common Linux system version</p>\n<p>Before introducing the common Linux system version, you first need to distinguish between the Linux system kernel and the Linux distribution system.</p>\n<p><br></p>\n<p>The Linux kernel refers to a system core program maintained by Linus Torvalds that provides hardware abstraction layer, hard disk and file system control, and multitasking.</p>\n<p>The Linux distribution system is what we often call the Linux operating system, which is a collection of Linux kernels and various commonly used software.</p>\n<p>There are hundreds of Linux system versions in the world. Each system version has its own characteristics and target population. The following will select the most popular ones from the user's point of view.</p>\n<p><br></p>\n<p>Note:</p>\n<p><br></p>\n<p>The entire article will replace the term \"Linux distribution system\" with \"Linux systems.\"</p>\n<p>Red Hat Enterprise Linux (RHEL): Red Hat is the world's largest open source technology vendor, and RHEL is the most widely used Linux system in the world. The RHEL system is extremely stable and stable, and has comprehensive technical support on a global scale. The RHEL system is also the system used in this article, Red Hat certification, and many production environments.</p>\n<p><br></p>\n<p><img src=\"http://p98.pstatp.com/large/pgc-image/15362930303602a2c82cc54\" width=\"140\" height=\"140\"/></p>\n<p>Community Enterprise Operating System (CentOS): A widespread use of the Linux system by recompiling and publishing the RHEL system to users for free use. CentOS is currently \"incorporated\" by Red Hat.</p>\n<p><br></p>\n<p><img src=\"http://p3.pstatp.com/large/pgc-image/153629303045615c0a4d2fc\" width=\"220\" height=\"220\"/></p>\n<p><br></p>\n<p><br></p>\n<p><br></p>\n<p>Fedora: A desktop version of the system suite released by Red Hat (currently not limited to the desktop version). Users can experience the latest technology or tools for free. These technologies or tools will be added to the RHEL system when they are mature, so Fedora is also called the \"test field\" of the RHEL system. If the operation and maintenance personnel want to keep their technology leadership at all times, they should pay more attention to the development and new features of such Linux systems and constantly change their learning direction.</p>\n<p><br></p>\n<p><br></p>\n<p><img src=\"http://p3.pstatp.com/large/pgc-image/1536293030455acd6b02658\" width=\"140\" height=\"140\"/></p>\n<p><br></p>\n<p>openSUSE: A well-known Linux system from Germany, with a good reputation and market share worldwide.</p>\n<p><br></p>\n<p><br></p>\n<p><img src=\"http://p98.pstatp.com/large/pgc-image/15362930305071019a8a387\" width=\"321\" height=\"206\"/></p>\n<p><br></p>\n<p>Gentoo: Extremely customizable and complex to operate, so it is suitable for experienced personnel. Readers can try the system after they have finished the book.</p>\n<p><br></p>\n<p><br></p>\n<p><img src=\"http://p1.pstatp.com/large/pgc-image/153629303049179463cc3c6\" width=\"321\" height=\"337\"/></p>\n<p><br></p>\n<p><br></p>\n<p>Debian: It is stable and secure. It provides free basic support, supports various hardware architectures well, and provides nearly 100,000 different open source softwares. It has high recognition and usage in foreign countries.</p>\n<p><br></p>\n<p><img src=\"http://p1.pstatp.com/large/pgc-image/1536293030476fd6fc6a3ae\" width=\"121\" height=\"151\"/></p>\n<p><br></p>\n<p><br></p>\n<p><br></p>\n<p>Ubuntu: is a Debian-derived operating system that is extremely compatible with new hardware. Ubuntu and Fedora are both excellent Linux desktop systems, and Ubuntu can also be used in the server space.</p>\n</html>",
      "json_metadata": "{\"tags\":[\"linux\",\"ubuntu\",\"debian\",\"program\"],\"image\":[\"http://p1.pstatp.com/large/pgc-image/153629303032887957a5516\",\"http://p98.pstatp.com/large/pgc-image/1536293030307bb0a80f9ab\",\"http://p3.pstatp.com/large/pgc-image/1536293030335a9fbbca834\",\"http://p9.pstatp.com/large/pgc-image/15362930304127e6ae14f70\",\"http://p98.pstatp.com/large/pgc-image/15362930303602a2c82cc54\",\"http://p3.pstatp.com/large/pgc-image/153629303045615c0a4d2fc\",\"http://p3.pstatp.com/large/pgc-image/1536293030455acd6b02658\",\"http://p98.pstatp.com/large/pgc-image/15362930305071019a8a387\",\"http://p1.pstatp.com/large/pgc-image/153629303049179463cc3c6\",\"http://p1.pstatp.com/large/pgc-image/1536293030476fd6fc6a3ae\"],\"app\":\"steemit/0.1\",\"format\":\"html\"}"
    }
  ]
}
dockerqiupdated options for pyha0d7z
2018/09/22 10:04:09
authordockerqi
permlinkpyha0d7z
max accepted payout1000000.000 SBD
percent steem dollars10000
allow votestrue
allow curation rewardstrue
extensions[[0,{"beneficiaries":[{"account":"dtube","weight":2500}]}]]
Transaction InfoBlock #26164519/Trx d38c0fd8adc40a5d79f2fcaedc5a3de74085f34a
View Raw JSON Data
{
  "trx_id": "d38c0fd8adc40a5d79f2fcaedc5a3de74085f34a",
  "block": 26164519,
  "trx_in_block": 8,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-09-22T10:04:09",
  "op": [
    "comment_options",
    {
      "author": "dockerqi",
      "permlink": "pyha0d7z",
      "max_accepted_payout": "1000000.000 SBD",
      "percent_steem_dollars": 10000,
      "allow_votes": true,
      "allow_curation_rewards": true,
      "extensions": [
        [
          0,
          {
            "beneficiaries": [
              {
                "account": "dtube",
                "weight": 2500
              }
            ]
          }
        ]
      ]
    }
  ]
}
dockerqipublished a new post: pyha0d7z
2018/09/22 10:04:09
parent author
parent permlinklife
authordockerqi
permlinkpyha0d7z
titleLook over and laugh ten times
body<center><a href='https://d.tube/#!/v/dockerqi/pyha0d7z'><img src='https://ipfs.io/ipfs/QmYufMs3rGQVjc8DGCWStiisxEuiLxaz9kpuR82sAGHTsj'></a></center><hr> Look over and laugh ten times <hr><a href='https://d.tube/#!/v/dockerqi/pyha0d7z'> ▶️ DTube</a><br /><a href='https://ipfs.io/ipfs/QmdXsJxY1R8uw1zL5QC7qTEA8tT8k6rkyxuCbcm3eSwiEs'> ▶️ IPFS</a>
json metadata{"video":{"info":{"title":"Look over and laugh ten times","snaphash":"QmUgF4jfPtHpAQbLknpbVBpFE3EDqHefDv1yWzdneTy21o","author":"dockerqi","permlink":"pyha0d7z","duration":15.186,"filesize":2693943,"spritehash":"QmdJTebHGv2rr1amBD86xodAhTVzS3piXzsNNmy8pcw9MX"},"content":{"videohash":"QmdXsJxY1R8uw1zL5QC7qTEA8tT8k6rkyxuCbcm3eSwiEs","description":"Look over and laugh ten times","tags":["life","nsfw"],"video240hash":"QmSwD6SozkPy57BnqG2fhxJMGjaGzjKYZCLH83sMmk7NPi","video480hash":"QmdZdDi4Sp9DbHmPG6ZL6aY6ScUVfD3pBmE4uUe43wUgaj"}},"tags":["life","nsfw","dtube"],"app":"dtube/0.8"}
Transaction InfoBlock #26164519/Trx d38c0fd8adc40a5d79f2fcaedc5a3de74085f34a
View Raw JSON Data
{
  "trx_id": "d38c0fd8adc40a5d79f2fcaedc5a3de74085f34a",
  "block": 26164519,
  "trx_in_block": 8,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-09-22T10:04:09",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "life",
      "author": "dockerqi",
      "permlink": "pyha0d7z",
      "title": "Look over and laugh ten times",
      "body": "<center><a href='https://d.tube/#!/v/dockerqi/pyha0d7z'><img src='https://ipfs.io/ipfs/QmYufMs3rGQVjc8DGCWStiisxEuiLxaz9kpuR82sAGHTsj'></a></center><hr>\n\nLook over and laugh ten times\n\n<hr><a href='https://d.tube/#!/v/dockerqi/pyha0d7z'> ▶️ DTube</a><br /><a href='https://ipfs.io/ipfs/QmdXsJxY1R8uw1zL5QC7qTEA8tT8k6rkyxuCbcm3eSwiEs'> ▶️ IPFS</a>",
      "json_metadata": "{\"video\":{\"info\":{\"title\":\"Look over and laugh ten times\",\"snaphash\":\"QmUgF4jfPtHpAQbLknpbVBpFE3EDqHefDv1yWzdneTy21o\",\"author\":\"dockerqi\",\"permlink\":\"pyha0d7z\",\"duration\":15.186,\"filesize\":2693943,\"spritehash\":\"QmdJTebHGv2rr1amBD86xodAhTVzS3piXzsNNmy8pcw9MX\"},\"content\":{\"videohash\":\"QmdXsJxY1R8uw1zL5QC7qTEA8tT8k6rkyxuCbcm3eSwiEs\",\"description\":\"Look over and laugh ten times\",\"tags\":[\"life\",\"nsfw\"],\"video240hash\":\"QmSwD6SozkPy57BnqG2fhxJMGjaGzjKYZCLH83sMmk7NPi\",\"video480hash\":\"QmdZdDi4Sp9DbHmPG6ZL6aY6ScUVfD3pBmE4uUe43wUgaj\"}},\"tags\":[\"life\",\"nsfw\",\"dtube\"],\"app\":\"dtube/0.8\"}"
    }
  ]
}
dockerqiupdated their account properties
2018/09/22 09:57:42
accountdockerqi
posting{"weight_threshold":1,"account_auths":[["dtube.app",1]],"key_auths":[["STM6tjJG7X1wZonKkM9zRBE37e2q7VVFJgYLwEbihGzsNGwuc97Mq",1]]}
memo keySTM8W821Y6EWCKbNoi41C6a3rgi7i7DzhLpSf6D21w1q24SWZ4cSg
json metadata{"profile":{"profile_image":"https://cdn.steemitimages.com/DQmWZ52Tg2qPQydeJAc9QrTejAMZyFVw1tYC8xbCmZ1rBfH/%E5%9B%BE%E7%89%87912d2581da820d8e8a3234da8b8ad0e5.png","name":"DOCKERQI","cover_image":"https://cdn.steemitimages.com/DQmWZ52Tg2qPQydeJAc9QrTejAMZyFVw1tYC8xbCmZ1rBfH/%E5%9B%BE%E7%89%87912d2581da820d8e8a3234da8b8ad0e5.png","about":"Simple freedom"}}
Transaction InfoBlock #26164390/Trx f60054aefd1f0d973643f8cbc07f43c77a2a6ee6
View Raw JSON Data
{
  "trx_id": "f60054aefd1f0d973643f8cbc07f43c77a2a6ee6",
  "block": 26164390,
  "trx_in_block": 39,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-09-22T09:57:42",
  "op": [
    "account_update",
    {
      "account": "dockerqi",
      "posting": {
        "weight_threshold": 1,
        "account_auths": [
          [
            "dtube.app",
            1
          ]
        ],
        "key_auths": [
          [
            "STM6tjJG7X1wZonKkM9zRBE37e2q7VVFJgYLwEbihGzsNGwuc97Mq",
            1
          ]
        ]
      },
      "memo_key": "STM8W821Y6EWCKbNoi41C6a3rgi7i7DzhLpSf6D21w1q24SWZ4cSg",
      "json_metadata": "{\"profile\":{\"profile_image\":\"https://cdn.steemitimages.com/DQmWZ52Tg2qPQydeJAc9QrTejAMZyFVw1tYC8xbCmZ1rBfH/%E5%9B%BE%E7%89%87912d2581da820d8e8a3234da8b8ad0e5.png\",\"name\":\"DOCKERQI\",\"cover_image\":\"https://cdn.steemitimages.com/DQmWZ52Tg2qPQydeJAc9QrTejAMZyFVw1tYC8xbCmZ1rBfH/%E5%9B%BE%E7%89%87912d2581da820d8e8a3234da8b8ad0e5.png\",\"about\":\"Simple freedom\"}}"
    }
  ]
}
dockerqiupdated their account properties
2018/09/22 09:49:57
accountdockerqi
memo keySTM8W821Y6EWCKbNoi41C6a3rgi7i7DzhLpSf6D21w1q24SWZ4cSg
json metadata{"profile":{"profile_image":"https://cdn.steemitimages.com/DQmWZ52Tg2qPQydeJAc9QrTejAMZyFVw1tYC8xbCmZ1rBfH/%E5%9B%BE%E7%89%87912d2581da820d8e8a3234da8b8ad0e5.png","name":"DOCKERQI","cover_image":"https://cdn.steemitimages.com/DQmWZ52Tg2qPQydeJAc9QrTejAMZyFVw1tYC8xbCmZ1rBfH/%E5%9B%BE%E7%89%87912d2581da820d8e8a3234da8b8ad0e5.png","about":"Simple freedom"}}
Transaction InfoBlock #26164237/Trx dcb106208ce6f30b790dca37c3bd0507882242fd
View Raw JSON Data
{
  "trx_id": "dcb106208ce6f30b790dca37c3bd0507882242fd",
  "block": 26164237,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-09-22T09:49:57",
  "op": [
    "account_update",
    {
      "account": "dockerqi",
      "memo_key": "STM8W821Y6EWCKbNoi41C6a3rgi7i7DzhLpSf6D21w1q24SWZ4cSg",
      "json_metadata": "{\"profile\":{\"profile_image\":\"https://cdn.steemitimages.com/DQmWZ52Tg2qPQydeJAc9QrTejAMZyFVw1tYC8xbCmZ1rBfH/%E5%9B%BE%E7%89%87912d2581da820d8e8a3234da8b8ad0e5.png\",\"name\":\"DOCKERQI\",\"cover_image\":\"https://cdn.steemitimages.com/DQmWZ52Tg2qPQydeJAc9QrTejAMZyFVw1tYC8xbCmZ1rBfH/%E5%9B%BE%E7%89%87912d2581da820d8e8a3234da8b8ad0e5.png\",\"about\":\"Simple freedom\"}}"
    }
  ]
}
2018/09/22 09:44:57
parent author
parent permlinkbtc
authordockerqi
permlinkpopular-science-or-what-is-the-blockchain
titlePopular science | What is the blockchain?
body<html> <p><img src="http://upyun-assets.ethfans.org/uploads/photo/image/eb91781ca96d4de9a7c0459875129af8.png" width="1280" height="768"/></p> <p>Unless you are a caveman, I am sure you have heard of Bitcoins and blockchain. After all, they are hot spots, the favorite topic of the media these days, and the annual buzzword. Even the guys who have never heard of cryptocurrency and don't even know how it works are talking about it. Among my friends, there are more non-technical homes than technical homes. In order for me to explain this new buzzword to them, they have been harassing me for several weeks. I guess thousands of people have the same feelings as me. When this happens, it's time to write something so that everyone can wake up those confused eggs - this is the purpose of this push - written in plain English, so that any ordinary netizens can understand .</p> <p><br></p> <p>Blockchain: Why do we need something so complicated?</p> <p>“Every complicated question has a clear, simple and wrong answer.” – H.L.Mencken*</p> <p><br></p> <p>Contrary to any other push on the Internet, we don't define what a blockchain is in the first place. We will first understand the problem it is trying to solve.</p> <p><br></p> <p>Imagine Joe is your best friend. He is traveling overseas. On the fifth day of his holiday, he gave you a call, "Dude, I spent the money, and the rivers and lakes were in a hurry."</p> <p><br></p> <p>You answer "remit money immediately" and then hang up.</p> <p><img src="http://upyun-assets.ethfans.org/uploads/photo/image/505584b5857348ba9f8fb6cc47f01fb4.png" width="640" height="640"/></p> <p>Then you call the manager of your bank account, "Please transfer $1,000 from my account to Joe's account."</p> <p><br></p> <p>Your account manager replies, "Received, sir."</p> <p><br></p> <p>He opens the books and checks your account to make sure you have enough balance to transfer $1,000 to Joe. Because you are a local tyrant and have a large amount of balance on the account, he has registered an entry in the account book, as shown below:<img src="http://upyun-assets.ethfans.org/uploads/photo/image/faa1344957b04acf8a5a324fb8f55416.png" width="640" height="640"/></p> <p>Note: We don't mention the computer, just to make the example simpler.</p> <p><br></p> <p>You called Joe and told him, "I have already transferred. The next time you go to the bank, you can take out the $1,000 I just transferred."</p> <p><img src="http://upyun-assets.ethfans.org/uploads/photo/image/fb8cec441941428a81f166cddc36c583.png" width="640" height="640"/></p> <p>What happened? Both you and Joe entrust the bank to manage your money. There is no actual flow of physical notes to transfer your money. All that is needed is just an entry on the books. Or more accurately, an entry on the books that is neither controlled by you nor Joe, nor owned by you.</p> <p><br></p> <p>This is the problem with the existing system.</p> <p><br></p> <p>In order to build mutual trust between us, we rely on independent third parties.</p> <p><br></p> <p>For many years, we rely on these agents to trust each other. You may ask, "What are the problems with relying on them?"</p> <p><br></p> <p>The problem is that they are just numbers. To trigger a chaos in society, all that is needed is a person or an institution that goes to corruption and degeneration, whether consciously or unconsciously.</p> <p><br></p> <p>What if the book that recorded the transfer was burned to a ash in a fire?</p> <p>If so, your bank manager is mistaken and wrote a $1,500 instead of $1,000?</p> <p>If so, is he intentionally doing it?</p> <p>For many years, we have kept all our eggs in one basket and are still baskets of others.</p> <p><br></p> <p>Is there a system like this, where we can transfer money without a bank?</p> <p><br></p> <p>To answer this question, we need to dig deeper and ask ourselves a better question (after all, only better questions lead to better answers).</p> <p><br></p> <p>Think about it, what does the transfer mean? It's just an entry on the books. So the better question will be -</p> <p><br></p> <p>Is there a way to maintain the book in between us instead of letting others do it for us?</p> <p><br></p> <p>Now, there is finally a question worth exploring. And the answer you may have guessed. Blockchain is the answer to this esoteric question.</p> <p><br></p> <p>It is a way of maintaining the books among us rather than relying on others to do it for us.</p> <p><br></p> <p>Can you keep up? well. Because many problems are now starting to explode in your mind, we will learn how this decentralized book works.</p> <p><br></p> <p>Ok, tell me how it works?</p> <p>The requirement of this method is that there must be enough people who do not want to rely on third parties. Only in this way can this group of people maintain their books on their own.</p> <p><br></p> <p>“It may make sense to only get people to get bitcoin in the transactions that Bitcoin brings. Once there are enough people to think like this, it will become a self-fulfilling prophecy.” – Nakamoto Satoshi, 2009*</p> <p><br></p> <p>How many talents is enough? At least 3 are required. For example, let's assume that 10 people want to abandon the bank and any third parties. According to the mutual agreement, they can always have each other's account information - but do not know the true identity of others.</p> <p><img src="http://upyun-assets.ethfans.org/uploads/photo/image/cb927f94054940dba39769124a21039c.png" width="640" height="640"/></p> <p>An empty folder</p> <p>In the beginning, everyone had an empty folder. As we are going to do, these 10 people will continue to add paper to their current folder. And the collection of these papers will form a book of tracking transactions.</p> <p><br></p> <p>2. When a transaction occurs</p> <p>Then everyone in this network will have a pen and paper in hand. Everyone is prepared to record any transactions that take place inside the system.</p> <p><br></p> <p>Now, let's say #2 wants to transfer $10 to #9.</p> <p><br></p> <p>In order to complete the transaction, #2 took a nap and told everyone, "I want to transfer $10 to #9. Everyone is down on their own small books!"</p> <p><img src="http://upyun-assets.ethfans.org/uploads/photo/image/2d49570689a04c99977d324af99a6c5a.png" width="640" height="640"/></p> <p>Everyone is aiming #2 is there enough balance to transfer $10 to #9. If she had enough money, everyone made a record for the deal on their blank page.</p> <p>In this way, a transfer is considered complete.</p> <p><br></p> <p>3. The transaction continues to occur</p> <p>Time flies, and more people on this network want to transfer money to others. Whenever they want to make a deal, they announce the deal to everyone else. Whoever hears this declaration, write it on his/her own paper.</p> <p><br></p> <p>This practice continues until everyone runs out of space on their current page. Suppose 1 page of paper can record 10 transactions, and once 10 transactions are completed, everyone runs out of space.</p> <p>Then, it is time to save the page to the folder, then take out a new piece of paper and repeat step 2 above.</p> <p><br></p> <p>4. Store paper</p> <p>Before you deposit this page into our folder, we need to seal it with the only key that everyone on the network agrees with. Through sealing, we can guarantee that once the backup of the page has been saved into each person's folder, no one can make any changes to it - not only today, not just tomorrow, not just one year later. Once in the folder, it will always stay in the folder - it will be sealed. Moreover, if everyone trusts this seal, everyone will believe in the content of the page. The sealing method of this page is the key to this method.</p> <p><br></p> <p>[Terminal Box] This thing used to protect the content of paper is called "mine", but to simplify it, we still call it "seal."</p> <p><br></p> <p>Earlier, third parties/intermediaries gave us trust in the form that they could never be changed, no matter what they had written in the books. In a decentralized, decentralized system, like our system above, this seal will provide a trust replacement.</p> <p><br></p> <p>Because of the lack of Sting! So how do we seal this record?</p> <p>Before we learn how to seal this page, we need to know how, in general, how the seal works. To do this, the prerequisite is to learn something, I like to call it...</p> <p><br></p> <p>Magic machine</p> <p>Imagine a machine surrounded by thick walls. If you plug in a box with something left on the left, it will spit out a box with something else.</p> <p><img src="http://upyun-assets.ethfans.org/uploads/photo/image/6c23f437da1d4093a39c1353d7404b24.png" width="640" height="640"/></p> <p>- Magic Machine (also known as Hash Equation) -</p> <p>Suppose we put a number 4 in the left and we will find that it spits out the following string on the right: ‘dcbea’.</p> <p><br></p> <p>How is the number 4 converted into this string of characters? Nobody knows. Moreover, this process is irreversible. I got the string ‘dcbea’ and it’s impossible to figure out what the machine received from the left. However, any time you enter the number 4 for this machine, it will always spit out the same character, ‘dcbea’.</p> <p>Try sending a different number into it. 26, how?</p> <p>- hash(26)==94c8e -</p> <p>This time we got ‘94c8e’ and it seems that the characters can also contain numbers. interesting!</p> <p><br></p> <p>If I ask you the following questions now, what will things be like?</p> <p><br></p> <p>"Can you tell me that if I want to get a string of characters starting with 0 on the right side of the machine, what should I enter from the left side? For example, 000ab, or, 00098, or 000fa, or any other case. One."</p> <p>Think about this question.</p> <p><br></p> <p>I have already told you that this machine has a property: after we get the expected output value from the right side, we can't figure out what we have to type in from the left. Give us such a machine, how can we answer the question I asked?</p> <p><br></p> <p>I can figure out a way. Why don't we traverse all the numbers in the universe one by one until we get a string of characters starting with three zeros?</p> <p>Optimistically, after a few thousand attempts, we end up with a number that will produce the required output value on the right.</p> <p>It is extremely difficult to calculate the input value given the output value. But at the same time, it is extremely easy to verify if the predicted input value produces the desired output value. Remember to put in the same number, this machine will spit out the same characters every time.</p> <p><br></p> <p>If I give you a number, such as 72533, then ask you a question: "This number, after entering this machine, will produce a string starting with three zeros?" How hard do you think it is to get an answer? ?</p> <p><br></p> <p>Everything you have to do is just throw in the number and see what we got on the right. that's it.</p> <p><br></p> <p>The most important attribute of such a machine is - "giving an output value, it is extremely difficult to calculate the input value. However, given the input value and output value, it is very easy to verify whether the input will cause the output. of."</p> <p><br></p> <p>In the rest of this article, we have to remember this property of this magic machine (or hash equation):</p> <p><br></p> <p>“ Given an output value, it is extremely difficult to calculate the input value. However, given input values ​​and output values, it is very easy to verify that the input will cause the output.”</p> <p><br></p> <p>How to encrypt a file with such a machine?</p> <p>We will use this magic machine to create a seal for our paper. By convention, we will start with an imaginary situation.</p> <p><br></p> <p>Imagine I gave you two boxes. The first box contains the number 20893. Then I asked you, "Can you find a number, add the number in the first box, enter the machine, and finally give us a character starting with three zeros?"</p> <p>This situation is very similar to what we saw before, and we already know that the only way to figure out such a number is to exhaust every possible number in the universe.</p> <p><br></p> <p>After thousands of attempts, we will stumble upon a number, such as 21191, plus 20893 (for example: 21191+20893 = 42084) input machine, will produce a string of characters that meet our requirements.</p> <p>In this example, the number 21191 becomes the seal for the number 20893. Suppose there is a piece of paper now, the number 20893 is written on it. To seal this page (for example, so that no one can change the content on this page), we will put a badge with the label ‘21191’ on it. Once the sealed number (eg 21191) is stamped on the paper, the page is sealed.</p> <p>If anyone wants to verify that the page has been replaced, all he needs to do is to add the contents of the page to the sealed number and enter the value into the magic machine. If the machine gives a string of three characters starting with 0, the content is not changed. If the characters that appear do not meet our requirements, we can drop the page because its content is already hydrated and has no use.</p> <p><br></p> <p>We will use a simple sealing mechanism to archive all the records and eventually arrange them in our respective folders.</p> <p><br></p> <p>Finally, seal up our documents</p> <p>To seal the records that contain the transactions in our network, we will need to figure out a number that, after being added to the transaction list and entered into the machine, will allow us to get a string of three characters starting with 0.</p> <p><br></p> <p><br></p> <p><br></p> <p>Note: I have been using the "three 0-starting characters", just an example. It illustrates how the hash equation works. The actual challenge is much more complicated than this.</p> <p><br></p> <p>We will spend time and power on this machine, but once we figure out that number, the page is sealed by that number. Forever and ever, if someone tries to change the content on this page, this sealed number allows anyone to verify the integrity of the page.</p> <p><br></p> <p>Now that we know the way to keep records, we will return to the time when we have written 10 transactions on this paper and no space to write more records.</p> <p><br></p> <p>Once everyone had exhausted a page of paper and could not record further transactions, they began to struggle to calculate the sealed number of the page so that it could be hidden in a folder. In the network, everyone performs this calculation, and the person who first calculated the sealed number will announce this number to everyone else.</p> <p><br></p> <p><br></p> <p><br></p> <p>After hearing the sealed number, everyone immediately verifies that it produces the required output value. If so, everyone marks the paper with their number and puts the paper in a folder.</p> <p><br></p> <p>However, what should I do if for someone, such as #7, the declared sealed number does not produce the required output value? This situation is not uncommon. Possible reasons are:</p> <p><br></p> <p>He may have misunderstood the transaction announced on the network before.</p> <p>He may have miswritten the transaction announced on the network before</p> <p>He may try to cheat when recording a transaction, for personal gain, or to please some people on the network.</p> <p>Whatever the reason, #7 has only one option - to abandon his record and get a copy from someone else so that he can also put the paper in a folder. Unless he does not put his paper in the folder, he will not be able to continue to record further transactions, which will therefore prohibit him from becoming a member of the network.</p> <p><br></p> <p>The sealed number that most people agree with, whatever it is, will become that credible sealed number.</p> <p><br></p> <p>However, if they know that others will figure it out and then announce it, why do everyone spend resources to calculate? Why not sit back and wait for your thighs?</p> <p><br></p> <p>good question. This is where the motivation is added to this picture. Members of each blockchain are eligible for rewards. The first person to calculate a sealed number will receive free money as a reward for his efforts (such as the CPU power and power paid).</p> <p><br></p> <p>Simply imagine that if #5 calculates a sealed number for a one-page record, he gets some free money as a reward, assuming a $1 coin cast out of thin air. In other words, #5's account balance has increased by $1, and no one has reduced account balance.</p> <p><br></p> <p>This is how Bitcoin becomes a reality. It is the first currency that is traded on a blockchain (eg, a decentralized ledger). At the same time, people are rewarded with Bitcoin as a reward so that on the web, efforts to calculate sealed numbers will continue.</p> <p><br></p> <p>When enough people hold Bitcoin, Bitcoin will appreciate, making more people want Bitcoin; this will further increase Bitcoin; this appreciation will make more people want Bitcoin; this desire further makes the bit The appreciation of the currency; this cycle.</p> <p><br></p> <p>This kind of reward makes everyone in the network work without stopping.</p> <p><br></p> <p>Once everyone has folded a page into the folder, they will take out a blank sheet of paper and repeat the process again – forever.</p> <p><br></p> <p>[Terminal Box] Think of a page as a block of a transaction, a folder as a paper (block), and as a result, it becomes a blockchain.</p> <p><br></p> <p>Old iron, this is how the blockchain works.</p> <p><br></p> <p>however. I still have a little thing that I didn't tell you.</p> <p><br></p> <p>Imagine that there are already 5 pages of paper in the folder - all encrypted by a sealed number. What happens if I go back to the second page and change the transaction record for personal gain? Sealing the numbers will make anyone aware of the contradictions in the transaction record, right? Then, if I go further, calculate a new sealed number for the revised transaction record, and poke this substitute on paper?</p> <p><br></p> <p>To prevent this problem, that is, someone backs up and modifies paper (blocks) and sealed numbers, there is an explanation here about how a sealed number is calculated.</p> <p><br></p> <p>Prevent modification of sealed numbers</p> <p>Remember how I told you? I gave you two boxes - one with the number 20893 and the other empty for you to calculate? In fact, in order to calculate the seal number on the blockchain, there are three boxes instead of two - two pre-installed ones, one being used for calculation.</p> <p><br></p> <p>When the contents of all three boxes add up and enter the magic machine, the answer from the right side of the machine must meet the required conditions.</p> <p><br></p> <p>We already know that a box holds a list of transaction records, and a box will contain sealed numbers. And the third box, the magic machine output value of the previous paper.</p> <p><br></p> <p><br></p> <p><br></p> <p>With this elegant care machine, we can guarantee that every page of paper depends on the paper before it. Therefore, if someone wants to modify a history, he will also have to change the content and seal numbers of all the papers after the page to keep the chain consistent.</p> <p><br></p> <p>If someone, not the 10 people we envisioned at the outset, tried to cheat and modify the contents of the blockchain (the folder that holds all the transaction log sheets), he would have to adjust multiple pages of paper for all of them. The paper calculates a new sealed number. We all know how difficult it is to calculate a sealed number. Therefore, a bad guy in this network can't bully nine honest people.</p> <p><br></p> <p>What will happen is that from the night the dishonest guy tries to cheat, he will create another blockchain in the network, but that blockchain will never catch up with the trusted blockchain— - Just because a guy's effort and speed can't beat the effort and speed that nine people have accumulated. Therefore, this guarantees that in a network, the longest chain is a trusted chain.</p> <p><br></p> <p>The longest chain is the chain of honesty and trustworthiness.</p> <p><br></p> <p><br></p> <p><br></p> <p>When I tell you that a dishonest guy can't bully nine honest people, does it wake you up?</p> <p><br></p> <p>In case, not one, but six people do things?</p> <p>In this case, the agreement will fall through the surface. It is known as the "51% attack." If most people on the network decide to become dishonest and deceive the rest of the network, this agreement will not achieve its goals.</p> <p><br></p> <p>At any time, if the blockchain is likely to fall, this is the only reason for its vulnerability. Knowing this, it is unlikely to happen. However, all of us must know this weakness of this system. It builds on the assumption that most of a group of people are always honest.</p> <p><br></p> <p>Old iron. This is everything about the blockchain. Any time you find someone feels backward and confused, "What the hell is the blockchain?" You know you can guide them where to go.</p> <p><br></p> </html>
json metadata{"tags":["btc"],"image":["http://upyun-assets.ethfans.org/uploads/photo/image/eb91781ca96d4de9a7c0459875129af8.png","http://upyun-assets.ethfans.org/uploads/photo/image/505584b5857348ba9f8fb6cc47f01fb4.png","http://upyun-assets.ethfans.org/uploads/photo/image/faa1344957b04acf8a5a324fb8f55416.png","http://upyun-assets.ethfans.org/uploads/photo/image/fb8cec441941428a81f166cddc36c583.png","http://upyun-assets.ethfans.org/uploads/photo/image/cb927f94054940dba39769124a21039c.png","http://upyun-assets.ethfans.org/uploads/photo/image/2d49570689a04c99977d324af99a6c5a.png","http://upyun-assets.ethfans.org/uploads/photo/image/6c23f437da1d4093a39c1353d7404b24.png"],"app":"steemit/0.1","format":"html"}
Transaction InfoBlock #26164138/Trx 53b469fd8688ea296d4fd77b18fa78f27fdde1ed
View Raw JSON Data
{
  "trx_id": "53b469fd8688ea296d4fd77b18fa78f27fdde1ed",
  "block": 26164138,
  "trx_in_block": 28,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-09-22T09:44:57",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "btc",
      "author": "dockerqi",
      "permlink": "popular-science-or-what-is-the-blockchain",
      "title": "Popular science | What is the blockchain?",
      "body": "<html>\n<p><img src=\"http://upyun-assets.ethfans.org/uploads/photo/image/eb91781ca96d4de9a7c0459875129af8.png\" width=\"1280\" height=\"768\"/></p>\n<p>Unless you are a caveman, I am sure you have heard of Bitcoins and blockchain. After all, they are hot spots, the favorite topic of the media these days, and the annual buzzword. Even the guys who have never heard of cryptocurrency and don't even know how it works are talking about it. Among my friends, there are more non-technical homes than technical homes. In order for me to explain this new buzzword to them, they have been harassing me for several weeks. I guess thousands of people have the same feelings as me. When this happens, it's time to write something so that everyone can wake up those confused eggs - this is the purpose of this push - written in plain English, so that any ordinary netizens can understand .</p>\n<p><br></p>\n<p>Blockchain: Why do we need something so complicated?</p>\n<p>“Every complicated question has a clear, simple and wrong answer.” – H.L.Mencken*</p>\n<p><br></p>\n<p>Contrary to any other push on the Internet, we don't define what a blockchain is in the first place. We will first understand the problem it is trying to solve.</p>\n<p><br></p>\n<p>Imagine Joe is your best friend. He is traveling overseas. On the fifth day of his holiday, he gave you a call, \"Dude, I spent the money, and the rivers and lakes were in a hurry.\"</p>\n<p><br></p>\n<p>You answer \"remit money immediately\" and then hang up.</p>\n<p><img src=\"http://upyun-assets.ethfans.org/uploads/photo/image/505584b5857348ba9f8fb6cc47f01fb4.png\" width=\"640\" height=\"640\"/></p>\n<p>Then you call the manager of your bank account, \"Please transfer $1,000 from my account to Joe's account.\"</p>\n<p><br></p>\n<p>Your account manager replies, \"Received, sir.\"</p>\n<p><br></p>\n<p>He opens the books and checks your account to make sure you have enough balance to transfer $1,000 to Joe. Because you are a local tyrant and have a large amount of balance on the account, he has registered an entry in the account book, as shown below:<img src=\"http://upyun-assets.ethfans.org/uploads/photo/image/faa1344957b04acf8a5a324fb8f55416.png\" width=\"640\" height=\"640\"/></p>\n<p>Note: We don't mention the computer, just to make the example simpler.</p>\n<p><br></p>\n<p>You called Joe and told him, \"I have already transferred. The next time you go to the bank, you can take out the $1,000 I just transferred.\"</p>\n<p><img src=\"http://upyun-assets.ethfans.org/uploads/photo/image/fb8cec441941428a81f166cddc36c583.png\" width=\"640\" height=\"640\"/></p>\n<p>What happened? Both you and Joe entrust the bank to manage your money. There is no actual flow of physical notes to transfer your money. All that is needed is just an entry on the books. Or more accurately, an entry on the books that is neither controlled by you nor Joe, nor owned by you.</p>\n<p><br></p>\n<p>This is the problem with the existing system.</p>\n<p><br></p>\n<p>In order to build mutual trust between us, we rely on independent third parties.</p>\n<p><br></p>\n<p>For many years, we rely on these agents to trust each other. You may ask, \"What are the problems with relying on them?\"</p>\n<p><br></p>\n<p>The problem is that they are just numbers. To trigger a chaos in society, all that is needed is a person or an institution that goes to corruption and degeneration, whether consciously or unconsciously.</p>\n<p><br></p>\n<p>What if the book that recorded the transfer was burned to a ash in a fire?</p>\n<p>If so, your bank manager is mistaken and wrote a $1,500 instead of $1,000?</p>\n<p>If so, is he intentionally doing it?</p>\n<p>For many years, we have kept all our eggs in one basket and are still baskets of others.</p>\n<p><br></p>\n<p>Is there a system like this, where we can transfer money without a bank?</p>\n<p><br></p>\n<p>To answer this question, we need to dig deeper and ask ourselves a better question (after all, only better questions lead to better answers).</p>\n<p><br></p>\n<p>Think about it, what does the transfer mean? It's just an entry on the books. So the better question will be -</p>\n<p><br></p>\n<p>Is there a way to maintain the book in between us instead of letting others do it for us?</p>\n<p><br></p>\n<p>Now, there is finally a question worth exploring. And the answer you may have guessed. Blockchain is the answer to this esoteric question.</p>\n<p><br></p>\n<p>It is a way of maintaining the books among us rather than relying on others to do it for us.</p>\n<p><br></p>\n<p>Can you keep up? well. Because many problems are now starting to explode in your mind, we will learn how this decentralized book works.</p>\n<p><br></p>\n<p>Ok, tell me how it works?</p>\n<p>The requirement of this method is that there must be enough people who do not want to rely on third parties. Only in this way can this group of people maintain their books on their own.</p>\n<p><br></p>\n<p>“It may make sense to only get people to get bitcoin in the transactions that Bitcoin brings. Once there are enough people to think like this, it will become a self-fulfilling prophecy.” – Nakamoto Satoshi, 2009*</p>\n<p><br></p>\n<p>How many talents is enough? At least 3 are required. For example, let's assume that 10 people want to abandon the bank and any third parties. According to the mutual agreement, they can always have each other's account information - but do not know the true identity of others.</p>\n<p><img src=\"http://upyun-assets.ethfans.org/uploads/photo/image/cb927f94054940dba39769124a21039c.png\" width=\"640\" height=\"640\"/></p>\n<p>An empty folder</p>\n<p>In the beginning, everyone had an empty folder. As we are going to do, these 10 people will continue to add paper to their current folder. And the collection of these papers will form a book of tracking transactions.</p>\n<p><br></p>\n<p>2. When a transaction occurs</p>\n<p>Then everyone in this network will have a pen and paper in hand. Everyone is prepared to record any transactions that take place inside the system.</p>\n<p><br></p>\n<p>Now, let's say #2 wants to transfer $10 to #9.</p>\n<p><br></p>\n<p>In order to complete the transaction, #2 took a nap and told everyone, \"I want to transfer $10 to #9. Everyone is down on their own small books!\"</p>\n<p><img src=\"http://upyun-assets.ethfans.org/uploads/photo/image/2d49570689a04c99977d324af99a6c5a.png\" width=\"640\" height=\"640\"/></p>\n<p>Everyone is aiming #2 is there enough balance to transfer $10 to #9. If she had enough money, everyone made a record for the deal on their blank page.</p>\n<p>In this way, a transfer is considered complete.</p>\n<p><br></p>\n<p>3. The transaction continues to occur</p>\n<p>Time flies, and more people on this network want to transfer money to others. Whenever they want to make a deal, they announce the deal to everyone else. Whoever hears this declaration, write it on his/her own paper.</p>\n<p><br></p>\n<p>This practice continues until everyone runs out of space on their current page. Suppose 1 page of paper can record 10 transactions, and once 10 transactions are completed, everyone runs out of space.</p>\n<p>Then, it is time to save the page to the folder, then take out a new piece of paper and repeat step 2 above.</p>\n<p><br></p>\n<p>4. Store paper</p>\n<p>Before you deposit this page into our folder, we need to seal it with the only key that everyone on the network agrees with. Through sealing, we can guarantee that once the backup of the page has been saved into each person's folder, no one can make any changes to it - not only today, not just tomorrow, not just one year later. Once in the folder, it will always stay in the folder - it will be sealed. Moreover, if everyone trusts this seal, everyone will believe in the content of the page. The sealing method of this page is the key to this method.</p>\n<p><br></p>\n<p>[Terminal Box] This thing used to protect the content of paper is called \"mine\", but to simplify it, we still call it \"seal.\"</p>\n<p><br></p>\n<p>Earlier, third parties/intermediaries gave us trust in the form that they could never be changed, no matter what they had written in the books. In a decentralized, decentralized system, like our system above, this seal will provide a trust replacement.</p>\n<p><br></p>\n<p>Because of the lack of Sting! So how do we seal this record?</p>\n<p>Before we learn how to seal this page, we need to know how, in general, how the seal works. To do this, the prerequisite is to learn something, I like to call it...</p>\n<p><br></p>\n<p>Magic machine</p>\n<p>Imagine a machine surrounded by thick walls. If you plug in a box with something left on the left, it will spit out a box with something else.</p>\n<p><img src=\"http://upyun-assets.ethfans.org/uploads/photo/image/6c23f437da1d4093a39c1353d7404b24.png\" width=\"640\" height=\"640\"/></p>\n<p>- Magic Machine (also known as Hash Equation) -</p>\n<p>Suppose we put a number 4 in the left and we will find that it spits out the following string on the right: ‘dcbea’.</p>\n<p><br></p>\n<p>How is the number 4 converted into this string of characters? Nobody knows. Moreover, this process is irreversible. I got the string ‘dcbea’ and it’s impossible to figure out what the machine received from the left. However, any time you enter the number 4 for this machine, it will always spit out the same character, ‘dcbea’.</p>\n<p>Try sending a different number into it. 26, how?</p>\n<p>- hash(26)==94c8e -</p>\n<p>This time we got ‘94c8e’ and it seems that the characters can also contain numbers. interesting!</p>\n<p><br></p>\n<p>If I ask you the following questions now, what will things be like?</p>\n<p><br></p>\n<p>\"Can you tell me that if I want to get a string of characters starting with 0 on the right side of the machine, what should I enter from the left side? For example, 000ab, or, 00098, or 000fa, or any other case. One.\"</p>\n<p>Think about this question.</p>\n<p><br></p>\n<p>I have already told you that this machine has a property: after we get the expected output value from the right side, we can't figure out what we have to type in from the left. Give us such a machine, how can we answer the question I asked?</p>\n<p><br></p>\n<p>I can figure out a way. Why don't we traverse all the numbers in the universe one by one until we get a string of characters starting with three zeros?</p>\n<p>Optimistically, after a few thousand attempts, we end up with a number that will produce the required output value on the right.</p>\n<p>It is extremely difficult to calculate the input value given the output value. But at the same time, it is extremely easy to verify if the predicted input value produces the desired output value. Remember to put in the same number, this machine will spit out the same characters every time.</p>\n<p><br></p>\n<p>If I give you a number, such as 72533, then ask you a question: \"This number, after entering this machine, will produce a string starting with three zeros?\" How hard do you think it is to get an answer? ?</p>\n<p><br></p>\n<p>Everything you have to do is just throw in the number and see what we got on the right. that's it.</p>\n<p><br></p>\n<p>The most important attribute of such a machine is - \"giving an output value, it is extremely difficult to calculate the input value. However, given the input value and output value, it is very easy to verify whether the input will cause the output. of.\"</p>\n<p><br></p>\n<p>In the rest of this article, we have to remember this property of this magic machine (or hash equation):</p>\n<p><br></p>\n<p>“ Given an output value, it is extremely difficult to calculate the input value. However, given input values ​​and output values, it is very easy to verify that the input will cause the output.”</p>\n<p><br></p>\n<p>How to encrypt a file with such a machine?</p>\n<p>We will use this magic machine to create a seal for our paper. By convention, we will start with an imaginary situation.</p>\n<p><br></p>\n<p>Imagine I gave you two boxes. The first box contains the number 20893. Then I asked you, \"Can you find a number, add the number in the first box, enter the machine, and finally give us a character starting with three zeros?\"</p>\n<p>This situation is very similar to what we saw before, and we already know that the only way to figure out such a number is to exhaust every possible number in the universe.</p>\n<p><br></p>\n<p>After thousands of attempts, we will stumble upon a number, such as 21191, plus 20893 (for example: 21191+20893 = 42084) input machine, will produce a string of characters that meet our requirements.</p>\n<p>In this example, the number 21191 becomes the seal for the number 20893. Suppose there is a piece of paper now, the number 20893 is written on it. To seal this page (for example, so that no one can change the content on this page), we will put a badge with the label ‘21191’ on it. Once the sealed number (eg 21191) is stamped on the paper, the page is sealed.</p>\n<p>If anyone wants to verify that the page has been replaced, all he needs to do is to add the contents of the page to the sealed number and enter the value into the magic machine. If the machine gives a string of three characters starting with 0, the content is not changed. If the characters that appear do not meet our requirements, we can drop the page because its content is already hydrated and has no use.</p>\n<p><br></p>\n<p>We will use a simple sealing mechanism to archive all the records and eventually arrange them in our respective folders.</p>\n<p><br></p>\n<p>Finally, seal up our documents</p>\n<p>To seal the records that contain the transactions in our network, we will need to figure out a number that, after being added to the transaction list and entered into the machine, will allow us to get a string of three characters starting with 0.</p>\n<p><br></p>\n<p><br></p>\n<p><br></p>\n<p>Note: I have been using the \"three 0-starting characters\", just an example. It illustrates how the hash equation works. The actual challenge is much more complicated than this.</p>\n<p><br></p>\n<p>We will spend time and power on this machine, but once we figure out that number, the page is sealed by that number. Forever and ever, if someone tries to change the content on this page, this sealed number allows anyone to verify the integrity of the page.</p>\n<p><br></p>\n<p>Now that we know the way to keep records, we will return to the time when we have written 10 transactions on this paper and no space to write more records.</p>\n<p><br></p>\n<p>Once everyone had exhausted a page of paper and could not record further transactions, they began to struggle to calculate the sealed number of the page so that it could be hidden in a folder. In the network, everyone performs this calculation, and the person who first calculated the sealed number will announce this number to everyone else.</p>\n<p><br></p>\n<p><br></p>\n<p><br></p>\n<p>After hearing the sealed number, everyone immediately verifies that it produces the required output value. If so, everyone marks the paper with their number and puts the paper in a folder.</p>\n<p><br></p>\n<p>However, what should I do if for someone, such as #7, the declared sealed number does not produce the required output value? This situation is not uncommon. Possible reasons are:</p>\n<p><br></p>\n<p>He may have misunderstood the transaction announced on the network before.</p>\n<p>He may have miswritten the transaction announced on the network before</p>\n<p>He may try to cheat when recording a transaction, for personal gain, or to please some people on the network.</p>\n<p>Whatever the reason, #7 has only one option - to abandon his record and get a copy from someone else so that he can also put the paper in a folder. Unless he does not put his paper in the folder, he will not be able to continue to record further transactions, which will therefore prohibit him from becoming a member of the network.</p>\n<p><br></p>\n<p>The sealed number that most people agree with, whatever it is, will become that credible sealed number.</p>\n<p><br></p>\n<p>However, if they know that others will figure it out and then announce it, why do everyone spend resources to calculate? Why not sit back and wait for your thighs?</p>\n<p><br></p>\n<p>good question. This is where the motivation is added to this picture. Members of each blockchain are eligible for rewards. The first person to calculate a sealed number will receive free money as a reward for his efforts (such as the CPU power and power paid).</p>\n<p><br></p>\n<p>Simply imagine that if #5 calculates a sealed number for a one-page record, he gets some free money as a reward, assuming a $1 coin cast out of thin air. In other words, #5's account balance has increased by $1, and no one has reduced account balance.</p>\n<p><br></p>\n<p>This is how Bitcoin becomes a reality. It is the first currency that is traded on a blockchain (eg, a decentralized ledger). At the same time, people are rewarded with Bitcoin as a reward so that on the web, efforts to calculate sealed numbers will continue.</p>\n<p><br></p>\n<p>When enough people hold Bitcoin, Bitcoin will appreciate, making more people want Bitcoin; this will further increase Bitcoin; this appreciation will make more people want Bitcoin; this desire further makes the bit The appreciation of the currency; this cycle.</p>\n<p><br></p>\n<p>This kind of reward makes everyone in the network work without stopping.</p>\n<p><br></p>\n<p>Once everyone has folded a page into the folder, they will take out a blank sheet of paper and repeat the process again – forever.</p>\n<p><br></p>\n<p>[Terminal Box] Think of a page as a block of a transaction, a folder as a paper (block), and as a result, it becomes a blockchain.</p>\n<p><br></p>\n<p>Old iron, this is how the blockchain works.</p>\n<p><br></p>\n<p>however. I still have a little thing that I didn't tell you.</p>\n<p><br></p>\n<p>Imagine that there are already 5 pages of paper in the folder - all encrypted by a sealed number. What happens if I go back to the second page and change the transaction record for personal gain? Sealing the numbers will make anyone aware of the contradictions in the transaction record, right? Then, if I go further, calculate a new sealed number for the revised transaction record, and poke this substitute on paper?</p>\n<p><br></p>\n<p>To prevent this problem, that is, someone backs up and modifies paper (blocks) and sealed numbers, there is an explanation here about how a sealed number is calculated.</p>\n<p><br></p>\n<p>Prevent modification of sealed numbers</p>\n<p>Remember how I told you? I gave you two boxes - one with the number 20893 and the other empty for you to calculate? In fact, in order to calculate the seal number on the blockchain, there are three boxes instead of two - two pre-installed ones, one being used for calculation.</p>\n<p><br></p>\n<p>When the contents of all three boxes add up and enter the magic machine, the answer from the right side of the machine must meet the required conditions.</p>\n<p><br></p>\n<p>We already know that a box holds a list of transaction records, and a box will contain sealed numbers. And the third box, the magic machine output value of the previous paper.</p>\n<p><br></p>\n<p><br></p>\n<p><br></p>\n<p>With this elegant care machine, we can guarantee that every page of paper depends on the paper before it. Therefore, if someone wants to modify a history, he will also have to change the content and seal numbers of all the papers after the page to keep the chain consistent.</p>\n<p><br></p>\n<p>If someone, not the 10 people we envisioned at the outset, tried to cheat and modify the contents of the blockchain (the folder that holds all the transaction log sheets), he would have to adjust multiple pages of paper for all of them. The paper calculates a new sealed number. We all know how difficult it is to calculate a sealed number. Therefore, a bad guy in this network can't bully nine honest people.</p>\n<p><br></p>\n<p>What will happen is that from the night the dishonest guy tries to cheat, he will create another blockchain in the network, but that blockchain will never catch up with the trusted blockchain— - Just because a guy's effort and speed can't beat the effort and speed that nine people have accumulated. Therefore, this guarantees that in a network, the longest chain is a trusted chain.</p>\n<p><br></p>\n<p>The longest chain is the chain of honesty and trustworthiness.</p>\n<p><br></p>\n<p><br></p>\n<p><br></p>\n<p>When I tell you that a dishonest guy can't bully nine honest people, does it wake you up?</p>\n<p><br></p>\n<p>In case, not one, but six people do things?</p>\n<p>In this case, the agreement will fall through the surface. It is known as the \"51% attack.\" If most people on the network decide to become dishonest and deceive the rest of the network, this agreement will not achieve its goals.</p>\n<p><br></p>\n<p>At any time, if the blockchain is likely to fall, this is the only reason for its vulnerability. Knowing this, it is unlikely to happen. However, all of us must know this weakness of this system. It builds on the assumption that most of a group of people are always honest.</p>\n<p><br></p>\n<p>Old iron. This is everything about the blockchain. Any time you find someone feels backward and confused, \"What the hell is the blockchain?\" You know you can guide them where to go.</p>\n<p><br></p>\n</html>",
      "json_metadata": "{\"tags\":[\"btc\"],\"image\":[\"http://upyun-assets.ethfans.org/uploads/photo/image/eb91781ca96d4de9a7c0459875129af8.png\",\"http://upyun-assets.ethfans.org/uploads/photo/image/505584b5857348ba9f8fb6cc47f01fb4.png\",\"http://upyun-assets.ethfans.org/uploads/photo/image/faa1344957b04acf8a5a324fb8f55416.png\",\"http://upyun-assets.ethfans.org/uploads/photo/image/fb8cec441941428a81f166cddc36c583.png\",\"http://upyun-assets.ethfans.org/uploads/photo/image/cb927f94054940dba39769124a21039c.png\",\"http://upyun-assets.ethfans.org/uploads/photo/image/2d49570689a04c99977d324af99a6c5a.png\",\"http://upyun-assets.ethfans.org/uploads/photo/image/6c23f437da1d4093a39c1353d7404b24.png\"],\"app\":\"steemit/0.1\",\"format\":\"html\"}"
    }
  ]
}
2018/09/22 09:33:51
parent author
parent permlinkethbtc
authordockerqi
permlinkintroduction-or-why-is-it-difficult-to-run-evm-on-plasma
titleIntroduction | Why is it difficult to run EVM on Plasma?
body<html> <p>Fundamentally, Plasma currently does most of the work with very simple UTXO or non-homologous tokens. Many people want to know if it is possible to create a Plasma chain that allows users to deploy EVM smart contracts. Unfortunately, achieving this is much more complicated than you think. If you don't have a lot of work on Plasma, you may not be able to figure out why. The purpose of this article is to give a quick overview of why Plasma is having difficulty fully supporting the operation of EVM, and then make some suggestions on how to create a Plasma chain that can run more types of smart contracts.</p> <p><br></p> <p>Why is it so difficult to create a Plasma chain that supports EVM? Before we start to reveal the secret, let's talk about Plasma again. One of the basic characteristics of Plasma is that the state on the Plasma chain must be able to be retracted back to the root chain (for example, Ethereum) to ensure state integrity. Assets on the Plasma chain must be free to move to the root chain and vice versa. This feature is very important. When Plasma's consensus mechanism is corrupted, users must withdraw their assets on the Plasma chain back to the root chain.</p> <p><br></p> <p>To understand this, imagine a simple Plasma chain that allows users to transfer or receive funds through their accounts. If you are one of the users on this Plasma chain, you want to withdraw your funds. What should you do? You can tell the contract on Ethereum that you have a fund on the Plasma chain and you want to withdraw the funds. Of course there is a condition here - you can't lie about the balance in your account. That's why we're introducing a "challenge" mechanism during which invalid refunds can be locked.</p> <p><br></p> <p>Now, let's extend this concept to a familiar EVM smart contract, with a simple multi-signature account as an example. If this account is currently on the Plasma chain, we need to provide a way to withdraw the wallet back to the root chain. However, we don't want to take the funds out of the multi-signature account – we want to withdraw the entire smart contract back to the root chain. Be aware that each EVM contract is made up of status, balance, and code. Therefore, we are actually moving the status, balance, and code of this multi-signature contract from the Plasma chain to the root chain. After the transfer, the contract should be able to function properly on the root chain.</p> <p><br></p> <p>So, who actually decides to transfer things from the Plasma chain to the root chain? If we are talking about a simple account, the account owner should be able to withdraw the balance at any time. If we are talking about multi-signature accounts, then we can design some different mechanisms to decide when to transfer the multi-signature account to the root chain. Each user signature on a multi-signature account may be required, or an n/m user signature, or a user signature. All of these mechanisms are likely to work—the designers of multi-signature accounts need to decide which mechanism is most appropriate.</p> <p><br></p> <p>But the problem is coming – not every time you can determine who wants to move the contract from the Plasma chain to the root chain. Imagine running a smart contract on a virtual cat (on a Plasma chain). Assuming that the consensus mechanism is corrupted, everyone needs to leave the Plasma chain to ensure the security of the funds. How do we deal with this virtual cat contract? As discussed above, we need to withdraw this contract back to the root chain. Unfortunately, if we allow everyone to withdraw the contract, the user will rush to withdraw the contract as much as possible, causing the Plasma chain to be void. Therefore, we must come up with a better mechanism.</p> <p><br></p> <p>We can come up with some mechanisms, but these mechanisms are not too centralized or too costly. It seems feasible to use the voting mechanism to decide when it is possible to withdraw the contract. The problem is that if the number of legitimate voters is small, the degree of centralization of contract control is too high; and the more legal voters, the higher the cost of the voting mechanism.</p> <p><br></p> <p>Let's talk back to the process of withdrawing things from the Plasma chain. Don't forget, once we find that a state to be revoked is invalid, we can prevent it from exiting. Suppose that our virtual cat contract states that I am the owner of Cat 123. Now we want to withdraw the contract and need to indicate the current status of the contract. One record in the current state is "Kelvin has a cat 123". What happens if I transfer the ownership of Cat 123 to another person during the challenge period of the contract? The "real" status becomes "User X has a cat 123". At this point, the state of evacuating Plsama is invalid (so it can be challenged successfully). We are welcoming the second big problem - if anyone can modify the status of the contract, then anyone can stop the exit ( proofreading note: that each user's permissions become a veto).</p> <p><br></p> <p>This has led to our ultimate problem - we need to verify that the challenged state change is a valid change, but it is difficult to verify the EVM state changes inside the EVM is hard in the EVM. For a contract like the account, a valid state change only requires the signature of the account owner and is easy to check in the EVM. However, for complex EVM contracts, the situation is much more complicated. One way to verify EVM execution is to use a project like TrueBit. While this may be the easiest option, it will make Plasma too dependent on external systems, thereby fundamentally stifling its security. Ideally, if we want to verify the steps of an EVM without trust, we need to run another EVM in this EVM. Based on this consideration, Vitalik even proposed an Ethereum improvement plan for this purpose. I really recommend that you take a look at this Ethereum improvement plan. After reading it, you will understand (the gas limit is set in the gas limit, oh...).</p> <p><br></p> <p>That's why the Plasma chain can't run so many contracts like Ethereum. Finally, a quick review:</p> <p><br></p> <p>It's not always possible to determine who wants to move the contract from the Plasma chain to the root chain.</p> <p>If anyone can modify the status of the contract, then anyone can lock the withdrawal.</p> <p>It is difficult to verify the status change of the EVM in the EVM.</p> <p>So where do we go from here? Fortunately, we have begun to come up with some concepts that weaken these issues primarily by breaking down typical types of smart contracts. Also take the virtual cat contract as an example. If each user wants to transfer their own virtual cat instead of the entire contract, it is much easier to determine who is transferring the things on Plasma to the root chain. We can use a smart smart contract to represent each cat, and only the owner of the cat has the right to modify the contract. The first two problems are solved by simply changing the design.</p> <p><br></p> <p>I have discussed with Dan Robinson about how to modify the design and make it more suitable for developers, after which I will post some preliminary ideas. The point is that the easiest way we've found is perhaps to use something like the Transaction Virtual Machine (TXVM) and a high-level language that can compose and automatically decompose EVM smart contracts. We call this "Plasma VM" because this method is feasible and backward compatible with MVP.</p> <p><br></p> <p>If you have any feedback / questions / comments, welcome to. If there are still some incomprehensible, please let me know and I will improve it!</p> </html>
json metadata{"tags":["ethbtc"],"app":"steemit/0.1","format":"html"}
Transaction InfoBlock #26163916/Trx cf4c1e4188c0b3cde1d554a5e5905a372792b227
View Raw JSON Data
{
  "trx_id": "cf4c1e4188c0b3cde1d554a5e5905a372792b227",
  "block": 26163916,
  "trx_in_block": 15,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-09-22T09:33:51",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "ethbtc",
      "author": "dockerqi",
      "permlink": "introduction-or-why-is-it-difficult-to-run-evm-on-plasma",
      "title": "Introduction | Why is it difficult to run EVM on Plasma?",
      "body": "<html>\n<p>Fundamentally, Plasma currently does most of the work with very simple UTXO or non-homologous tokens. Many people want to know if it is possible to create a Plasma chain that allows users to deploy EVM smart contracts. Unfortunately, achieving this is much more complicated than you think. If you don't have a lot of work on Plasma, you may not be able to figure out why. The purpose of this article is to give a quick overview of why Plasma is having difficulty fully supporting the operation of EVM, and then make some suggestions on how to create a Plasma chain that can run more types of smart contracts.</p>\n<p><br></p>\n<p>Why is it so difficult to create a Plasma chain that supports EVM? Before we start to reveal the secret, let's talk about Plasma again. One of the basic characteristics of Plasma is that the state on the Plasma chain must be able to be retracted back to the root chain (for example, Ethereum) to ensure state integrity. Assets on the Plasma chain must be free to move to the root chain and vice versa. This feature is very important. When Plasma's consensus mechanism is corrupted, users must withdraw their assets on the Plasma chain back to the root chain.</p>\n<p><br></p>\n<p>To understand this, imagine a simple Plasma chain that allows users to transfer or receive funds through their accounts. If you are one of the users on this Plasma chain, you want to withdraw your funds. What should you do? You can tell the contract on Ethereum that you have a fund on the Plasma chain and you want to withdraw the funds. Of course there is a condition here - you can't lie about the balance in your account. That's why we're introducing a \"challenge\" mechanism during which invalid refunds can be locked.</p>\n<p><br></p>\n<p>Now, let's extend this concept to a familiar EVM smart contract, with a simple multi-signature account as an example. If this account is currently on the Plasma chain, we need to provide a way to withdraw the wallet back to the root chain. However, we don't want to take the funds out of the multi-signature account – we want to withdraw the entire smart contract back to the root chain. Be aware that each EVM contract is made up of status, balance, and code. Therefore, we are actually moving the status, balance, and code of this multi-signature contract from the Plasma chain to the root chain. After the transfer, the contract should be able to function properly on the root chain.</p>\n<p><br></p>\n<p>So, who actually decides to transfer things from the Plasma chain to the root chain? If we are talking about a simple account, the account owner should be able to withdraw the balance at any time. If we are talking about multi-signature accounts, then we can design some different mechanisms to decide when to transfer the multi-signature account to the root chain. Each user signature on a multi-signature account may be required, or an n/m user signature, or a user signature. All of these mechanisms are likely to work—the designers of multi-signature accounts need to decide which mechanism is most appropriate.</p>\n<p><br></p>\n<p>But the problem is coming – not every time you can determine who wants to move the contract from the Plasma chain to the root chain. Imagine running a smart contract on a virtual cat (on a Plasma chain). Assuming that the consensus mechanism is corrupted, everyone needs to leave the Plasma chain to ensure the security of the funds. How do we deal with this virtual cat contract? As discussed above, we need to withdraw this contract back to the root chain. Unfortunately, if we allow everyone to withdraw the contract, the user will rush to withdraw the contract as much as possible, causing the Plasma chain to be void. Therefore, we must come up with a better mechanism.</p>\n<p><br></p>\n<p>We can come up with some mechanisms, but these mechanisms are not too centralized or too costly. It seems feasible to use the voting mechanism to decide when it is possible to withdraw the contract. The problem is that if the number of legitimate voters is small, the degree of centralization of contract control is too high; and the more legal voters, the higher the cost of the voting mechanism.</p>\n<p><br></p>\n<p>Let's talk back to the process of withdrawing things from the Plasma chain. Don't forget, once we find that a state to be revoked is invalid, we can prevent it from exiting. Suppose that our virtual cat contract states that I am the owner of Cat 123. Now we want to withdraw the contract and need to indicate the current status of the contract. One record in the current state is \"Kelvin has a cat 123\". What happens if I transfer the ownership of Cat 123 to another person during the challenge period of the contract? The \"real\" status becomes \"User X has a cat 123\". At this point, the state of evacuating Plsama is invalid (so it can be challenged successfully). We are welcoming the second big problem - if anyone can modify the status of the contract, then anyone can stop the exit ( proofreading note: that each user's permissions become a veto).</p>\n<p><br></p>\n<p>This has led to our ultimate problem - we need to verify that the challenged state change is a valid change, but it is difficult to verify the EVM state changes inside the EVM is hard in the EVM. For a contract like the account, a valid state change only requires the signature of the account owner and is easy to check in the EVM. However, for complex EVM contracts, the situation is much more complicated. One way to verify EVM execution is to use a project like TrueBit. While this may be the easiest option, it will make Plasma too dependent on external systems, thereby fundamentally stifling its security. Ideally, if we want to verify the steps of an EVM without trust, we need to run another EVM in this EVM. Based on this consideration, Vitalik even proposed an Ethereum improvement plan for this purpose. I really recommend that you take a look at this Ethereum improvement plan. After reading it, you will understand (the gas limit is set in the gas limit, oh...).</p>\n<p><br></p>\n<p>That's why the Plasma chain can't run so many contracts like Ethereum. Finally, a quick review:</p>\n<p><br></p>\n<p>It's not always possible to determine who wants to move the contract from the Plasma chain to the root chain.</p>\n<p>If anyone can modify the status of the contract, then anyone can lock the withdrawal.</p>\n<p>It is difficult to verify the status change of the EVM in the EVM.</p>\n<p>So where do we go from here? Fortunately, we have begun to come up with some concepts that weaken these issues primarily by breaking down typical types of smart contracts. Also take the virtual cat contract as an example. If each user wants to transfer their own virtual cat instead of the entire contract, it is much easier to determine who is transferring the things on Plasma to the root chain. We can use a smart smart contract to represent each cat, and only the owner of the cat has the right to modify the contract. The first two problems are solved by simply changing the design.</p>\n<p><br></p>\n<p>I have discussed with Dan Robinson about how to modify the design and make it more suitable for developers, after which I will post some preliminary ideas. The point is that the easiest way we've found is perhaps to use something like the Transaction Virtual Machine (TXVM) and a high-level language that can compose and automatically decompose EVM smart contracts. We call this \"Plasma VM\" because this method is feasible and backward compatible with MVP.</p>\n<p><br></p>\n<p>If you have any feedback / questions / comments, welcome to. If there are still some incomprehensible, please let me know and I will improve it!</p>\n</html>",
      "json_metadata": "{\"tags\":[\"ethbtc\"],\"app\":\"steemit/0.1\",\"format\":\"html\"}"
    }
  ]
}
2018/09/22 09:28:12
parent authordockerqi
parent permlinkintroduction-or-anatomy-of-ethereum-s-storage-costs
authorcheetah
permlinkcheetah-re-dockerqiintroduction-or-anatomy-of-ethereum-s-storage-costs
title
bodyHi! I am a robot. I just upvoted you! I found similar content that readers might be interested in: https://medium.com/coinmonks/storing-on-ethereum-analyzing-the-costs-922d41d6b316
json metadata
Transaction InfoBlock #26163803/Trx bfe2c330f1fa85126d3ba527b05afc4dd2455af6
View Raw JSON Data
{
  "trx_id": "bfe2c330f1fa85126d3ba527b05afc4dd2455af6",
  "block": 26163803,
  "trx_in_block": 26,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-09-22T09:28:12",
  "op": [
    "comment",
    {
      "parent_author": "dockerqi",
      "parent_permlink": "introduction-or-anatomy-of-ethereum-s-storage-costs",
      "author": "cheetah",
      "permlink": "cheetah-re-dockerqiintroduction-or-anatomy-of-ethereum-s-storage-costs",
      "title": "",
      "body": "Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in:\nhttps://medium.com/coinmonks/storing-on-ethereum-analyzing-the-costs-922d41d6b316",
      "json_metadata": ""
    }
  ]
}
2018/09/22 09:28:09
voteralphabot
authordockerqi
permlinkintroduction-or-anatomy-of-ethereum-s-storage-costs
weight100 (1.00%)
Transaction InfoBlock #26163802/Trx b44aa5af69ab6b255d7eead070bcb9693ea9ff01
View Raw JSON Data
{
  "trx_id": "b44aa5af69ab6b255d7eead070bcb9693ea9ff01",
  "block": 26163802,
  "trx_in_block": 21,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-09-22T09:28:09",
  "op": [
    "vote",
    {
      "voter": "alphabot",
      "author": "dockerqi",
      "permlink": "introduction-or-anatomy-of-ethereum-s-storage-costs",
      "weight": 100
    }
  ]
}
2018/09/22 09:28:09
votercheetah
authordockerqi
permlinkintroduction-or-anatomy-of-ethereum-s-storage-costs
weight8 (0.08%)
Transaction InfoBlock #26163802/Trx 742fe5586435a6a40699176b9dc67844cc04576e
View Raw JSON Data
{
  "trx_id": "742fe5586435a6a40699176b9dc67844cc04576e",
  "block": 26163802,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-09-22T09:28:09",
  "op": [
    "vote",
    {
      "voter": "cheetah",
      "author": "dockerqi",
      "permlink": "introduction-or-anatomy-of-ethereum-s-storage-costs",
      "weight": 8
    }
  ]
}
2018/09/22 09:28:00
parent author
parent permlinkbtc
authordockerqi
permlinkintroduction-or-anatomy-of-ethereum-s-storage-costs
titleIntroduction | Anatomy of Ethereum's storage costs
body<html> <p>When we develop smart contracts, we have several different types of available storage:</p> <p><br></p> <p>Volatile stack access: stack</p> <p>Volatile memory access: memory</p> <p>Non-volatile: Storage (Storage)</p> <p>In addition, we also provide background information:</p> <p><br></p> <p>Contract-related code</p> <p>Access the data field of the transaction</p> <p>How to use different storage types</p> <p>Stack</p> <p>Except for the STOP, JUMPDEST, and INVALID operations, all Ethereum virtual machine operations (EVM opcodes) use the stack to read or write. However, there are operations that can read or write data without performing any calculations:</p> <p><br></p> <p>Stack depth from 0 to maximum 1024</p> <p><br></p> <p>POP: Get the value of the top of the stack (level 0)</p> <p>PUSH1...PUSH32 (PUSHX): Insert X bytes at the top of the stack</p> <p>DUP1...DUP16 (DUPX): copy the value at the top of the stack X</p> <p>SWAP1...SWAP16 (SWAPX): Exchange the values<br> <br> at X and the top of the stack</p> <p>RAM</p> <p>Access to this memory (read or write) is:</p> <p><br></p> <p>CALLDATACOPY: read the data field of the transaction and load it into memory</p> <p>CODECOPY: Read the code associated with the current contract and load it into memory</p> <p>EXTCODECOPY: Read the code associated with the external contract and load it into memory</p> <p>MLOAD: read a value from memory</p> <p>MSTORE: store a word or a 32-byte value in memory</p> <p>MSTORE8: Store an 8-byte value in memory</p> <p>storage</p> <p>Unlike stacks and memory, the data stored in this memory is permanent at the contract address of the transaction visit. The operations to maintain this memory are:</p> <p><br></p> <p>SLOAD</p> <p>SSTORE</p> <p>Pay attention to the "S" and "M" that represent storage and memory, respectively.</p> <p><br></p> <p>cost</p> <p>All of the above operations have operating costs in Gas. When a user initiates a transaction, he/she will quote the price of Gas in ETH. The miners have already configured the lowest Gas price, and the higher minimum Gas price will bring more profit to the miners, but will need to give up more deals. This creates a market for trading ETH in units of Gas. The less Gas the code consumes, the more efficient the resources needed to execute the code. The following table shows the Gas overhead for different opcodes based on the size of the data:<img src="https://upyun-assets.ethfans.org/uploads/photo/image/b6c1849c52514161b9af86f71306be26.png" width="800" height="323"/></p> <p>The most expensive of these is non-volatile storage. When the data size is a few kilobytes, the memory operation is similar to the cost of using the stack operation, but as the data size increases, the cost increases exponentially. This relationship is shown below:</p> <p><img src="https://upyun-assets.ethfans.org/uploads/photo/image/d99c9145cc8f490f98f253a19ba3e90e.png" width="800" height="390"/></p> <p>If we set Gas's ETH price based on the https://ethgasstation.info website:</p> <p><img src="https://upyun-assets.ethfans.org/uploads/photo/image/ba99b1f038384cbeb547fc5c329d3131.png" width="341" height="259"/></p> <p>We can use the ETH price to estimate the cost of each storage type:</p> <p><img src="https://upyun-assets.ethfans.org/uploads/photo/image/94a7697e0f864ce29707d06cff6fcf9c.png" width="800" height="109"/></p> <p>The value in the above table is the price in ETH. The miner will pack a higher-priced deal, so when the user pays more ETH for the unit Gas, his/her transaction will be packaged into the block faster.</p> <p>Finally, we can set a dollar to ETH exchange rate, for example, $1356.30:</p> <p>&nbsp;<img src="https://upyun-assets.ethfans.org/uploads/photo/image/feb326ced1774175a5dabb59c8ecccd4.png" width="800" height="110"/></p> <h2>in conclusion</h2> <p>Permanently storing data in Ethereum is extremely expensive. There is no point in using Ethereum to store data. Ethereum should only store the data needed for normal operation and delegate the data store to other solutions: Swarm, Filecoin, IPFS, and more. A good idea is to store the root hash value of the Merkel tree as a data tamper proof on an external server.</p> <p><br></p> <p>In addition, ETH prices are unpredictable, and the potential for rapid growth can result in increased operating overhead (in legal tender) to a higher level. If this happens, the miner must adjust the minimum ETH price per unit of Gas to re-adjust the cost.</p> <p><br></p> <p>It is important to control the cost of operations by analyzing the gas overhead of smart contracts.</p> <p><br></p> <p><br></p> <p><img src="https://upyun-assets.ethfans.org/uploads/photo/image/b6c1849c52514161b9af86f71306be26.png" width="800" height="323"/></p> </html>
json metadata{"tags":["btc"],"image":["https://upyun-assets.ethfans.org/uploads/photo/image/b6c1849c52514161b9af86f71306be26.png","https://upyun-assets.ethfans.org/uploads/photo/image/d99c9145cc8f490f98f253a19ba3e90e.png","https://upyun-assets.ethfans.org/uploads/photo/image/ba99b1f038384cbeb547fc5c329d3131.png","https://upyun-assets.ethfans.org/uploads/photo/image/94a7697e0f864ce29707d06cff6fcf9c.png","https://upyun-assets.ethfans.org/uploads/photo/image/feb326ced1774175a5dabb59c8ecccd4.png"],"links":["https://ethgasstation.info"],"app":"steemit/0.1","format":"html"}
Transaction InfoBlock #26163799/Trx a288c2d587beb22fcb95607fa7f3578736894a48
View Raw JSON Data
{
  "trx_id": "a288c2d587beb22fcb95607fa7f3578736894a48",
  "block": 26163799,
  "trx_in_block": 18,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-09-22T09:28:00",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "btc",
      "author": "dockerqi",
      "permlink": "introduction-or-anatomy-of-ethereum-s-storage-costs",
      "title": "Introduction | Anatomy of Ethereum's storage costs",
      "body": "<html>\n<p>When we develop smart contracts, we have several different types of available storage:</p>\n<p><br></p>\n<p>Volatile stack access: stack</p>\n<p>Volatile memory access: memory</p>\n<p>Non-volatile: Storage (Storage)</p>\n<p>In addition, we also provide background information:</p>\n<p><br></p>\n<p>Contract-related code</p>\n<p>Access the data field of the transaction</p>\n<p>How to use different storage types</p>\n<p>Stack</p>\n<p>Except for the STOP, JUMPDEST, and INVALID operations, all Ethereum virtual machine operations (EVM opcodes) use the stack to read or write. However, there are operations that can read or write data without performing any calculations:</p>\n<p><br></p>\n<p>Stack depth from 0 to maximum 1024</p>\n<p><br></p>\n<p>POP: Get the value of the top of the stack (level 0)</p>\n<p>PUSH1...PUSH32 (PUSHX): Insert X bytes at the top of the stack</p>\n<p>DUP1...DUP16 (DUPX): copy the value at the top of the stack X</p>\n<p>SWAP1...SWAP16 (SWAPX): Exchange the values<br>\n<br>\nat X and the top of the stack</p>\n<p>RAM</p>\n<p>Access to this memory (read or write) is:</p>\n<p><br></p>\n<p>CALLDATACOPY: read the data field of the transaction and load it into memory</p>\n<p>CODECOPY: Read the code associated with the current contract and load it into memory</p>\n<p>EXTCODECOPY: Read the code associated with the external contract and load it into memory</p>\n<p>MLOAD: read a value from memory</p>\n<p>MSTORE: store a word or a 32-byte value in memory</p>\n<p>MSTORE8: Store an 8-byte value in memory</p>\n<p>storage</p>\n<p>Unlike stacks and memory, the data stored in this memory is permanent at the contract address of the transaction visit. The operations to maintain this memory are:</p>\n<p><br></p>\n<p>SLOAD</p>\n<p>SSTORE</p>\n<p>Pay attention to the \"S\" and \"M\" that represent storage and memory, respectively.</p>\n<p><br></p>\n<p>cost</p>\n<p>All of the above operations have operating costs in Gas. When a user initiates a transaction, he/she will quote the price of Gas in ETH. The miners have already configured the lowest Gas price, and the higher minimum Gas price will bring more profit to the miners, but will need to give up more deals. This creates a market for trading ETH in units of Gas. The less Gas the code consumes, the more efficient the resources needed to execute the code. The following table shows the Gas overhead for different opcodes based on the size of the data:<img src=\"https://upyun-assets.ethfans.org/uploads/photo/image/b6c1849c52514161b9af86f71306be26.png\" width=\"800\" height=\"323\"/></p>\n<p>The most expensive of these is non-volatile storage. When the data size is a few kilobytes, the memory operation is similar to the cost of using the stack operation, but as the data size increases, the cost increases exponentially. This relationship is shown below:</p>\n<p><img src=\"https://upyun-assets.ethfans.org/uploads/photo/image/d99c9145cc8f490f98f253a19ba3e90e.png\" width=\"800\" height=\"390\"/></p>\n<p>If we set Gas's ETH price based on the https://ethgasstation.info website:</p>\n<p><img src=\"https://upyun-assets.ethfans.org/uploads/photo/image/ba99b1f038384cbeb547fc5c329d3131.png\" width=\"341\" height=\"259\"/></p>\n<p>We can use the ETH price to estimate the cost of each storage type:</p>\n<p><img src=\"https://upyun-assets.ethfans.org/uploads/photo/image/94a7697e0f864ce29707d06cff6fcf9c.png\" width=\"800\" height=\"109\"/></p>\n<p>The value in the above table is the price in ETH. The miner will pack a higher-priced deal, so when the user pays more ETH for the unit Gas, his/her transaction will be packaged into the block faster.</p>\n<p>Finally, we can set a dollar to ETH exchange rate, for example, $1356.30:</p>\n<p>&nbsp;<img src=\"https://upyun-assets.ethfans.org/uploads/photo/image/feb326ced1774175a5dabb59c8ecccd4.png\" width=\"800\" height=\"110\"/></p>\n<h2>in conclusion</h2>\n<p>Permanently storing data in Ethereum is extremely expensive. There is no point in using Ethereum to store data. Ethereum should only store the data needed for normal operation and delegate the data store to other solutions: Swarm, Filecoin, IPFS, and more. A good idea is to store the root hash value of the Merkel tree as a data tamper proof on an external server.</p>\n<p><br></p>\n<p>In addition, ETH prices are unpredictable, and the potential for rapid growth can result in increased operating overhead (in legal tender) to a higher level. If this happens, the miner must adjust the minimum ETH price per unit of Gas to re-adjust the cost.</p>\n<p><br></p>\n<p>It is important to control the cost of operations by analyzing the gas overhead of smart contracts.</p>\n<p><br></p>\n<p><br></p>\n<p><img src=\"https://upyun-assets.ethfans.org/uploads/photo/image/b6c1849c52514161b9af86f71306be26.png\" width=\"800\" height=\"323\"/></p>\n</html>",
      "json_metadata": "{\"tags\":[\"btc\"],\"image\":[\"https://upyun-assets.ethfans.org/uploads/photo/image/b6c1849c52514161b9af86f71306be26.png\",\"https://upyun-assets.ethfans.org/uploads/photo/image/d99c9145cc8f490f98f253a19ba3e90e.png\",\"https://upyun-assets.ethfans.org/uploads/photo/image/ba99b1f038384cbeb547fc5c329d3131.png\",\"https://upyun-assets.ethfans.org/uploads/photo/image/94a7697e0f864ce29707d06cff6fcf9c.png\",\"https://upyun-assets.ethfans.org/uploads/photo/image/feb326ced1774175a5dabb59c8ecccd4.png\"],\"links\":[\"https://ethgasstation.info\"],\"app\":\"steemit/0.1\",\"format\":\"html\"}"
    }
  ]
}
fastresteemupvoted (1.00%) @dockerqi / c
2018/09/22 09:15:51
voterfastresteem
authordockerqi
permlinkc
weight100 (1.00%)
Transaction InfoBlock #26163556/Trx 46300ede5c91fb1af57febc3746f0205f8d63581
View Raw JSON Data
{
  "trx_id": "46300ede5c91fb1af57febc3746f0205f8d63581",
  "block": 26163556,
  "trx_in_block": 33,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-09-22T09:15:51",
  "op": [
    "vote",
    {
      "voter": "fastresteem",
      "author": "dockerqi",
      "permlink": "c",
      "weight": 100
    }
  ]
}
dockerqipublished a new post: c
2018/09/22 09:15:42
parent author
parent permlinkprogram
authordockerqi
permlinkc
titlec语言指针和数组关系探究,小白也能看懂
body本文通过示例代码,给出我们对c语言中指针和数组之间关系的理解,希望对初学者有所帮助。 请看我们给出的精简示例代码:(测试环境:x86_64+gcc) #include <stdio.h>int main(void) { int arr[2][3] = { {1, 2, 3}, {4, 5, 6} }; int *p1 = arr[0]; int (*p2)[3] = &arr[0]; int (*p3)[3] = arr; int (*p4)[3] = &(*arr); int (*p5)[3] = &arr[1]; int (*p6)[2][3] = &arr; /* base */ printf("p0 : %p ", arr); /* expect: add 4(1 * sizeof int) */ printf("p1+1 : %p ", p1 + 1); /* expect: add 12(3 * sizeof int) */ printf("p2+1 : %p ", p2 + 1); printf("p3+1 : %p ", p3 + 1); printf("p4+1 : %p ", p4 + 1); /* expect: add 24(6 * sizeof int) */ printf("p5+1 : %p ", p5 + 1); printf("p6+1 : %p ", p6 + 1); return 0;} 输出结果如下: p0 : 0x7fff4ddbb2b0p1+1 : 0x7fff4ddbb2b4p2+1 : 0x7fff4ddbb2bcp3+1 : 0x7fff4ddbb2bcp4+1 : 0x7fff4ddbb2bcp5+1 : 0x7fff4ddbb2c8p6+1 : 0x7fff4ddbb2c8 对上面代码的理解是: p1:类型就是int *,可以记为是一个零维指针类型,因为该指针指向的元素根本就不是一个数组 p0/p2/p3/p4/p5,类型都是int (*)[3],可以记为一维指针类型,因为该指针指向的元素是一个一维数组 p6,类型是int (*)[2][3],自然就应该记为是二维指针类型 可见,对于n-1维指针类型的指针,它的活跃范围是一个n维数组。 指针的定义很单纯,一个指针变量仅仅包含所指向数据的类型这么一个简单的属性;而数组的定义就不一样了,它承载了很多额外的属性:(以int arr[X1][X2]...[Xn]为例) &arr+i:类型是int (*)[X1]...[Xn],可以在1个arr[X1][X2]..[Xn]的n维数组之间挪动,所以&arr+1就会跳出arr的整个n维数组围 arr+i:类型是int (*)[X2]...[Xn],可以在X1个arr[X2]..[Xn]的n-1维数组之间挪动 arr[i]:类型是int (*)[X3]...[Xn],固定到上述X1个arr[X2]..[Xn]的n-1维数组中的某一个,只活跃在其内部。也就是说,在X2个arr[X3]..[Xn]的n-2维数组之间挪动 arr[i][j]:依此类推。。。 理解了这些,再回头看本文给出的代码示例,就很好理解了: arr的类型是int (*)[3],&arr的类型是int (*)[2][3] arr[0]的类型是int *,&arr[0]的类型是int (*)[3] arr[0][0]的类型是int,&arr[0][0]的类型是int * 可以认为,数组定义一套自己的东西,但是留出了一个接口开放给指针。这样,数组才得以以指针形式被访问(使用)了。。。 ![](https://cdn.steemitimages.com/DQmRWd9LhEK2sv4eLtHiAwRPe9PnnJ99LcGLSxDjg4pmgLc/image.png)
json metadata{"tags":["program","include"],"image":["https://cdn.steemitimages.com/DQmRWd9LhEK2sv4eLtHiAwRPe9PnnJ99LcGLSxDjg4pmgLc/image.png"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #26163553/Trx 5c3400c25df6d8e4cf855eda06f2430c4a74e4bb
View Raw JSON Data
{
  "trx_id": "5c3400c25df6d8e4cf855eda06f2430c4a74e4bb",
  "block": 26163553,
  "trx_in_block": 31,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-09-22T09:15:42",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "program",
      "author": "dockerqi",
      "permlink": "c",
      "title": "c语言指针和数组关系探究,小白也能看懂",
      "body": "本文通过示例代码,给出我们对c语言中指针和数组之间关系的理解,希望对初学者有所帮助。\n\n请看我们给出的精简示例代码:(测试环境:x86_64+gcc)\n\n#include <stdio.h>int main(void) { int arr[2][3] = { {1, 2, 3}, {4, 5, 6} }; int *p1 = arr[0]; int (*p2)[3] = &arr[0]; int (*p3)[3] = arr; int (*p4)[3] = &(*arr); int (*p5)[3] = &arr[1]; int (*p6)[2][3] = &arr; /* base */ printf(\"p0 : %p \", arr); /* expect: add 4(1 * sizeof int) */ printf(\"p1+1 : %p \", p1 + 1); /* expect: add 12(3 * sizeof int) */ printf(\"p2+1 : %p \", p2 + 1); printf(\"p3+1 : %p \", p3 + 1); printf(\"p4+1 : %p \", p4 + 1); /* expect: add 24(6 * sizeof int) */ printf(\"p5+1 : %p \", p5 + 1); printf(\"p6+1 : %p \", p6 + 1); return 0;}\n\n\n输出结果如下:\n\np0 : 0x7fff4ddbb2b0p1+1 : 0x7fff4ddbb2b4p2+1 : 0x7fff4ddbb2bcp3+1 : 0x7fff4ddbb2bcp4+1 : 0x7fff4ddbb2bcp5+1 : 0x7fff4ddbb2c8p6+1 : 0x7fff4ddbb2c8\n\n\n对上面代码的理解是:\n\np1:类型就是int *,可以记为是一个零维指针类型,因为该指针指向的元素根本就不是一个数组\np0/p2/p3/p4/p5,类型都是int (*)[3],可以记为一维指针类型,因为该指针指向的元素是一个一维数组\np6,类型是int (*)[2][3],自然就应该记为是二维指针类型\n\n\n可见,对于n-1维指针类型的指针,它的活跃范围是一个n维数组。\n\n指针的定义很单纯,一个指针变量仅仅包含所指向数据的类型这么一个简单的属性;而数组的定义就不一样了,它承载了很多额外的属性:(以int arr[X1][X2]...[Xn]为例)\n\n&arr+i:类型是int (*)[X1]...[Xn],可以在1个arr[X1][X2]..[Xn]的n维数组之间挪动,所以&arr+1就会跳出arr的整个n维数组围\narr+i:类型是int (*)[X2]...[Xn],可以在X1个arr[X2]..[Xn]的n-1维数组之间挪动\narr[i]:类型是int (*)[X3]...[Xn],固定到上述X1个arr[X2]..[Xn]的n-1维数组中的某一个,只活跃在其内部。也就是说,在X2个arr[X3]..[Xn]的n-2维数组之间挪动\narr[i][j]:依此类推。。。\n\n\n理解了这些,再回头看本文给出的代码示例,就很好理解了:\n\narr的类型是int (*)[3],&arr的类型是int (*)[2][3]\narr[0]的类型是int *,&arr[0]的类型是int (*)[3]\narr[0][0]的类型是int,&arr[0][0]的类型是int *\n\n\n可以认为,数组定义一套自己的东西,但是留出了一个接口开放给指针。这样,数组才得以以指针形式被访问(使用)了。。。\n\n![](https://cdn.steemitimages.com/DQmRWd9LhEK2sv4eLtHiAwRPe9PnnJ99LcGLSxDjg4pmgLc/image.png)",
      "json_metadata": "{\"tags\":[\"program\",\"include\"],\"image\":[\"https://cdn.steemitimages.com/DQmRWd9LhEK2sv4eLtHiAwRPe9PnnJ99LcGLSxDjg4pmgLc/image.png\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
dockerqiupdated their account properties
2018/09/22 09:10:39
accountdockerqi
memo keySTM8W821Y6EWCKbNoi41C6a3rgi7i7DzhLpSf6D21w1q24SWZ4cSg
json metadata{"profile":{"profile_image":"https://cdn.steemitimages.com/DQmWZ52Tg2qPQydeJAc9QrTejAMZyFVw1tYC8xbCmZ1rBfH/%E5%9B%BE%E7%89%87912d2581da820d8e8a3234da8b8ad0e5.png","name":"DOCKERQI"}}
Transaction InfoBlock #26163452/Trx eaba0780406eec8e1a76215285b323eaa0ccb007
View Raw JSON Data
{
  "trx_id": "eaba0780406eec8e1a76215285b323eaa0ccb007",
  "block": 26163452,
  "trx_in_block": 22,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-09-22T09:10:39",
  "op": [
    "account_update",
    {
      "account": "dockerqi",
      "memo_key": "STM8W821Y6EWCKbNoi41C6a3rgi7i7DzhLpSf6D21w1q24SWZ4cSg",
      "json_metadata": "{\"profile\":{\"profile_image\":\"https://cdn.steemitimages.com/DQmWZ52Tg2qPQydeJAc9QrTejAMZyFVw1tYC8xbCmZ1rBfH/%E5%9B%BE%E7%89%87912d2581da820d8e8a3234da8b8ad0e5.png\",\"name\":\"DOCKERQI\"}}"
    }
  ]
}
steemdelegated 18.493 SP to @dockerqi
2018/09/22 09:06:30
delegatorsteem
delegateedockerqi
vesting shares30114.408980 VESTS
Transaction InfoBlock #26163369/Trx d8a74b6fda24c802d7c2a53eabf29c1aa9ac602f
View Raw JSON Data
{
  "trx_id": "d8a74b6fda24c802d7c2a53eabf29c1aa9ac602f",
  "block": 26163369,
  "trx_in_block": 22,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-09-22T09:06:30",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "dockerqi",
      "vesting_shares": "30114.408980 VESTS"
    }
  ]
}
steemcreated a new account: @dockerqi
2018/09/22 09:05:36
fee0.100 STEEM
delegation30690.000000 VESTS
creatorsteem
new account namedockerqi
owner{"weight_threshold":1,"account_auths":[],"key_auths":[["STM7kvwN4UpAFMYMQJ48B45BtofUktKZbEPikjqcSMai767U5sGbm",1]]}
active{"weight_threshold":1,"account_auths":[],"key_auths":[["STM4wEQSjfZSyz7Wnn6sYhAT4HQMeG1bKcF42vwwWhDEsmeDPTPu2",1]]}
posting{"weight_threshold":1,"account_auths":[],"key_auths":[["STM6tjJG7X1wZonKkM9zRBE37e2q7VVFJgYLwEbihGzsNGwuc97Mq",1]]}
memo keySTM8W821Y6EWCKbNoi41C6a3rgi7i7DzhLpSf6D21w1q24SWZ4cSg
json metadata{}
extensions[]
Transaction InfoBlock #26163351/Trx e0a11ef36496af2be63a7dddc5ce3fea41d3903f
View Raw JSON Data
{
  "trx_id": "e0a11ef36496af2be63a7dddc5ce3fea41d3903f",
  "block": 26163351,
  "trx_in_block": 15,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-09-22T09:05:36",
  "op": [
    "account_create_with_delegation",
    {
      "fee": "0.100 STEEM",
      "delegation": "30690.000000 VESTS",
      "creator": "steem",
      "new_account_name": "dockerqi",
      "owner": {
        "weight_threshold": 1,
        "account_auths": [],
        "key_auths": [
          [
            "STM7kvwN4UpAFMYMQJ48B45BtofUktKZbEPikjqcSMai767U5sGbm",
            1
          ]
        ]
      },
      "active": {
        "weight_threshold": 1,
        "account_auths": [],
        "key_auths": [
          [
            "STM4wEQSjfZSyz7Wnn6sYhAT4HQMeG1bKcF42vwwWhDEsmeDPTPu2",
            1
          ]
        ]
      },
      "posting": {
        "weight_threshold": 1,
        "account_auths": [],
        "key_auths": [
          [
            "STM6tjJG7X1wZonKkM9zRBE37e2q7VVFJgYLwEbihGzsNGwuc97Mq",
            1
          ]
        ]
      },
      "memo_key": "STM8W821Y6EWCKbNoi41C6a3rgi7i7DzhLpSf6D21w1q24SWZ4cSg",
      "json_metadata": "{}",
      "extensions": []
    }
  ]
}

Account Metadata

POSTING JSON METADATA
profile{"profile_image":"https://cdn.steemitimages.com/DQmWZ52Tg2qPQydeJAc9QrTejAMZyFVw1tYC8xbCmZ1rBfH/%E5%9B%BE%E7%89%87912d2581da820d8e8a3234da8b8ad0e5.png","name":"DOCKERQI","cover_image":"https://cdn.steemitimages.com/DQmWZ52Tg2qPQydeJAc9QrTejAMZyFVw1tYC8xbCmZ1rBfH/%E5%9B%BE%E7%89%87912d2581da820d8e8a3234da8b8ad0e5.png","about":"Simple freedom"}
JSON METADATA
profile{"profile_image":"https://cdn.steemitimages.com/DQmWZ52Tg2qPQydeJAc9QrTejAMZyFVw1tYC8xbCmZ1rBfH/%E5%9B%BE%E7%89%87912d2581da820d8e8a3234da8b8ad0e5.png","name":"DOCKERQI","cover_image":"https://cdn.steemitimages.com/DQmWZ52Tg2qPQydeJAc9QrTejAMZyFVw1tYC8xbCmZ1rBfH/%E5%9B%BE%E7%89%87912d2581da820d8e8a3234da8b8ad0e5.png","about":"Simple freedom"}
{
  "posting_json_metadata": {
    "profile": {
      "profile_image": "https://cdn.steemitimages.com/DQmWZ52Tg2qPQydeJAc9QrTejAMZyFVw1tYC8xbCmZ1rBfH/%E5%9B%BE%E7%89%87912d2581da820d8e8a3234da8b8ad0e5.png",
      "name": "DOCKERQI",
      "cover_image": "https://cdn.steemitimages.com/DQmWZ52Tg2qPQydeJAc9QrTejAMZyFVw1tYC8xbCmZ1rBfH/%E5%9B%BE%E7%89%87912d2581da820d8e8a3234da8b8ad0e5.png",
      "about": "Simple freedom"
    }
  },
  "json_metadata": {
    "profile": {
      "profile_image": "https://cdn.steemitimages.com/DQmWZ52Tg2qPQydeJAc9QrTejAMZyFVw1tYC8xbCmZ1rBfH/%E5%9B%BE%E7%89%87912d2581da820d8e8a3234da8b8ad0e5.png",
      "name": "DOCKERQI",
      "cover_image": "https://cdn.steemitimages.com/DQmWZ52Tg2qPQydeJAc9QrTejAMZyFVw1tYC8xbCmZ1rBfH/%E5%9B%BE%E7%89%87912d2581da820d8e8a3234da8b8ad0e5.png",
      "about": "Simple freedom"
    }
  }
}

Auth Keys

Owner
Single Signature
Public Keys
STM7kvwN4UpAFMYMQJ48B45BtofUktKZbEPikjqcSMai767U5sGbm1/1
Active
Single Signature
Public Keys
STM4wEQSjfZSyz7Wnn6sYhAT4HQMeG1bKcF42vwwWhDEsmeDPTPu21/1
Posting
Single Signature
Public Keys
STM6tjJG7X1wZonKkM9zRBE37e2q7VVFJgYLwEbihGzsNGwuc97Mq1/1
App Permissions
Memo
STM8W821Y6EWCKbNoi41C6a3rgi7i7DzhLpSf6D21w1q24SWZ4cSg
{
  "owner": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM7kvwN4UpAFMYMQJ48B45BtofUktKZbEPikjqcSMai767U5sGbm",
        1
      ]
    ]
  },
  "active": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM4wEQSjfZSyz7Wnn6sYhAT4HQMeG1bKcF42vwwWhDEsmeDPTPu2",
        1
      ]
    ]
  },
  "posting": {
    "weight_threshold": 1,
    "account_auths": [
      [
        "dtube.app",
        1
      ]
    ],
    "key_auths": [
      [
        "STM6tjJG7X1wZonKkM9zRBE37e2q7VVFJgYLwEbihGzsNGwuc97Mq",
        1
      ]
    ]
  },
  "memo": "STM8W821Y6EWCKbNoi41C6a3rgi7i7DzhLpSf6D21w1q24SWZ4cSg"
}

Witness Votes

0 / 30
No active witness votes.
[]