Ecoer Logo

@sangsir

25

A wonderful flower in the art world / 艺术界的一朵奇葩

steemit.com/@sangsir
VOTING POWER100.00%
DOWNVOTE POWER100.00%
RESOURCE CREDITS100.00%
REPUTATION PROGRESS0.00%
Net Worth
0.106USD
STEEM
0.000STEEM
SBD
0.140SBD
Effective Power
5.010SP
├── Own SP
0.662SP
└── Incoming Deleg
+4.348SP

Detailed Balance

STEEM
balance
0.000STEEM
market_balance
0.000STEEM
savings_balance
0.000STEEM
reward_steem_balance
0.000STEEM
STEEM POWER
Own SP
0.662SP
Delegated Out
0.000SP
Delegation In
4.348SP
Effective Power
5.010SP
Reward SP (pending)
0.000SP
SBD
sbd_balance
0.140SBD
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": "1076.625261 VESTS",
  "delegated_vesting_shares": "0.000000 VESTS",
  "received_vesting_shares": "7067.034545 VESTS",
  "sbd_balance": "0.140 SBD",
  "savings_sbd_balance": "0.000 SBD",
  "reward_sbd_balance": "0.000 SBD",
  "conversions": []
}

Account Info

namesangsir
id652374
rank651,469
reputation522500189
created2018-01-24T00:36:45
recovery_accountsteem
proxyNone
post_count6
comment_count0
lifetime_vote_count0
witnesses_voted_for0
last_post2018-03-10T16:59:00
last_root_post2018-03-10T16:59:00
last_vote_time2018-03-10T16:59:00
proxied_vsf_votes0, 0, 0, 0
can_vote1
voting_power0
delayed_votes0
balance0.000 STEEM
savings_balance0.000 STEEM
sbd_balance0.140 SBD
savings_sbd_balance0.000 SBD
vesting_shares1076.625261 VESTS
delegated_vesting_shares0.000000 VESTS
received_vesting_shares7067.034545 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-01-24T13:30:36
minedNo
sbd_seconds0
sbd_last_interest_payment1970-01-01T00:00:00
savings_sbd_last_interest_payment1970-01-01T00:00:00
{
  "id": 652374,
  "name": "sangsir",
  "owner": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM6Yyi6RApBW43LEBKFb9rXj7tumhikdEcmeHQZENKShKyHETXTb",
        1
      ]
    ]
  },
  "active": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM6BQxRk2X4FoFQKAs1a3G1qDX6Z7R4w5rFT1cW1dHLg5RDUpUGY",
        1
      ]
    ]
  },
  "posting": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM6XmSkHhMLxSgWad89YCLFRbQW7G3d1HnPsGHT6GYLWr5R1BEjT",
        1
      ]
    ]
  },
  "memo_key": "STM7v1pSEBhYbvF6U8Xh1WY65mSgFMq1ratRSPwwgU1ef7KZVUzfp",
  "json_metadata": "{\"profile\":{\"profile_image\":\"https://ww2.sinaimg.cn/large/005zWjpnly1fnrzyet5tfj30hs0hsdg8\",\"cover_image\":\"https://ww2.sinaimg.cn/large/005zWjpnly1fnrzz302q7j31hc0xc1kx\",\"name\":\"SangSir\",\"location\":\"Shandong, China\",\"website\":\"https://sangsir.com\",\"about\":\"A wonderful flower in the art world / 艺术界的一朵奇葩\"}}",
  "posting_json_metadata": "{\"profile\":{\"profile_image\":\"https://ww2.sinaimg.cn/large/005zWjpnly1fnrzyet5tfj30hs0hsdg8\",\"cover_image\":\"https://ww2.sinaimg.cn/large/005zWjpnly1fnrzz302q7j31hc0xc1kx\",\"name\":\"SangSir\",\"location\":\"Shandong, China\",\"website\":\"https://sangsir.com\",\"about\":\"A wonderful flower in the art world / 艺术界的一朵奇葩\"}}",
  "proxy": "",
  "last_owner_update": "1970-01-01T00:00:00",
  "last_account_update": "2018-01-24T13:30:36",
  "created": "2018-01-24T00:36:45",
  "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": 1779084519
  },
  "downvote_manabar": {
    "current_mana": 2035914951,
    "last_update_time": 1779084519
  },
  "voting_power": 0,
  "balance": "0.000 STEEM",
  "savings_balance": "0.000 STEEM",
  "sbd_balance": "0.140 SBD",
  "sbd_seconds": "0",
  "sbd_seconds_last_update": "2018-03-10T17: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": "1076.625261 VESTS",
  "delegated_vesting_shares": "0.000000 VESTS",
  "received_vesting_shares": "7067.034545 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": 51,
  "proxied_vsf_votes": [
    0,
    0,
    0,
    0
  ],
  "witnesses_voted_for": 0,
  "last_post": "2018-03-10T16:59:00",
  "last_root_post": "2018-03-10T16:59:00",
  "last_vote_time": "2018-03-10T16:59:00",
  "post_bandwidth": 0,
  "pending_claimed_accounts": 0,
  "vesting_balance": "0.000 STEEM",
  "reputation": 522500189,
  "transfer_history": [],
  "market_history": [],
  "post_history": [],
  "vote_history": [],
  "other_history": [],
  "witness_votes": [],
  "tags_usage": [],
  "guest_bloggers": [],
  "rank": 651469
}

Withdraw Routes

IncomingOutgoing
Empty
Empty
{
  "incoming": [],
  "outgoing": []
}
From Date
To Date
steemdelegated 4.348 SP to @sangsir
2026/05/18 06:08:39
delegatorsteem
delegateesangsir
vesting shares7067.034545 VESTS
Transaction InfoBlock #106150486/Trx b27ff5866ca48aa03922824580c21cd7020be17a
View Raw JSON Data
{
  "trx_id": "b27ff5866ca48aa03922824580c21cd7020be17a",
  "block": 106150486,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2026-05-18T06:08:39",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "sangsir",
      "vesting_shares": "7067.034545 VESTS"
    }
  ]
}
steemdelegated 2.679 SP to @sangsir
2026/05/13 03:47:57
delegatorsteem
delegateesangsir
vesting shares4354.824140 VESTS
Transaction InfoBlock #106004394/Trx 4c2c4f460892cdee3ebacac86c90a4b272c47089
View Raw JSON Data
{
  "trx_id": "4c2c4f460892cdee3ebacac86c90a4b272c47089",
  "block": 106004394,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2026-05-13T03:47:57",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "sangsir",
      "vesting_shares": "4354.824140 VESTS"
    }
  ]
}
steemdelegated 4.356 SP to @sangsir
2026/04/26 05:20:33
delegatorsteem
delegateesangsir
vesting shares7079.550301 VESTS
Transaction InfoBlock #105517973/Trx 59f04c0b1d276074706900be1afb9ee875ea8cc6
View Raw JSON Data
{
  "trx_id": "59f04c0b1d276074706900be1afb9ee875ea8cc6",
  "block": 105517973,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2026-04-26T05:20:33",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "sangsir",
      "vesting_shares": "7079.550301 VESTS"
    }
  ]
}
steemdelegated 2.705 SP to @sangsir
2026/01/23 23:40:00
delegatorsteem
delegateesangsir
vesting shares4396.370959 VESTS
Transaction InfoBlock #102870817/Trx 729ab7bac45c5531d630719b53befedb087c3728
View Raw JSON Data
{
  "trx_id": "729ab7bac45c5531d630719b53befedb087c3728",
  "block": 102870817,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2026-01-23T23:40:00",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "sangsir",
      "vesting_shares": "4396.370959 VESTS"
    }
  ]
}
steemdelegated 2.806 SP to @sangsir
2024/12/17 18:49:54
delegatorsteem
delegateesangsir
vesting shares4560.590156 VESTS
Transaction InfoBlock #91317027/Trx 3df5a0e5c1ac866fda7be3c2e131629a9ae8e25b
View Raw JSON Data
{
  "trx_id": "3df5a0e5c1ac866fda7be3c2e131629a9ae8e25b",
  "block": 91317027,
  "trx_in_block": 4,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2024-12-17T18:49:54",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "sangsir",
      "vesting_shares": "4560.590156 VESTS"
    }
  ]
}
steemdelegated 2.910 SP to @sangsir
2023/11/14 10:31:27
delegatorsteem
delegateesangsir
vesting shares4729.723688 VESTS
Transaction InfoBlock #79871187/Trx 591df8bf3abc177b354da3b598dd224ef7351e95
View Raw JSON Data
{
  "trx_id": "591df8bf3abc177b354da3b598dd224ef7351e95",
  "block": 79871187,
  "trx_in_block": 10,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2023-11-14T10:31:27",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "sangsir",
      "vesting_shares": "4729.723688 VESTS"
    }
  ]
}
steemdelegated 4.717 SP to @sangsir
2023/09/22 10:13:51
delegatorsteem
delegateesangsir
vesting shares7666.632474 VESTS
Transaction InfoBlock #78362673/Trx 86eeba815ccd666972ad62e61741ea5727410cb1
View Raw JSON Data
{
  "trx_id": "86eeba815ccd666972ad62e61741ea5727410cb1",
  "block": 78362673,
  "trx_in_block": 5,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2023-09-22T10:13:51",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "sangsir",
      "vesting_shares": "7666.632474 VESTS"
    }
  ]
}
steemdelegated 4.853 SP to @sangsir
2022/11/03 17:42:24
delegatorsteem
delegateesangsir
vesting shares7888.683912 VESTS
Transaction InfoBlock #69120431/Trx dbd6b9c4104436b61d46957f5f5435f6452f61c9
View Raw JSON Data
{
  "trx_id": "dbd6b9c4104436b61d46957f5f5435f6452f61c9",
  "block": 69120431,
  "trx_in_block": 4,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-11-03T17:42:24",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "sangsir",
      "vesting_shares": "7888.683912 VESTS"
    }
  ]
}
steemdelegated 4.989 SP to @sangsir
2022/01/17 22:54:57
delegatorsteem
delegateesangsir
vesting shares8108.791513 VESTS
Transaction InfoBlock #60823692/Trx c13c2a1ea7a1e093a27839c777c4e525144b52aa
View Raw JSON Data
{
  "trx_id": "c13c2a1ea7a1e093a27839c777c4e525144b52aa",
  "block": 60823692,
  "trx_in_block": 21,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-01-17T22:54:57",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "sangsir",
      "vesting_shares": "8108.791513 VESTS"
    }
  ]
}
steemdelegated 5.102 SP to @sangsir
2021/06/14 06:06:18
delegatorsteem
delegateesangsir
vesting shares8292.985801 VESTS
Transaction InfoBlock #54614027/Trx dfbe579040f292c028dc61ac33e6cd21a328908b
View Raw JSON Data
{
  "trx_id": "dfbe579040f292c028dc61ac33e6cd21a328908b",
  "block": 54614027,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2021-06-14T06:06:18",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "sangsir",
      "vesting_shares": "8292.985801 VESTS"
    }
  ]
}
steemdelegated 5.217 SP to @sangsir
2020/12/11 16:18:42
delegatorsteem
delegateesangsir
vesting shares8480.407775 VESTS
Transaction InfoBlock #49361294/Trx 8b5658cbbeea61b257ecfdbc8fa6cafea7b53269
View Raw JSON Data
{
  "trx_id": "8b5658cbbeea61b257ecfdbc8fa6cafea7b53269",
  "block": 49361294,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-12-11T16:18:42",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "sangsir",
      "vesting_shares": "8480.407775 VESTS"
    }
  ]
}
steemdelegated 1.177 SP to @sangsir
2020/12/06 09:54:27
delegatorsteem
delegateesangsir
vesting shares1912.543513 VESTS
Transaction InfoBlock #49212819/Trx d0f9b6e538c476d009ecf74ad958a87027ffa379
View Raw JSON Data
{
  "trx_id": "d0f9b6e538c476d009ecf74ad958a87027ffa379",
  "block": 49212819,
  "trx_in_block": 5,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-12-06T09:54:27",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "sangsir",
      "vesting_shares": "1912.543513 VESTS"
    }
  ]
}
steemdelegated 5.221 SP to @sangsir
2020/12/05 19:56:27
delegatorsteem
delegateesangsir
vesting shares8486.615629 VESTS
Transaction InfoBlock #49196377/Trx 57f27538ec69fbb98d134db6f0fd1eec774bf4c9
View Raw JSON Data
{
  "trx_id": "57f27538ec69fbb98d134db6f0fd1eec774bf4c9",
  "block": 49196377,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-12-05T19:56:27",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "sangsir",
      "vesting_shares": "8486.615629 VESTS"
    }
  ]
}
steemdelegated 1.181 SP to @sangsir
2020/11/03 02:24:36
delegatorsteem
delegateesangsir
vesting shares1920.017158 VESTS
Transaction InfoBlock #48270484/Trx 8cf6fff0b7b93f4a2e8c2c8142eff94570e11d19
View Raw JSON Data
{
  "trx_id": "8cf6fff0b7b93f4a2e8c2c8142eff94570e11d19",
  "block": 48270484,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-11-03T02:24:36",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "sangsir",
      "vesting_shares": "1920.017158 VESTS"
    }
  ]
}
steemdelegated 5.346 SP to @sangsir
2020/05/09 10:57:24
delegatorsteem
delegateesangsir
vesting shares8689.420988 VESTS
Transaction InfoBlock #43223144/Trx f88aebf96f8f07b85777fad7a6d72b81cfc394e2
View Raw JSON Data
{
  "trx_id": "f88aebf96f8f07b85777fad7a6d72b81cfc394e2",
  "block": 43223144,
  "trx_in_block": 14,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-05-09T10:57:24",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "sangsir",
      "vesting_shares": "8689.420988 VESTS"
    }
  ]
}
steemdelegated 1.202 SP to @sangsir
2020/05/08 15:20:24
delegatorsteem
delegateesangsir
vesting shares1953.311140 VESTS
Transaction InfoBlock #43200163/Trx 847c666a423bdaa13234f4443d2518c48ae6283d
View Raw JSON Data
{
  "trx_id": "847c666a423bdaa13234f4443d2518c48ae6283d",
  "block": 43200163,
  "trx_in_block": 34,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-05-08T15:20:24",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "sangsir",
      "vesting_shares": "1953.311140 VESTS"
    }
  ]
}
steemdelegated 5.347 SP to @sangsir
2020/05/07 15:30:18
delegatorsteem
delegateesangsir
vesting shares8690.283435 VESTS
Transaction InfoBlock #43172236/Trx 5d4662d5e1d711bc43c3a41733d090e457b786fc
View Raw JSON Data
{
  "trx_id": "5d4662d5e1d711bc43c3a41733d090e457b786fc",
  "block": 43172236,
  "trx_in_block": 28,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-05-07T15:30:18",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "sangsir",
      "vesting_shares": "8690.283435 VESTS"
    }
  ]
}
2020/01/24 02:48:18
parent authorsangsir
parent permlinkqq
authorsteemitboard
permlinksteemitboard-notify-sangsir-20200124t024818000z
title
bodyCongratulations @sangsir! You received a personal award! <table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@sangsir/birthday2.png</td><td>Happy Birthday! - You are on the Steem blockchain for 2 years!</td></tr></table> <sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@sangsir) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=sangsir)_</sub> ###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!
json metadata{"image":["https://steemitboard.com/img/notify.png"]}
Transaction InfoBlock #40196812/Trx 3bb9558e6125679c1665a0885ee26b9151c08db9
View Raw JSON Data
{
  "trx_id": "3bb9558e6125679c1665a0885ee26b9151c08db9",
  "block": 40196812,
  "trx_in_block": 9,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-01-24T02:48:18",
  "op": [
    "comment",
    {
      "parent_author": "sangsir",
      "parent_permlink": "qq",
      "author": "steemitboard",
      "permlink": "steemitboard-notify-sangsir-20200124t024818000z",
      "title": "",
      "body": "Congratulations @sangsir! You received a personal award!\n\n<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@sangsir/birthday2.png</td><td>Happy Birthday! - You are on the Steem blockchain for 2 years!</td></tr></table>\n\n<sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@sangsir) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=sangsir)_</sub>\n\n\n###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!",
      "json_metadata": "{\"image\":[\"https://steemitboard.com/img/notify.png\"]}"
    }
  ]
}
steemdelegated 5.467 SP to @sangsir
2019/06/02 20:39:30
delegatorsteem
delegateesangsir
vesting shares8885.627939 VESTS
Transaction InfoBlock #33456715/Trx 120df6fee1e2880cdf48101c9a8cbc1b55a9f9f6
View Raw JSON Data
{
  "trx_id": "120df6fee1e2880cdf48101c9a8cbc1b55a9f9f6",
  "block": 33456715,
  "trx_in_block": 15,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-06-02T20:39:30",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "sangsir",
      "vesting_shares": "8885.627939 VESTS"
    }
  ]
}
2019/01/24 04:55:27
parent authorsangsir
parent permlinkqq
authorsteemitboard
permlinksteemitboard-notify-sangsir-20190124t045526000z
title
bodyCongratulations @sangsir! You received a personal award! <table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@sangsir/birthday1.png</td><td>Happy Birthday! - You are on the Steem blockchain for 1 year!</td></tr></table> <sub>_[Click here to view your Board](https://steemitboard.com/@sangsir)_</sub> > Support [SteemitBoard's project](https://steemit.com/@steemitboard)! **[Vote for its witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1)** and **get one more award**!
json metadata{"image":["https://steemitboard.com/img/notify.png"]}
Transaction InfoBlock #29726833/Trx e19f9f6820e0622ce7fe25d5954fd0da2e51aa0c
View Raw JSON Data
{
  "trx_id": "e19f9f6820e0622ce7fe25d5954fd0da2e51aa0c",
  "block": 29726833,
  "trx_in_block": 6,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-01-24T04:55:27",
  "op": [
    "comment",
    {
      "parent_author": "sangsir",
      "parent_permlink": "qq",
      "author": "steemitboard",
      "permlink": "steemitboard-notify-sangsir-20190124t045526000z",
      "title": "",
      "body": "Congratulations @sangsir! You received a personal award!\n\n<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@sangsir/birthday1.png</td><td>Happy Birthday! - You are on the Steem blockchain for 1 year!</td></tr></table>\n\n<sub>_[Click here to view your Board](https://steemitboard.com/@sangsir)_</sub>\n\n\n> Support [SteemitBoard's project](https://steemit.com/@steemitboard)! **[Vote for its witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1)** and **get one more award**!",
      "json_metadata": "{\"image\":[\"https://steemitboard.com/img/notify.png\"]}"
    }
  ]
}
steemdelegated 5.589 SP to @sangsir
2018/06/09 17:44:00
delegatorsteem
delegateesangsir
vesting shares9084.902349 VESTS
Transaction InfoBlock #23177442/Trx f196eda644589d7a523a1456532ffbf536dbcddf
View Raw JSON Data
{
  "trx_id": "f196eda644589d7a523a1456532ffbf536dbcddf",
  "block": 23177442,
  "trx_in_block": 44,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-06-09T17:44:00",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "sangsir",
      "vesting_shares": "9084.902349 VESTS"
    }
  ]
}
steemdelegated 18.147 SP to @sangsir
2018/04/15 05:10:21
delegatorsteem
delegateesangsir
vesting shares29496.138814 VESTS
Transaction InfoBlock #21579724/Trx f0ae50ee4d750a50e40478e5a0a7cf1a1fc499b1
View Raw JSON Data
{
  "trx_id": "f0ae50ee4d750a50e40478e5a0a7cf1a1fc499b1",
  "block": 21579724,
  "trx_in_block": 23,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-15T05:10:21",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "sangsir",
      "vesting_shares": "29496.138814 VESTS"
    }
  ]
}
joujousupvoted (100.00%) @sangsir / qq
2018/03/10 18:50:36
voterjoujous
authorsangsir
permlinkqq
weight10000 (100.00%)
Transaction InfoBlock #20560543/Trx a4a97ac7a5f7b113c6108233d6a3bcae0ff61807
View Raw JSON Data
{
  "trx_id": "a4a97ac7a5f7b113c6108233d6a3bcae0ff61807",
  "block": 20560543,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-10T18:50:36",
  "op": [
    "vote",
    {
      "voter": "joujous",
      "author": "sangsir",
      "permlink": "qq",
      "weight": 10000
    }
  ]
}
2018/03/10 17:01:33
parent authorsangsir
parent permlinkqq
authorresteemsupport
permlinkre-qq-20180310t170121
title
bodyHello sangsir! Congratulations! This post has been randomly Resteemed! For a chance to get more of your content resteemed join the [Steem Engine Team](https://steemit.com/steemit/@steemengineteam/join-steemengine-today)
json metadata
Transaction InfoBlock #20558367/Trx 8a29107f1132360e932e05230775bd3f7881cb14
View Raw JSON Data
{
  "trx_id": "8a29107f1132360e932e05230775bd3f7881cb14",
  "block": 20558367,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-10T17:01:33",
  "op": [
    "comment",
    {
      "parent_author": "sangsir",
      "parent_permlink": "qq",
      "author": "resteemsupport",
      "permlink": "re-qq-20180310t170121",
      "title": "",
      "body": "Hello sangsir!\n\nCongratulations! This post has been randomly Resteemed! For a chance to get more of your content resteemed join the [Steem Engine Team](https://steemit.com/steemit/@steemengineteam/join-steemengine-today)",
      "json_metadata": ""
    }
  ]
}
sangsirclaimed reward balance: 0.140 SBD, 0.033 SP
2018/03/10 17:00:00
accountsangsir
reward steem0.000 STEEM
reward sbd0.140 SBD
reward vests53.197936 VESTS
Transaction InfoBlock #20558336/Trx 8c99093cbf8c0c5fb391730da934b42e410f59e2
View Raw JSON Data
{
  "trx_id": "8c99093cbf8c0c5fb391730da934b42e410f59e2",
  "block": 20558336,
  "trx_in_block": 47,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-10T17:00:00",
  "op": [
    "claim_reward_balance",
    {
      "account": "sangsir",
      "reward_steem": "0.000 STEEM",
      "reward_sbd": "0.140 SBD",
      "reward_vests": "53.197936 VESTS"
    }
  ]
}
sangsirupvoted (100.00%) @sangsir / qq
2018/03/10 16:59:00
votersangsir
authorsangsir
permlinkqq
weight10000 (100.00%)
Transaction InfoBlock #20558316/Trx 0c3053023518d44829fa5b59046716759580036a
View Raw JSON Data
{
  "trx_id": "0c3053023518d44829fa5b59046716759580036a",
  "block": 20558316,
  "trx_in_block": 40,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-10T16:59:00",
  "op": [
    "vote",
    {
      "voter": "sangsir",
      "author": "sangsir",
      "permlink": "qq",
      "weight": 10000
    }
  ]
}
sangsirpublished a new post: qq
2018/03/10 16:59:00
parent author
parent permlinkphp
authorsangsir
permlinkqq
title制作QQ微信支付宝三合一收款码
body前言 -- 最近在逛博客时,发现很多博客都带了打赏功能,虽说打赏的人可能很少,但始终是一份心意,能让博主知道自己写的文章有用,能够帮助到人。所以,我也想加一个打赏功能~ 分析 -- 但在github逛了一圈之后发现,打赏插件基本上千篇一律的:QQ扫码/微信扫码/支付宝扫码。 ![按钮捐赠][1] 有的是点击每个按钮出现每个收款码 ![二维码捐赠][2] 有的则是每个收款码全部展现出来 微信扫这个,支付宝扫那个,不仅要加载多张二维码,还要加css/js让它变的好看,作为一个又懒又不想写这些东西的程序猿来说,这可不行。 那能不能把QQ微信支付宝三合一,只需要扫一个收款码就行呢? 这里涉及到一个知识点,则是User-Agent,大厂的webview都会携带自家的UA信息,比如说: QQ:`MQQBrowser/6.2 TBS/043221 Safari/537.36 QQ/7.0.0.3135` 微信:`MQQBrowser/6.2 TBS 043220 Safari/537.36 MicroMessenger/6.5.8.1060 NetType/4G Language/zh_CN` 支付宝:`UCBrowser/11.5.0.939 UCBS/2.10.1.6 Mobile Safari/537.36 AliApp(AP/10.0.15.051805) AlipayClient/10.0.15.051805 Language/zh-Hans` 这样就很轻松区分是QQ还是微信还是支付宝扫码了: User-Agent 含有 `QQ/` 为QQ User-Agent 含有 `MicroMessenger` 为微信 User-Agent 含有 `AlipayClient` 为支付宝 既然能够区分每个软件,那就可以通过自建一个网址,通过二维码生成扫描这个网址后,判断浏览器的UA,来分发不同的收款码 大致的流程则为: 客户端扫码 -> 服务端根据 User-Agent 判断客户端类型 -> 分别返回不同的处理 开始折腾 -- 首先解码QQ、微信和支付宝生成的收款码,可以[去这里][3]在线解码。 QQ:`https://i.qianbao.qq.com/wallet/sqrcode.htm?m=tenpay&a=1&u=17878127&ac=E04BE442991E7FFED28B3B5C3E187148F063DC3C6DACAD2983C87B482FC9E7AD&n=薛定谔的猫&f=wallet` (https 协议,无法唤醒QQ) 支付宝:`HTTPS://QR.ALIPAY.COM/FKX03549OW666ME7BXWF7A` (https 协议,可直接唤醒支付宝 APP) 微信:`wxp://f2f09hjzo72AAYEITIBaolV-3cvGrDjE0q7k` (微信自己的支付协议,无法唤醒微信) 下面就可以直接写代码了,判断 User-Agent 如果是支付宝直接跳转支付宝链接,如果是QQ和微信则跳转QQ和微信的链接。 但由于QQ与微信无法直接唤醒APP,所以直接输出一个QQ与微信的二维码,然后长按扫码实现支付。 代码如下: ```php <?php $ua = $_SERVER['HTTP_USER_AGENT']; if (strpos($ua, 'MicroMessenger')) { $type = 'wepay'; $name = '微信支付'; //微信支付链接 $url = 'wxp://f2f09hjzo72AAYEITIBaolV-3cvGrDjE0q7k'; $icon_img = '<img src="http://ww2.sinaimg.cn/large/005zWjpngy1fojrwgr20oj303k03kglg.jpg" width="48px" height="48px" alt="'.$name.'">'; } elseif (strpos($ua, 'AlipayClient')) { //支付宝链接 $url = 'HTTPS://QR.ALIPAY.COM/FKX03479QJ0RVOS3UJLQAE'; header('location: ' . $url); } elseif (strpos($ua, 'QQ/')) { $type = 'qq'; $name = 'QQ钱包支付'; //QQ钱包支付链接 $url = 'https://i.qianbao.qq.com/wallet/sqrcode.htm?m=tenpay&a=1&u=17878127&ac=E04BE442991E7FFED28B3B5C3E187148F063DC3C6DACAD2983C87B482FC9E7AD&n=薛定谔的猫&f=wallet'; $icon_img = '<img src="http://ww2.sinaimg.cn/large/005zWjpngy1fojrvmp427j303k03kjrb.jpg" width="48px" height="48px" alt="'.$name.'">'; } else { $type = 'other'; $name = '打赏作者'; $url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; $icon_img = '<img src="http://ww2.sinaimg.cn/large/005zWjpngy1fojs089x6tj303k03kjr6.jpg" width="48px" height="48px" alt="'.$name.'">'; } $qr_img = '<img src="http://qr.liantu.com/api.php?text='.urlencode($url).'">'; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="renderer" content="webkit"> <meta http-equiv="X-UA-Compatible" content="IE=Edge, chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title><?=$name?></title> <style type="text/css"> * {margin: auto;padding: 0;border: 0;} html {-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%} body {font-family: -apple-system, SF UI Text, Arial, Microsoft YaHei, Hiragino Sans GB, WenQuanYi Micro Hei, sans-serif;color: #333;} img {max-width: 100%;} h3 {padding: 10px;} .container {text-align: center;} .title {padding: 2em 0;background-color: #fff;} .content {padding: 2em 1em;color: #fff;} .wepay {background-color: #23ac38;} .qq {background-color: #4c97d5;} .other {background-color: #ff7055;} </style> </head> <body class="<?=$type?>"> <div class="container"> <div class="title"><?=$icon_img?><h1><?=$name?></h1></div> <div class="content"><?=$type=='other'?$qr_img.'<h3>请使用支付宝、微信、QQ客户端扫码付款</h3>':$qr_img.'<h3>扫描或长按识别二维码,向TA付款</h3>'?></div> </div> </body> </html> ``` Demo演示 ------ 可以通过扫描文章底部的二维码进行测试,或点击下面的演示地址: [http://lab.sangsir.com/api/donate.php][4] ~~顺便打赏一下作者?~~ ------------- [1]: https://ww2.sinaimg.cn/large/005zWjpngy1fojtev99z9j308w0333yb.jpg [2]: https://ww2.sinaimg.cn/large/005zWjpngy1fojtevdjgpj30bd0c4aa4.jpg [3]: http://tool.oschina.net/qr?type=2 [4]: http://lab.sangsir.com/api/donate.php
json metadata{"tags":["php","cn"],"image":["https://ww2.sinaimg.cn/large/005zWjpngy1fojtev99z9j308w0333yb.jpg","https://ww2.sinaimg.cn/large/005zWjpngy1fojtevdjgpj30bd0c4aa4.jpg"],"links":["http://tool.oschina.net/qr?type=2","http://lab.sangsir.com/api/donate.php"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #20558316/Trx 0c3053023518d44829fa5b59046716759580036a
View Raw JSON Data
{
  "trx_id": "0c3053023518d44829fa5b59046716759580036a",
  "block": 20558316,
  "trx_in_block": 40,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-10T16:59:00",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "php",
      "author": "sangsir",
      "permlink": "qq",
      "title": "制作QQ微信支付宝三合一收款码",
      "body": "前言\n--\n\n最近在逛博客时,发现很多博客都带了打赏功能,虽说打赏的人可能很少,但始终是一份心意,能让博主知道自己写的文章有用,能够帮助到人。所以,我也想加一个打赏功能~\n\n分析\n--\n\n但在github逛了一圈之后发现,打赏插件基本上千篇一律的:QQ扫码/微信扫码/支付宝扫码。\n\n![按钮捐赠][1]\n\n有的是点击每个按钮出现每个收款码\n\n![二维码捐赠][2]\n\n有的则是每个收款码全部展现出来\n\n微信扫这个,支付宝扫那个,不仅要加载多张二维码,还要加css/js让它变的好看,作为一个又懒又不想写这些东西的程序猿来说,这可不行。\n\n那能不能把QQ微信支付宝三合一,只需要扫一个收款码就行呢?\n这里涉及到一个知识点,则是User-Agent,大厂的webview都会携带自家的UA信息,比如说:\n\nQQ:`MQQBrowser/6.2 TBS/043221 Safari/537.36 QQ/7.0.0.3135`\n微信:`MQQBrowser/6.2 TBS 043220 Safari/537.36 MicroMessenger/6.5.8.1060 NetType/4G Language/zh_CN`\n支付宝:`UCBrowser/11.5.0.939 UCBS/2.10.1.6 Mobile Safari/537.36 AliApp(AP/10.0.15.051805) AlipayClient/10.0.15.051805 Language/zh-Hans`\n\n这样就很轻松区分是QQ还是微信还是支付宝扫码了:\n\nUser-Agent 含有 `QQ/` 为QQ\nUser-Agent 含有 `MicroMessenger` 为微信\nUser-Agent 含有 `AlipayClient` 为支付宝\n\n既然能够区分每个软件,那就可以通过自建一个网址,通过二维码生成扫描这个网址后,判断浏览器的UA,来分发不同的收款码\n\n大致的流程则为:\n客户端扫码 -> 服务端根据 User-Agent 判断客户端类型 -> 分别返回不同的处理\n\n开始折腾\n--\n\n首先解码QQ、微信和支付宝生成的收款码,可以[去这里][3]在线解码。\n\nQQ:`https://i.qianbao.qq.com/wallet/sqrcode.htm?m=tenpay&a=1&u=17878127&ac=E04BE442991E7FFED28B3B5C3E187148F063DC3C6DACAD2983C87B482FC9E7AD&n=薛定谔的猫&f=wallet`\n(https 协议,无法唤醒QQ)\n支付宝:`HTTPS://QR.ALIPAY.COM/FKX03549OW666ME7BXWF7A`\n(https 协议,可直接唤醒支付宝 APP)\n微信:`wxp://f2f09hjzo72AAYEITIBaolV-3cvGrDjE0q7k`\n(微信自己的支付协议,无法唤醒微信)\n\n下面就可以直接写代码了,判断 User-Agent 如果是支付宝直接跳转支付宝链接,如果是QQ和微信则跳转QQ和微信的链接。\n\n但由于QQ与微信无法直接唤醒APP,所以直接输出一个QQ与微信的二维码,然后长按扫码实现支付。\n\n代码如下:\n```php\n<?php\n$ua = $_SERVER['HTTP_USER_AGENT'];\nif (strpos($ua, 'MicroMessenger')) {\n    $type = 'wepay';\n    $name = '微信支付';\n    //微信支付链接\n    $url = 'wxp://f2f09hjzo72AAYEITIBaolV-3cvGrDjE0q7k';\n    $icon_img = '<img src=\"http://ww2.sinaimg.cn/large/005zWjpngy1fojrwgr20oj303k03kglg.jpg\" width=\"48px\" height=\"48px\" alt=\"'.$name.'\">';\n}\nelseif (strpos($ua, 'AlipayClient')) {\n    //支付宝链接\n    $url = 'HTTPS://QR.ALIPAY.COM/FKX03479QJ0RVOS3UJLQAE';\n    header('location: ' . $url);\n}\nelseif (strpos($ua, 'QQ/')) {\n    $type = 'qq';\n    $name = 'QQ钱包支付';\n    //QQ钱包支付链接\n    $url = 'https://i.qianbao.qq.com/wallet/sqrcode.htm?m=tenpay&a=1&u=17878127&ac=E04BE442991E7FFED28B3B5C3E187148F063DC3C6DACAD2983C87B482FC9E7AD&n=薛定谔的猫&f=wallet';\n    $icon_img = '<img src=\"http://ww2.sinaimg.cn/large/005zWjpngy1fojrvmp427j303k03kjrb.jpg\" width=\"48px\" height=\"48px\" alt=\"'.$name.'\">';\n}\nelse {\n    $type = 'other';\n    $name = '打赏作者';\n    $url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];\n    $icon_img = '<img src=\"http://ww2.sinaimg.cn/large/005zWjpngy1fojs089x6tj303k03kjr6.jpg\" width=\"48px\" height=\"48px\" alt=\"'.$name.'\">';\n}\n$qr_img = '<img src=\"http://qr.liantu.com/api.php?text='.urlencode($url).'\">';\n?>\n<!DOCTYPE html>\n<html>\n<head>\n    <meta charset=\"utf-8\">\n    <meta name=\"renderer\" content=\"webkit\">\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge, chrome=1\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title><?=$name?></title>\n    <style type=\"text/css\">\n        * {margin: auto;padding: 0;border: 0;}\n        html {-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%}\n        body {font-family: -apple-system, SF UI Text, Arial, Microsoft YaHei, Hiragino Sans GB, WenQuanYi Micro Hei, sans-serif;color: #333;}\n        img {max-width: 100%;}\n        h3 {padding: 10px;}\n        .container {text-align: center;}\n        .title {padding: 2em 0;background-color: #fff;}\n        .content {padding: 2em 1em;color: #fff;}\n        .wepay {background-color: #23ac38;}\n        .qq {background-color: #4c97d5;}\n        .other {background-color: #ff7055;}\n    </style>\n</head>\n<body class=\"<?=$type?>\">\n    <div class=\"container\">\n        <div class=\"title\"><?=$icon_img?><h1><?=$name?></h1></div>\n        <div class=\"content\"><?=$type=='other'?$qr_img.'<h3>请使用支付宝、微信、QQ客户端扫码付款</h3>':$qr_img.'<h3>扫描或长按识别二维码,向TA付款</h3>'?></div>\n    </div>\n</body>\n</html>\n```\n\nDemo演示\n------\n\n可以通过扫描文章底部的二维码进行测试,或点击下面的演示地址:\n[http://lab.sangsir.com/api/donate.php][4]\n\n~~顺便打赏一下作者?~~\n-------------\n\n\n  [1]: https://ww2.sinaimg.cn/large/005zWjpngy1fojtev99z9j308w0333yb.jpg\n  [2]: https://ww2.sinaimg.cn/large/005zWjpngy1fojtevdjgpj30bd0c4aa4.jpg\n  [3]: http://tool.oschina.net/qr?type=2\n  [4]: http://lab.sangsir.com/api/donate.php",
      "json_metadata": "{\"tags\":[\"php\",\"cn\"],\"image\":[\"https://ww2.sinaimg.cn/large/005zWjpngy1fojtev99z9j308w0333yb.jpg\",\"https://ww2.sinaimg.cn/large/005zWjpngy1fojtevdjgpj30bd0c4aa4.jpg\"],\"links\":[\"http://tool.oschina.net/qr?type=2\",\"http://lab.sangsir.com/api/donate.php\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
matiheupvoted (100.00%) @sangsir / python
2018/03/04 15:11:21
votermatihe
authorsangsir
permlinkpython
weight10000 (100.00%)
Transaction InfoBlock #20383605/Trx 8a9e1883bb44f8703c3b748133dba4f1a4e7d2c6
View Raw JSON Data
{
  "trx_id": "8a9e1883bb44f8703c3b748133dba4f1a4e7d2c6",
  "block": 20383605,
  "trx_in_block": 23,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-04T15:11:21",
  "op": [
    "vote",
    {
      "voter": "matihe",
      "author": "sangsir",
      "permlink": "python",
      "weight": 10000
    }
  ]
}
2018/03/04 15:11:21
parent authorsangsir
parent permlinkpython
authormatihe
permlinkre-sangsir-python-20180304t151117788z
title
body最近想学python,感谢分享
json metadata{"tags":["python"],"app":"steemit/0.1"}
Transaction InfoBlock #20383605/Trx 190755e743f6c7c5db13a210079a5cf1cc303c5f
View Raw JSON Data
{
  "trx_id": "190755e743f6c7c5db13a210079a5cf1cc303c5f",
  "block": 20383605,
  "trx_in_block": 8,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-04T15:11:21",
  "op": [
    "comment",
    {
      "parent_author": "sangsir",
      "parent_permlink": "python",
      "author": "matihe",
      "permlink": "re-sangsir-python-20180304t151117788z",
      "title": "",
      "body": "最近想学python,感谢分享",
      "json_metadata": "{\"tags\":[\"python\"],\"app\":\"steemit/0.1\"}"
    }
  ]
}
sangsirupvoted (100.00%) @sangsir / python
2018/03/04 15:07:39
votersangsir
authorsangsir
permlinkpython
weight10000 (100.00%)
Transaction InfoBlock #20383531/Trx 30dab595e455a71cb82549dc7eb77a286ce76005
View Raw JSON Data
{
  "trx_id": "30dab595e455a71cb82549dc7eb77a286ce76005",
  "block": 20383531,
  "trx_in_block": 35,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-04T15:07:39",
  "op": [
    "vote",
    {
      "voter": "sangsir",
      "author": "sangsir",
      "permlink": "python",
      "weight": 10000
    }
  ]
}
sangsirpublished a new post: python
2018/03/04 15:07:39
parent author
parent permlinkpython
authorsangsir
permlinkpython
title初探python之做一个简单小爬虫
body准备工作 ---- 初探python,这个文章属于自己的一个总结。所以教程面向**新手**,无技术含量。 python环境Linux基本都有,Windows下官网也提供了便利的安装包,怎么安装配置网上有很多教程在此就不一一说明。 我使用的python版本为Python 3.6.4,后面的代码也是基于python3的。 分析需求 ---- 做一个小爬虫离不开获取网页内容和匹配存储内容,那么我们先装上python爬虫的老朋友requests: `pip install requests` 再装上pymysql扩展,方便将匹配到的内容插入到mysql数据库中: `pip install pymysql` 第一步:获取网页内容 ---------- 在python中有意思的是你需要什么,就去import什么,不像php一样获取网页内容直接来个`file_get_contents`完事儿 废话不多说,贴出代码来看一下: ```python # -*- coding:utf-8 -*- # 加载 requests 模块 import requests # GET方式获取 Response 对象 response = requests.get('https://www.xxx.com/') if response: # 输出html代码到控制台 print(response.text) else: # 输出错误信息 print('requests error') ``` 在python中缩进一定要严格,初学者(4个空格为语句块缩进)经常犯的错误是tab键和空间键混用,造成的缩进不一致。凡是报错信息看到:IndentationError: unexpected indent ,就是表示缩进不一致。 如果本身没有编码基础,那么我推荐你看一下python的基本概念:[http://www.kuqin.com/abyteofpython_cn/ch04.html][1] 如果已经有了编码基础但对缩进这方面没有深究,可以看python的缩进规范:[http://www.kuqin.com/abyteofpython_cn/ch04s09.html][2] 好,写完代码之后我们拿到控制台试一下,完美输出html代码 ![requests][3] 第二步:正则匹配内容 ---------- 既然能够获取html代码,那我们就要找出需要的部分,这就用上了正则。Python 自1.5版本起增加了 re 模块,它提供 Perl 风格的正则表达式模式。具体细节可以在菜鸟教程中查看:[http://www.runoob.com/python/python-reg-expressions.html][4],话不多说再贴代码: ```python # -*- coding:utf-8 -*- # 加载 requests 模块 import requests # 加载 re 模块 import re response = requests.get('https://www.xxx.com/') # 正则匹配文本 match = re.findall(r'<p><!--markdown-->([\s\S]*?)</p>', response.text) if match: # 输出匹配的内容到控制台 print(match[0]) else: # 输出html代码到控制台 print(response.text) ``` ![re][5] 注:原网址为随机一句文字显示,每刷新一次就会变化一次。 第三步:循环匹配并加入数据库中 --------------- 首先我们把数据库和表做好,可以用sql语句创建: ```sql CREATE DATABASE IF NOT EXISTS `sentence`; USE `sentence`; CREATE TABLE IF NOT EXISTS `sexy` ( `id` int(11) NOT NULL AUTO_INCREMENT, `content` varchar(250) NOT NULL, `datetime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `content` (`content`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; ``` 这里将content设置为了UNIQUE KEY,是为了保证抓取到的内容不重复,如果有已存在的值便直接跳过 ```python # -*- coding:utf-8 -*- # 加载 requests 模块 import requests # 加载 re 模块 import re # 加载 pymysql 模块 import pymysql # 打开数据库连接 db = pymysql.connect('127.0.0.1', 'root', 'root', 'sentence', charset='utf8') # 使用cursor()方法获取操作游标 cursor = db.cursor() #死循环到天长地久 while(True): response = requests.get('https://www.xxx.com/') # 正则匹配文本 match = re.findall(r'<p><!--markdown-->([\s\S]*?)</p>', response.text) if match: sql = "INSERT INTO `sexy` (`content`) VALUES ('%s')" % (match[0]) try: # 执行sql语句 cursor.execute(sql) # 提交到数据库执行 db.commit() except: # 如果发生错误则回滚 db.rollback() # 输出sql语句到控制台 print(sql) else: # 输出html代码到控制台 print(response.text) ``` 运行演示: ![pymysql][6] 数据库内容: ![mysql][7] 总结 -- python是个好东西,~~万物based on python~~。 感觉教程贴比较难写,每个地方都有细节,但如果讲细了文章又太繁琐,若简单些不好取舍初学者又看不懂什么意思,向那些写易懂的入门教程文章的作者致敬。 注:由于原网址不方便公布,代码中的网址全部替换为了xxx.com。 [1]: http://www.kuqin.com/abyteofpython_cn/ch04.html [2]: http://www.kuqin.com/abyteofpython_cn/ch04s09.html [3]: https://ww4.sinaimg.cn/large/005zWjpngy1fnqcpnxmz5j30lu0bc754 [4]: http://www.runoob.com/python/python-reg-expressions.html [5]: https://ww4.sinaimg.cn/large/005zWjpngy1fnqd5oi96yj30kd04fmx3 [6]: https://ww4.sinaimg.cn/large/005zWjpngy1fnqdcql3ztg30t50hdqmi [7]: https://ww4.sinaimg.cn/large/005zWjpngy1fnqddl95uqj30es0f3dgv
json metadata{"tags":["python","cn"],"image":["https://ww4.sinaimg.cn/large/005zWjpngy1fnqcpnxmz5j30lu0bc754","https://ww4.sinaimg.cn/large/005zWjpngy1fnqd5oi96yj30kd04fmx3","https://ww4.sinaimg.cn/large/005zWjpngy1fnqdcql3ztg30t50hdqmi","https://ww4.sinaimg.cn/large/005zWjpngy1fnqddl95uqj30es0f3dgv"],"links":["http://www.kuqin.com/abyteofpython_cn/ch04.html","http://www.kuqin.com/abyteofpython_cn/ch04s09.html","http://www.runoob.com/python/python-reg-expressions.html"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #20383531/Trx 30dab595e455a71cb82549dc7eb77a286ce76005
View Raw JSON Data
{
  "trx_id": "30dab595e455a71cb82549dc7eb77a286ce76005",
  "block": 20383531,
  "trx_in_block": 35,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-04T15:07:39",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "python",
      "author": "sangsir",
      "permlink": "python",
      "title": "初探python之做一个简单小爬虫",
      "body": "准备工作\n----\n\n初探python,这个文章属于自己的一个总结。所以教程面向**新手**,无技术含量。\npython环境Linux基本都有,Windows下官网也提供了便利的安装包,怎么安装配置网上有很多教程在此就不一一说明。\n我使用的python版本为Python 3.6.4,后面的代码也是基于python3的。\n\n分析需求\n----\n\n做一个小爬虫离不开获取网页内容和匹配存储内容,那么我们先装上python爬虫的老朋友requests:\n`pip install requests`\n再装上pymysql扩展,方便将匹配到的内容插入到mysql数据库中:\n`pip install pymysql`\n\n第一步:获取网页内容\n----------\n\n在python中有意思的是你需要什么,就去import什么,不像php一样获取网页内容直接来个`file_get_contents`完事儿\n废话不多说,贴出代码来看一下:\n```python\n# -*- coding:utf-8 -*-\n\n# 加载 requests 模块\nimport requests\n# GET方式获取 Response 对象\nresponse = requests.get('https://www.xxx.com/')\nif response:\n    # 输出html代码到控制台\n    print(response.text)\nelse:\n    # 输出错误信息\n    print('requests error')\n```\n在python中缩进一定要严格,初学者(4个空格为语句块缩进)经常犯的错误是tab键和空间键混用,造成的缩进不一致。凡是报错信息看到:IndentationError: unexpected indent ,就是表示缩进不一致。\n如果本身没有编码基础,那么我推荐你看一下python的基本概念:[http://www.kuqin.com/abyteofpython_cn/ch04.html][1]\n如果已经有了编码基础但对缩进这方面没有深究,可以看python的缩进规范:[http://www.kuqin.com/abyteofpython_cn/ch04s09.html][2]\n\n好,写完代码之后我们拿到控制台试一下,完美输出html代码\n![requests][3]\n\n第二步:正则匹配内容\n----------\n\n既然能够获取html代码,那我们就要找出需要的部分,这就用上了正则。Python 自1.5版本起增加了 re 模块,它提供 Perl 风格的正则表达式模式。具体细节可以在菜鸟教程中查看:[http://www.runoob.com/python/python-reg-expressions.html][4],话不多说再贴代码:\n```python\n# -*- coding:utf-8 -*-\n# 加载 requests 模块\nimport requests\n# 加载 re 模块\nimport re\n\nresponse = requests.get('https://www.xxx.com/')\n# 正则匹配文本\nmatch = re.findall(r'<p><!--markdown-->([\\s\\S]*?)</p>', response.text)\nif match:\n    # 输出匹配的内容到控制台\n    print(match[0])\nelse:\n    # 输出html代码到控制台\n    print(response.text)\n```\n![re][5]\n\n注:原网址为随机一句文字显示,每刷新一次就会变化一次。\n\n第三步:循环匹配并加入数据库中\n---------------\n\n首先我们把数据库和表做好,可以用sql语句创建:\n```sql\nCREATE DATABASE IF NOT EXISTS `sentence`;\nUSE `sentence`;\n\nCREATE TABLE IF NOT EXISTS `sexy` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `content` varchar(250) NOT NULL,\n  `datetime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `content` (`content`)\n) ENGINE=MyISAM DEFAULT CHARSET=utf8;\n```\n这里将content设置为了UNIQUE KEY,是为了保证抓取到的内容不重复,如果有已存在的值便直接跳过\n```python\n# -*- coding:utf-8 -*-\n# 加载 requests 模块\nimport requests\n# 加载 re 模块\nimport re\n# 加载 pymysql 模块\nimport pymysql\n\n# 打开数据库连接\ndb = pymysql.connect('127.0.0.1', 'root', 'root', 'sentence', charset='utf8')\n# 使用cursor()方法获取操作游标\ncursor = db.cursor()\n\n#死循环到天长地久\nwhile(True):\n    response = requests.get('https://www.xxx.com/')\n    # 正则匹配文本\n    match = re.findall(r'<p><!--markdown-->([\\s\\S]*?)</p>', response.text)\n    if match:\n        sql = \"INSERT INTO `sexy` (`content`) VALUES ('%s')\" % (match[0])\n        try:\n           # 执行sql语句\n           cursor.execute(sql)\n           # 提交到数据库执行\n           db.commit()\n        except:\n           # 如果发生错误则回滚\n           db.rollback()\n        # 输出sql语句到控制台\n        print(sql)\n    else:\n        # 输出html代码到控制台\n        print(response.text)\n```\n运行演示:\n![pymysql][6]\n数据库内容:\n![mysql][7]\n\n总结\n--\n\npython是个好东西,~~万物based on python~~。\n感觉教程贴比较难写,每个地方都有细节,但如果讲细了文章又太繁琐,若简单些不好取舍初学者又看不懂什么意思,向那些写易懂的入门教程文章的作者致敬。\n注:由于原网址不方便公布,代码中的网址全部替换为了xxx.com。\n\n  [1]: http://www.kuqin.com/abyteofpython_cn/ch04.html\n  [2]: http://www.kuqin.com/abyteofpython_cn/ch04s09.html\n  [3]: https://ww4.sinaimg.cn/large/005zWjpngy1fnqcpnxmz5j30lu0bc754\n  [4]: http://www.runoob.com/python/python-reg-expressions.html\n  [5]: https://ww4.sinaimg.cn/large/005zWjpngy1fnqd5oi96yj30kd04fmx3\n  [6]: https://ww4.sinaimg.cn/large/005zWjpngy1fnqdcql3ztg30t50hdqmi\n  [7]: https://ww4.sinaimg.cn/large/005zWjpngy1fnqddl95uqj30es0f3dgv",
      "json_metadata": "{\"tags\":[\"python\",\"cn\"],\"image\":[\"https://ww4.sinaimg.cn/large/005zWjpngy1fnqcpnxmz5j30lu0bc754\",\"https://ww4.sinaimg.cn/large/005zWjpngy1fnqd5oi96yj30kd04fmx3\",\"https://ww4.sinaimg.cn/large/005zWjpngy1fnqdcql3ztg30t50hdqmi\",\"https://ww4.sinaimg.cn/large/005zWjpngy1fnqddl95uqj30es0f3dgv\"],\"links\":[\"http://www.kuqin.com/abyteofpython_cn/ch04.html\",\"http://www.kuqin.com/abyteofpython_cn/ch04s09.html\",\"http://www.runoob.com/python/python-reg-expressions.html\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
sangsirupvoted (100.00%) @sangsir / 71grku
2018/03/03 04:52:30
votersangsir
authorsangsir
permlink71grku
weight10000 (100.00%)
Transaction InfoBlock #20342438/Trx 35df821ea6f50c8e9fec10ddbd7b55a4df40c215
View Raw JSON Data
{
  "trx_id": "35df821ea6f50c8e9fec10ddbd7b55a4df40c215",
  "block": 20342438,
  "trx_in_block": 28,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-03T04:52:30",
  "op": [
    "vote",
    {
      "voter": "sangsir",
      "author": "sangsir",
      "permlink": "71grku",
      "weight": 10000
    }
  ]
}
sangsirupvoted (100.00%) @sangsir / mysql
2018/03/03 04:51:57
votersangsir
authorsangsir
permlinkmysql
weight10000 (100.00%)
Transaction InfoBlock #20342427/Trx fd9be4dfa58c67ca07d535e38f73c11232a1f820
View Raw JSON Data
{
  "trx_id": "fd9be4dfa58c67ca07d535e38f73c11232a1f820",
  "block": 20342427,
  "trx_in_block": 53,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-03T04:51:57",
  "op": [
    "vote",
    {
      "voter": "sangsir",
      "author": "sangsir",
      "permlink": "mysql",
      "weight": 10000
    }
  ]
}
sangsirpublished a new post: mysql
2018/03/03 04:51:57
parent author
parent permlinkmysql
authorsangsir
permlinkmysql
titleMySQL数据库规范及解读
body一、基础规范 ------ > 第一条:必须使用InnoDB存储引擎 解读:支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高 > 第二条:必须使用utf8(utf8mb4)字符集 解读:万国码,无需转码,无乱码风险,节省空间,utf8mb4是utf8的超集,由于近年移动设备的增多,emoji表情以及部分不常见汉字在utf8下会表现为乱码,故需要升级至utf8mb4 > 第三条:数据表、数据字段必须加入中文注释 解读:N年后谁会知道这个a1,a2,a3字段是干嘛的 > 第四条:禁止使用存储过程、视图、触发器、Event 解读:*高并发**大数据**的互联网业务,**架构**设计思路是“解放**数据库**CPU,将计算转移到服务层”*,并发量大的情况下,这些功能很可能将数据库拖死,*业务逻辑放到服务层具备更好的扩展性,能够轻易实现“增机器就加性能”*。数据库擅长存储与索引,CPU计算还是上移吧 > 第五条:禁止存储大文件或者大照片 解读:为何要让数据库做它不擅长的事情?大文件和照片存储在文件系统,数据库里存URI多好 二、命名规范 ------ > 第一条:只允许*使用内网域名,而不是ip连接数据库* 解读:虽然IP访问更快,域名访问需要内网dns,但是对于大数据库的扩展和迁库考虑,域名更好 > 第二条:线上环境、开发环境、**测试**环境数据库内网域名遵循命名规范 业务名称:xxx 线上环境:dj.xxx.db 开发环境:dj.xxx.rdb 测试环境:dj.xxx.tdb 从库在名称后加-s标识,备库在名称后加-ss标识 线上从库:dj.xxx-s.db 线上备库:dj.xxx-sss.db > 第三条:库名、表名、字段名:小写,下划线风格,不超过32个字符,禁止拼音英文混用 解读:见名知意,方便后续维护 > 第四条:表名t_xxx,非唯一索引名idx_xxx,唯一索引名uniq_xxx 解读:见名知意,方便后续维护 三、表和字段设计规范 ---------- > 第一条:禁止使用外键,如果有外键完整性约束,需要应用程序控制 解读:*外键会导致表与表之间耦合,update与delete操作都会涉及相关联的表,十分影响sql的性能*,甚至会造成死锁。高并发情况下容易造成数据库性能,*大数据高并发业务场景数据库使用以性能优先* > 第二条:必须把字段定义为NOT NULL并且提供默认值 解读: a) null的列使索引/索引统计/值比较都更加复杂,对MySQL来说更难优化 b) null这种类型MySQL内部需要进行特殊处理,增加数据库处理记录的复杂性;同等条件下,表中有较多空字段的时候,数据库的处理性能会降低很多 c) null值需要更多的存储空,无论是表还是索引中每行中的null的列都需要额外的空间来标识 d) 对null的处理时候,只能采用is null或is not null,而不能采用=、in、<、<>、!=、not in这些操作符号。*如:where name!='shenjian',如果存在name为null值的记录,查询结果就不会包含name为null值的记录* > 第三条:禁止使用TEXT、BLOB类型 解读:会浪费更多的磁盘和内存空间,*非必要的大量的大字段查询会淘汰掉热数据,导致内存命中率急剧降低,影响数据库性能* > 第四条:禁止使用小数存储国币 解读:曾经踩过这样的坑,100元分3天摊销,每天摊销(100/3)元,结果得到3个33.33。后来实施对账系统,始终有几分钱对不齐,郁闷了很久(不是几分钱的事,是业务方质疑的眼神让研发很不爽),最后发现是除法惹的祸 解决方案:使用“分”作为单位,这样数据库里就是整数了 > 第五条:必须使用varchar(20)存储手机号 解读: a) 涉及到区号或者国家代号,可能出现+-() b) 手机号会去做数学运算么? c) varchar可以支持模糊查询,例如:like“138%” > 第六条:禁止使用ENUM,可使用TINYINT代替 解读: a) 增加新的ENUM值要做DDL操作 b) ENUM的内部实际存储就是整数,你以为自己定义的是字符串? > 第七条:表必须有主键,例如自增主键 解读: a) 主键递增,数据行写入可以提高插入性能,可以避免page分裂,减少表碎片提升空间和内存的使用 b) 主键要选择较短的数据类型, Innodb引擎普通索引都会保存主键的值,较短的数据类型可以有效的减少索引的磁盘空间,提高索引的缓存效率 c) 无主键的表删除,在row模式的主从架构,会导致备库夯住 四、索引设计规范 -------- > 第一条:单表索引建议控制在5个以内 解读:一个好的索引设计,可以让你的效率提高几十甚至几百倍,但过多反而适得其反 > 第二条:单索引字段数不允许超过5个 解读:字段超过5个时,实际已经起不到有效过滤数据的作用了 > 第三条:禁止在更新十分频繁、区分度不高的属性上建立索引 解读: a) 更新会变更B+树,更新频繁的字段建立索引会大大降低数据库性能 b) "性别"这种区分度不大的属性,建立索引是没有什么意义的,不能有效过滤数据,性能与全表扫描类似 > 第四条:建立组合索引,必须把区分度高的字段放在前面 解读:能够更加有效的过滤数据 五、SQL使用规范 --------- > 第一条:禁止使用SELECT *,只获取必要的字段,需要显示说明列属性 解读: a) 读取不需要的列会增加CPU、IO、NET消耗 b) 不能有效的利用覆盖索引 c) 使用SELECT *容易在增加或者删除字段后出现程序BUG > 第二条:禁止使用INSERT INTO t_xxx VALUES(xxx),必须显示指定插入的列属性 解读:容易在增加或者删除字段后出现程序BUG > 第三条:禁止使用属性隐式转换 解读:SELECT uid FROM t_user WHERE phone=13812345678 会导致全表扫描,而不能命中phone索引,猜猜为什么? int数据类型优先级高于archer, 该查询会把phone转换为int,因此需要把表中所有数据改成int,所以必须全盘扫描 phone是varchar类型,SQL语句带入的是整形,故不会命中索引,加个引号就好了: SELECT uid FROM t_user WHERE phone='13812345678' > 第四条:禁止在WHERE条件的属性上使用函数或者表达式 解读:SELECT uid FROM t_user WHERE from_unixtime(day)>='2017-02-15' 会导致全表扫描 正确的写法是:SELECT uid FROM t_user WHERE day>= unix_timestamp('2017-02-15 00:00:00') > 第五条:禁止大表使用JOIN查询,禁止大表使用子查询 解读:会产生临时表,消耗较多内存与CPU,极大影响数据库性能,大表指的是数据量在1000万以上的表 > 第六条:禁止使用OR条件,必须改为IN查询 解读:旧版本Mysql的OR查询是不能命中索引的,即使能命中索引,为何要让数据库耗费更多的CPU帮助实施查询优化呢? > 第七条:禁止使用负向查询,以及%开头的模糊查询 解读: a) 负向查询条件:NOT、!=、<>、!<、!>、NOT IN、NOT LIKE等,会导致全表扫描 b) %开头的模糊查询,会导致全表扫描 一般来说,WHERE过滤条件不会只带这么一个“负向查询条件”,还会有其他过滤条件,举个例子:查询沈剑已完成订单之外的订单(好拗口): SELECT oid FROM t_order WHERE uid=123 AND status != 1; 订单表5000w数据,但uid=123就会迅速的将数据量过滤到很少的级别(uid建立了索引),此时再接上一个负向的查询条件就无所谓了,扫描的行数本身就会很少 但如果要查询所有已完成订单之外的订单: SELECT oid FROM t_order WHERE status != 1; 这就挂了,立马CPU100%,status索引会失效,负向查询导致全表扫描 > 第八条:应用程序必须捕获SQL异常,并有相应处理 解读:方便维护,及时“查漏补缺” **总结:大数据量高并发的互联网业务,极大影响数据库性能的都不让用,不让用哟。**
json metadata{"tags":["mysql","cn"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #20342427/Trx fd9be4dfa58c67ca07d535e38f73c11232a1f820
View Raw JSON Data
{
  "trx_id": "fd9be4dfa58c67ca07d535e38f73c11232a1f820",
  "block": 20342427,
  "trx_in_block": 53,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-03T04:51:57",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "mysql",
      "author": "sangsir",
      "permlink": "mysql",
      "title": "MySQL数据库规范及解读",
      "body": "一、基础规范\n------\n\n> 第一条:必须使用InnoDB存储引擎\n\n解读:支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高\n\n> 第二条:必须使用utf8(utf8mb4)字符集\n\n解读:万国码,无需转码,无乱码风险,节省空间,utf8mb4是utf8的超集,由于近年移动设备的增多,emoji表情以及部分不常见汉字在utf8下会表现为乱码,故需要升级至utf8mb4\n\n> 第三条:数据表、数据字段必须加入中文注释\n\n解读:N年后谁会知道这个a1,a2,a3字段是干嘛的\n\n> 第四条:禁止使用存储过程、视图、触发器、Event\n\n解读:*高并发**大数据**的互联网业务,**架构**设计思路是“解放**数据库**CPU,将计算转移到服务层”*,并发量大的情况下,这些功能很可能将数据库拖死,*业务逻辑放到服务层具备更好的扩展性,能够轻易实现“增机器就加性能”*。数据库擅长存储与索引,CPU计算还是上移吧\n\n> 第五条:禁止存储大文件或者大照片\n\n解读:为何要让数据库做它不擅长的事情?大文件和照片存储在文件系统,数据库里存URI多好\n\n二、命名规范\n------\n\n> 第一条:只允许*使用内网域名,而不是ip连接数据库*\n\n解读:虽然IP访问更快,域名访问需要内网dns,但是对于大数据库的扩展和迁库考虑,域名更好\n\n> 第二条:线上环境、开发环境、**测试**环境数据库内网域名遵循命名规范\n\n业务名称:xxx\n线上环境:dj.xxx.db\n开发环境:dj.xxx.rdb\n测试环境:dj.xxx.tdb\n从库在名称后加-s标识,备库在名称后加-ss标识\n线上从库:dj.xxx-s.db\n线上备库:dj.xxx-sss.db\n\n> 第三条:库名、表名、字段名:小写,下划线风格,不超过32个字符,禁止拼音英文混用\n\n解读:见名知意,方便后续维护\n\n> 第四条:表名t_xxx,非唯一索引名idx_xxx,唯一索引名uniq_xxx\n\n解读:见名知意,方便后续维护\n\n三、表和字段设计规范\n----------\n\n> 第一条:禁止使用外键,如果有外键完整性约束,需要应用程序控制\n\n解读:*外键会导致表与表之间耦合,update与delete操作都会涉及相关联的表,十分影响sql的性能*,甚至会造成死锁。高并发情况下容易造成数据库性能,*大数据高并发业务场景数据库使用以性能优先*\n\n> 第二条:必须把字段定义为NOT NULL并且提供默认值\n\n解读:\na) null的列使索引/索引统计/值比较都更加复杂,对MySQL来说更难优化\nb) null这种类型MySQL内部需要进行特殊处理,增加数据库处理记录的复杂性;同等条件下,表中有较多空字段的时候,数据库的处理性能会降低很多\nc) null值需要更多的存储空,无论是表还是索引中每行中的null的列都需要额外的空间来标识\nd) 对null的处理时候,只能采用is null或is not null,而不能采用=、in、<、<>、!=、not in这些操作符号。*如:where name!='shenjian',如果存在name为null值的记录,查询结果就不会包含name为null值的记录*\n\n> 第三条:禁止使用TEXT、BLOB类型\n\n解读:会浪费更多的磁盘和内存空间,*非必要的大量的大字段查询会淘汰掉热数据,导致内存命中率急剧降低,影响数据库性能*\n\n> 第四条:禁止使用小数存储国币\n\n解读:曾经踩过这样的坑,100元分3天摊销,每天摊销(100/3)元,结果得到3个33.33。后来实施对账系统,始终有几分钱对不齐,郁闷了很久(不是几分钱的事,是业务方质疑的眼神让研发很不爽),最后发现是除法惹的祸\n解决方案:使用“分”作为单位,这样数据库里就是整数了\n\n> 第五条:必须使用varchar(20)存储手机号\n\n解读:\na) 涉及到区号或者国家代号,可能出现+-()\nb) 手机号会去做数学运算么?\nc) varchar可以支持模糊查询,例如:like“138%”\n\n> 第六条:禁止使用ENUM,可使用TINYINT代替\n\n解读:\na) 增加新的ENUM值要做DDL操作\nb) ENUM的内部实际存储就是整数,你以为自己定义的是字符串?\n \n> 第七条:表必须有主键,例如自增主键\n\n解读:\na) 主键递增,数据行写入可以提高插入性能,可以避免page分裂,减少表碎片提升空间和内存的使用\nb) 主键要选择较短的数据类型, Innodb引擎普通索引都会保存主键的值,较短的数据类型可以有效的减少索引的磁盘空间,提高索引的缓存效率\nc) 无主键的表删除,在row模式的主从架构,会导致备库夯住\n\n四、索引设计规范\n--------\n\n> 第一条:单表索引建议控制在5个以内\n\n解读:一个好的索引设计,可以让你的效率提高几十甚至几百倍,但过多反而适得其反\n\n> 第二条:单索引字段数不允许超过5个\n\n解读:字段超过5个时,实际已经起不到有效过滤数据的作用了\n\n> 第三条:禁止在更新十分频繁、区分度不高的属性上建立索引\n\n解读:\na) 更新会变更B+树,更新频繁的字段建立索引会大大降低数据库性能\nb) \"性别\"这种区分度不大的属性,建立索引是没有什么意义的,不能有效过滤数据,性能与全表扫描类似\n\n> 第四条:建立组合索引,必须把区分度高的字段放在前面\n\n解读:能够更加有效的过滤数据\n\n五、SQL使用规范\n---------\n\n> 第一条:禁止使用SELECT *,只获取必要的字段,需要显示说明列属性\n\n解读:\na) 读取不需要的列会增加CPU、IO、NET消耗\nb) 不能有效的利用覆盖索引\nc) 使用SELECT *容易在增加或者删除字段后出现程序BUG\n\n> 第二条:禁止使用INSERT INTO t_xxx VALUES(xxx),必须显示指定插入的列属性\n\n解读:容易在增加或者删除字段后出现程序BUG\n\n> 第三条:禁止使用属性隐式转换\n\n解读:SELECT uid FROM t_user WHERE phone=13812345678 会导致全表扫描,而不能命中phone索引,猜猜为什么?\nint数据类型优先级高于archer, 该查询会把phone转换为int,因此需要把表中所有数据改成int,所以必须全盘扫描\nphone是varchar类型,SQL语句带入的是整形,故不会命中索引,加个引号就好了:\nSELECT uid FROM t_user WHERE phone='13812345678'\n\n> 第四条:禁止在WHERE条件的属性上使用函数或者表达式\n\n解读:SELECT uid FROM t_user WHERE from_unixtime(day)>='2017-02-15' 会导致全表扫描\n正确的写法是:SELECT uid FROM t_user WHERE day>= unix_timestamp('2017-02-15 00:00:00')\n\n> 第五条:禁止大表使用JOIN查询,禁止大表使用子查询\n\n解读:会产生临时表,消耗较多内存与CPU,极大影响数据库性能,大表指的是数据量在1000万以上的表\n\n> 第六条:禁止使用OR条件,必须改为IN查询\n\n解读:旧版本Mysql的OR查询是不能命中索引的,即使能命中索引,为何要让数据库耗费更多的CPU帮助实施查询优化呢?\n\n> 第七条:禁止使用负向查询,以及%开头的模糊查询\n\n解读:\na) 负向查询条件:NOT、!=、<>、!<、!>、NOT IN、NOT LIKE等,会导致全表扫描\nb) %开头的模糊查询,会导致全表扫描\n一般来说,WHERE过滤条件不会只带这么一个“负向查询条件”,还会有其他过滤条件,举个例子:查询沈剑已完成订单之外的订单(好拗口):\nSELECT oid FROM t_order WHERE uid=123 AND status != 1;\n订单表5000w数据,但uid=123就会迅速的将数据量过滤到很少的级别(uid建立了索引),此时再接上一个负向的查询条件就无所谓了,扫描的行数本身就会很少\n但如果要查询所有已完成订单之外的订单:\nSELECT oid FROM t_order WHERE status != 1;\n这就挂了,立马CPU100%,status索引会失效,负向查询导致全表扫描\n\n> 第八条:应用程序必须捕获SQL异常,并有相应处理\n\n解读:方便维护,及时“查漏补缺”\n\n**总结:大数据量高并发的互联网业务,极大影响数据库性能的都不让用,不让用哟。**",
      "json_metadata": "{\"tags\":[\"mysql\",\"cn\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
sangsirreceived 0.033 SBD, 0.008 SP author reward for @sangsir / re-magicmonk-cn-sbd-20180124t135815495z
2018/01/31 13:58:18
authorsangsir
permlinkre-magicmonk-cn-sbd-20180124t135815495z
sbd payout0.033 SBD
steem payout0.000 STEEM
vesting payout12.276442 VESTS
Transaction InfoBlock #19461560/Virtual Operation #4
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 19461560,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 4,
  "timestamp": "2018-01-31T13:58:18",
  "op": [
    "author_reward",
    {
      "author": "sangsir",
      "permlink": "re-magicmonk-cn-sbd-20180124t135815495z",
      "sbd_payout": "0.033 SBD",
      "steem_payout": "0.000 STEEM",
      "vesting_payout": "12.276442 VESTS"
    }
  ]
}
sangsirreceived 0.107 SBD, 0.025 SP author reward for @sangsir / 71grku
2018/01/31 13:46:03
authorsangsir
permlink71grku
sbd payout0.107 SBD
steem payout0.000 STEEM
vesting payout40.921494 VESTS
Transaction InfoBlock #19461315/Virtual Operation #10
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 19461315,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 10,
  "timestamp": "2018-01-31T13:46:03",
  "op": [
    "author_reward",
    {
      "author": "sangsir",
      "permlink": "71grku",
      "sbd_payout": "0.107 SBD",
      "steem_payout": "0.000 STEEM",
      "vesting_payout": "40.921494 VESTS"
    }
  ]
}
2018/01/28 05:33:48
parent authorsangsir
parent permlinkre-dongfengman-2gn33m-20180124t140208211z
authordongfengman
permlinkre-sangsir-re-dongfengman-2gn33m-20180128t053346675z
title
body呵呵,说不定会遇上钦差大臣微服私访。我就遇到过不是钦差,但也是省里派下来了解民情的。
json metadata{"tags":["cn"],"app":"steemit/0.1"}
Transaction InfoBlock #19365145/Trx 4eeb4462d2b46d990b6cf88d3fd1f9d6616c9897
View Raw JSON Data
{
  "trx_id": "4eeb4462d2b46d990b6cf88d3fd1f9d6616c9897",
  "block": 19365145,
  "trx_in_block": 22,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-01-28T05:33:48",
  "op": [
    "comment",
    {
      "parent_author": "sangsir",
      "parent_permlink": "re-dongfengman-2gn33m-20180124t140208211z",
      "author": "dongfengman",
      "permlink": "re-sangsir-re-dongfengman-2gn33m-20180128t053346675z",
      "title": "",
      "body": "呵呵,说不定会遇上钦差大臣微服私访。我就遇到过不是钦差,但也是省里派下来了解民情的。",
      "json_metadata": "{\"tags\":[\"cn\"],\"app\":\"steemit/0.1\"}"
    }
  ]
}
magicmonkupvoted (10.00%) @sangsir / 71grku
2018/01/25 11:27:06
votermagicmonk
authorsangsir
permlink71grku
weight1000 (10.00%)
Transaction InfoBlock #19285861/Trx e8f3103cfd8b70acbf54a637a8e60fb84068ae69
View Raw JSON Data
{
  "trx_id": "e8f3103cfd8b70acbf54a637a8e60fb84068ae69",
  "block": 19285861,
  "trx_in_block": 10,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-01-25T11:27:06",
  "op": [
    "vote",
    {
      "voter": "magicmonk",
      "author": "sangsir",
      "permlink": "71grku",
      "weight": 1000
    }
  ]
}
2018/01/24 21:30:21
votermagicmonk
authorsangsir
permlinkre-magicmonk-cn-sbd-20180124t135815495z
weight600 (6.00%)
Transaction InfoBlock #19269132/Trx fb41212868c52ec2c5d14c93d91273023e91429b
View Raw JSON Data
{
  "trx_id": "fb41212868c52ec2c5d14c93d91273023e91429b",
  "block": 19269132,
  "trx_in_block": 14,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-01-24T21:30:21",
  "op": [
    "vote",
    {
      "voter": "magicmonk",
      "author": "sangsir",
      "permlink": "re-magicmonk-cn-sbd-20180124t135815495z",
      "weight": 600
    }
  ]
}
pilgrimlifeupvoted (3.00%) @sangsir / 71grku
2018/01/24 14:45:45
voterpilgrimlife
authorsangsir
permlink71grku
weight300 (3.00%)
Transaction InfoBlock #19261043/Trx 2412b0c93c8efe54f51ffa259461c731334f709f
View Raw JSON Data
{
  "trx_id": "2412b0c93c8efe54f51ffa259461c731334f709f",
  "block": 19261043,
  "trx_in_block": 48,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-01-24T14:45:45",
  "op": [
    "vote",
    {
      "voter": "pilgrimlife",
      "author": "sangsir",
      "permlink": "71grku",
      "weight": 300
    }
  ]
}
2018/01/24 14:45:39
parent authorsangsir
parent permlink71grku
authorpilgrimlife
permlinkre-sangsir-71grku-20180124t144454349z
title
body欢迎
json metadata{"tags":["cn"],"app":"steemit/0.1"}
Transaction InfoBlock #19261041/Trx 339c94dd189ebada2b66659e0eb361f0e78f9b52
View Raw JSON Data
{
  "trx_id": "339c94dd189ebada2b66659e0eb361f0e78f9b52",
  "block": 19261041,
  "trx_in_block": 11,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-01-24T14:45:39",
  "op": [
    "comment",
    {
      "parent_author": "sangsir",
      "parent_permlink": "71grku",
      "author": "pilgrimlife",
      "permlink": "re-sangsir-71grku-20180124t144454349z",
      "title": "",
      "body": "欢迎",
      "json_metadata": "{\"tags\":[\"cn\"],\"app\":\"steemit/0.1\"}"
    }
  ]
}
2018/01/24 14:19:21
parent authorsangsir
parent permlink71grku
authorlopezdacruz
permlinkre-71grku-20180124t141921
title
bodywelcome sangsir! Glad to see your here
json metadata
Transaction InfoBlock #19260515/Trx 77ac25c6e41f7b0e3f928d6285f9cb2df415bc71
View Raw JSON Data
{
  "trx_id": "77ac25c6e41f7b0e3f928d6285f9cb2df415bc71",
  "block": 19260515,
  "trx_in_block": 29,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-01-24T14:19:21",
  "op": [
    "comment",
    {
      "parent_author": "sangsir",
      "parent_permlink": "71grku",
      "author": "lopezdacruz",
      "permlink": "re-71grku-20180124t141921",
      "title": "",
      "body": "welcome sangsir! Glad to see your here",
      "json_metadata": ""
    }
  ]
}
2018/01/24 14:02:15
parent authordongfengman
parent permlink2gn33m
authorsangsir
permlinkre-dongfengman-2gn33m-20180124t140208211z
title
body深有体会!我爸妈在经营一家小饭馆,只要放学或者周末都会去帮忙,在馆子里能够看到遇到形形色色的人
json metadata{"tags":["cn"],"app":"steemit/0.1"}
Transaction InfoBlock #19260173/Trx 562cfb32711cbe1642f6eeaa7748b588c1f7ad4b
View Raw JSON Data
{
  "trx_id": "562cfb32711cbe1642f6eeaa7748b588c1f7ad4b",
  "block": 19260173,
  "trx_in_block": 27,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-01-24T14:02:15",
  "op": [
    "comment",
    {
      "parent_author": "dongfengman",
      "parent_permlink": "2gn33m",
      "author": "sangsir",
      "permlink": "re-dongfengman-2gn33m-20180124t140208211z",
      "title": "",
      "body": "深有体会!我爸妈在经营一家小饭馆,只要放学或者周末都会去帮忙,在馆子里能够看到遇到形形色色的人",
      "json_metadata": "{\"tags\":[\"cn\"],\"app\":\"steemit/0.1\"}"
    }
  ]
}
sangsirupvoted (100.00%) @dongfengman / 2gn33m
2018/01/24 14:00:09
votersangsir
authordongfengman
permlink2gn33m
weight10000 (100.00%)
Transaction InfoBlock #19260131/Trx 7e90200f6d6bfd6ec072305af86e96893e695882
View Raw JSON Data
{
  "trx_id": "7e90200f6d6bfd6ec072305af86e96893e695882",
  "block": 19260131,
  "trx_in_block": 36,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-01-24T14:00:09",
  "op": [
    "vote",
    {
      "voter": "sangsir",
      "author": "dongfengman",
      "permlink": "2gn33m",
      "weight": 10000
    }
  ]
}
2018/01/24 13:58:18
parent authormagicmonk
parent permlinkcn-sbd
authorsangsir
permlinkre-magicmonk-cn-sbd-20180124t135815495z
title
body14年的时候在博客写过有关比特币的文章,却没想到现在的价值如此之高,不仅掌握时机重要,预测也很重要啊!
json metadata{"tags":["cn"],"app":"steemit/0.1"}
Transaction InfoBlock #19260094/Trx 6280baab70e6c240a95952f7c2115b2bdefa0173
View Raw JSON Data
{
  "trx_id": "6280baab70e6c240a95952f7c2115b2bdefa0173",
  "block": 19260094,
  "trx_in_block": 5,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-01-24T13:58:18",
  "op": [
    "comment",
    {
      "parent_author": "magicmonk",
      "parent_permlink": "cn-sbd",
      "author": "sangsir",
      "permlink": "re-magicmonk-cn-sbd-20180124t135815495z",
      "title": "",
      "body": "14年的时候在博客写过有关比特币的文章,却没想到现在的价值如此之高,不仅掌握时机重要,预测也很重要啊!",
      "json_metadata": "{\"tags\":[\"cn\"],\"app\":\"steemit/0.1\"}"
    }
  ]
}
cqfupvoted (1.00%) @sangsir / 71grku
2018/01/24 13:55:36
votercqf
authorsangsir
permlink71grku
weight100 (1.00%)
Transaction InfoBlock #19260040/Trx 8ddbd0371c2ab0db6058708c18f63621699533c0
View Raw JSON Data
{
  "trx_id": "8ddbd0371c2ab0db6058708c18f63621699533c0",
  "block": 19260040,
  "trx_in_block": 39,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-01-24T13:55:36",
  "op": [
    "vote",
    {
      "voter": "cqf",
      "author": "sangsir",
      "permlink": "71grku",
      "weight": 100
    }
  ]
}
sangsirupvoted (100.00%) @magicmonk / cn-sbd
2018/01/24 13:54:57
votersangsir
authormagicmonk
permlinkcn-sbd
weight10000 (100.00%)
Transaction InfoBlock #19260027/Trx 8a31c13aa7eeabcdaa901ccb12bc3f29b4585b57
View Raw JSON Data
{
  "trx_id": "8a31c13aa7eeabcdaa901ccb12bc3f29b4585b57",
  "block": 19260027,
  "trx_in_block": 11,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-01-24T13:54:57",
  "op": [
    "vote",
    {
      "voter": "sangsir",
      "author": "magicmonk",
      "permlink": "cn-sbd",
      "weight": 10000
    }
  ]
}
muhammadiksanupvoted (100.00%) @sangsir / 71grku
2018/01/24 13:48:03
votermuhammadiksan
authorsangsir
permlink71grku
weight10000 (100.00%)
Transaction InfoBlock #19259889/Trx 46cca79057897aa5f18b987002c9ab14d63dd554
View Raw JSON Data
{
  "trx_id": "46cca79057897aa5f18b987002c9ab14d63dd554",
  "block": 19259889,
  "trx_in_block": 5,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-01-24T13:48:03",
  "op": [
    "vote",
    {
      "voter": "muhammadiksan",
      "author": "sangsir",
      "permlink": "71grku",
      "weight": 10000
    }
  ]
}
bottymcbotfaceupvoted (1.00%) @sangsir / 71grku
2018/01/24 13:47:03
voterbottymcbotface
authorsangsir
permlink71grku
weight100 (1.00%)
Transaction InfoBlock #19259869/Trx 8bd767a84237d714c5625ff0abea0d9c74a965e7
View Raw JSON Data
{
  "trx_id": "8bd767a84237d714c5625ff0abea0d9c74a965e7",
  "block": 19259869,
  "trx_in_block": 11,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-01-24T13:47:03",
  "op": [
    "vote",
    {
      "voter": "bottymcbotface",
      "author": "sangsir",
      "permlink": "71grku",
      "weight": 100
    }
  ]
}
cn-naughty.boyupvoted (23.37%) @sangsir / 71grku
2018/01/24 13:46:06
votercn-naughty.boy
authorsangsir
permlink71grku
weight2337 (23.37%)
Transaction InfoBlock #19259850/Trx de48285d6f9da61cfed07d62cff83b51b5e643e9
View Raw JSON Data
{
  "trx_id": "de48285d6f9da61cfed07d62cff83b51b5e643e9",
  "block": 19259850,
  "trx_in_block": 37,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-01-24T13:46:06",
  "op": [
    "vote",
    {
      "voter": "cn-naughty.boy",
      "author": "sangsir",
      "permlink": "71grku",
      "weight": 2337
    }
  ]
}
sangsirpublished a new post: 71grku
2018/01/24 13:46:03
parent author
parent permlinkcn
authorsangsir
permlink71grku
title新人报到,请多关照!
body大家好, ====== 我是SangSir,来自山东 98年生,专业是视觉传达设计 是的,我是个美术生,不过正干着程序猿的活儿 估计我是艺术界的一朵奇葩(这应该是最符合我的定义了) 有位老板跟我说程序与设计之间有一道不可逾越的鸿沟 一个属于理性,一个属于感性,两者不可能兼得 这个鸿沟,我正在用坚持与兴趣来弥补 在现实生活中, ========= 目前在上大学,是一名不起眼的小人物 我喜欢游泳/轮滑/山地车/摄影/绘画 也热爱旅行,为此特意写了一个小网页来记录[我去过的地方](https://lab.sangsir.com/footmark/)←进去看看 (在发完这篇文章之后的26日我就会去宁波玩~有没有宁波的小伙伴~) 虽说爱旅行,但旅行途中的花费都是由写代码所赚到的Money,因为不想问我爸妈要辛苦钱去享乐 对自己喜欢的事情富有执行力 在steemit的计划, ========= 首先很荣幸的能在@tumutanzi的博客中看到有关steemit的介绍能够加入这个大家庭 之后我计划将[我的博客](https://sangsir.com/)中有趣有技术性的原创文章分享到这里,博文与steemit同步发表 因为爱旅行,但还从未写过游记,所以想在这里分享我在旅行途中的流水账和趣事 放两张去香港时的照片, ============== ![myself](https://ww2.sinaimg.cn/large/005zWjpnly1fns11z9knzj32c0340hdu) (*本人) ![hk](https://ww2.sinaimg.cn/large/005zWjpnly1fns129jdiaj33402c0qv7) (*Samsung s7 edge 拍摄) 初来乍到, ===== 请多多关照,谢谢大家!
json metadata{"tags":["cn","introducemyself","blog"],"users":["tumutanzi"],"image":["https://ww2.sinaimg.cn/large/005zWjpnly1fns11z9knzj32c0340hdu","https://ww2.sinaimg.cn/large/005zWjpnly1fns129jdiaj33402c0qv7"],"links":["https://lab.sangsir.com/footmark/","https://sangsir.com/"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #19259849/Trx fe2ca4087aa1de2f0fcc619a98f4be5f02fd29a0
View Raw JSON Data
{
  "trx_id": "fe2ca4087aa1de2f0fcc619a98f4be5f02fd29a0",
  "block": 19259849,
  "trx_in_block": 20,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-01-24T13:46:03",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "cn",
      "author": "sangsir",
      "permlink": "71grku",
      "title": "新人报到,请多关照!",
      "body": "大家好,\n======\n我是SangSir,来自山东\n98年生,专业是视觉传达设计\n是的,我是个美术生,不过正干着程序猿的活儿\n估计我是艺术界的一朵奇葩(这应该是最符合我的定义了)\n有位老板跟我说程序与设计之间有一道不可逾越的鸿沟\n一个属于理性,一个属于感性,两者不可能兼得\n这个鸿沟,我正在用坚持与兴趣来弥补\n\n在现实生活中,\n=========\n目前在上大学,是一名不起眼的小人物\n我喜欢游泳/轮滑/山地车/摄影/绘画\n也热爱旅行,为此特意写了一个小网页来记录[我去过的地方](https://lab.sangsir.com/footmark/)←进去看看\n(在发完这篇文章之后的26日我就会去宁波玩~有没有宁波的小伙伴~)\n虽说爱旅行,但旅行途中的花费都是由写代码所赚到的Money,因为不想问我爸妈要辛苦钱去享乐\n对自己喜欢的事情富有执行力\n\n在steemit的计划,\n=========\n首先很荣幸的能在@tumutanzi的博客中看到有关steemit的介绍能够加入这个大家庭\n之后我计划将[我的博客](https://sangsir.com/)中有趣有技术性的原创文章分享到这里,博文与steemit同步发表\n因为爱旅行,但还从未写过游记,所以想在这里分享我在旅行途中的流水账和趣事\n\n放两张去香港时的照片,\n==============\n![myself](https://ww2.sinaimg.cn/large/005zWjpnly1fns11z9knzj32c0340hdu)\n(*本人)\n![hk](https://ww2.sinaimg.cn/large/005zWjpnly1fns129jdiaj33402c0qv7)\n(*Samsung s7 edge 拍摄)\n\n初来乍到,\n=====\n请多多关照,谢谢大家!",
      "json_metadata": "{\"tags\":[\"cn\",\"introducemyself\",\"blog\"],\"users\":[\"tumutanzi\"],\"image\":[\"https://ww2.sinaimg.cn/large/005zWjpnly1fns11z9knzj32c0340hdu\",\"https://ww2.sinaimg.cn/large/005zWjpnly1fns129jdiaj33402c0qv7\"],\"links\":[\"https://lab.sangsir.com/footmark/\",\"https://sangsir.com/\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
sangsirupdated their account properties
2018/01/24 13:30:36
accountsangsir
memo keySTM7v1pSEBhYbvF6U8Xh1WY65mSgFMq1ratRSPwwgU1ef7KZVUzfp
json metadata{"profile":{"profile_image":"https://ww2.sinaimg.cn/large/005zWjpnly1fnrzyet5tfj30hs0hsdg8","cover_image":"https://ww2.sinaimg.cn/large/005zWjpnly1fnrzz302q7j31hc0xc1kx","name":"SangSir","location":"Shandong, China","website":"https://sangsir.com","about":"A wonderful flower in the art world / 艺术界的一朵奇葩"}}
Transaction InfoBlock #19259540/Trx ca2d6c2f88d18a715d6806401a66bc52ffa8dddb
View Raw JSON Data
{
  "trx_id": "ca2d6c2f88d18a715d6806401a66bc52ffa8dddb",
  "block": 19259540,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-01-24T13:30:36",
  "op": [
    "account_update",
    {
      "account": "sangsir",
      "memo_key": "STM7v1pSEBhYbvF6U8Xh1WY65mSgFMq1ratRSPwwgU1ef7KZVUzfp",
      "json_metadata": "{\"profile\":{\"profile_image\":\"https://ww2.sinaimg.cn/large/005zWjpnly1fnrzyet5tfj30hs0hsdg8\",\"cover_image\":\"https://ww2.sinaimg.cn/large/005zWjpnly1fnrzz302q7j31hc0xc1kx\",\"name\":\"SangSir\",\"location\":\"Shandong, China\",\"website\":\"https://sangsir.com\",\"about\":\"A wonderful flower in the art world / 艺术界的一朵奇葩\"}}"
    }
  ]
}
sangsirupdated their account properties
2018/01/24 13:30:12
accountsangsir
memo keySTM7v1pSEBhYbvF6U8Xh1WY65mSgFMq1ratRSPwwgU1ef7KZVUzfp
json metadata{"profile":{"profile_image":"https://ww2.sinaimg.cn/large/005zWjpnly1fnrzyet5tfj30hs0hsdg8","cover_image":"https://ww2.sinaimg.cn/large/005zWjpnly1fnrzz302q7j31hc0xc1kx","name":"SangSir","location":"Shandong, China","website":"https://sangsir.com","about":"艺术界的一朵奇葩"}}
Transaction InfoBlock #19259532/Trx f577a3893e80e19f2dea53826e7cfb9d98b72444
View Raw JSON Data
{
  "trx_id": "f577a3893e80e19f2dea53826e7cfb9d98b72444",
  "block": 19259532,
  "trx_in_block": 45,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-01-24T13:30:12",
  "op": [
    "account_update",
    {
      "account": "sangsir",
      "memo_key": "STM7v1pSEBhYbvF6U8Xh1WY65mSgFMq1ratRSPwwgU1ef7KZVUzfp",
      "json_metadata": "{\"profile\":{\"profile_image\":\"https://ww2.sinaimg.cn/large/005zWjpnly1fnrzyet5tfj30hs0hsdg8\",\"cover_image\":\"https://ww2.sinaimg.cn/large/005zWjpnly1fnrzz302q7j31hc0xc1kx\",\"name\":\"SangSir\",\"location\":\"Shandong, China\",\"website\":\"https://sangsir.com\",\"about\":\"艺术界的一朵奇葩\"}}"
    }
  ]
}
2018/01/24 13:07:42
required auths[]
required posting auths["sangsir"]
idfollow
json["follow",{"follower":"sangsir","following":"tumutanzi","what":["blog"]}]
Transaction InfoBlock #19259082/Trx 0461788399b6b4097c6cb4e328660bc2414c29c3
View Raw JSON Data
{
  "trx_id": "0461788399b6b4097c6cb4e328660bc2414c29c3",
  "block": 19259082,
  "trx_in_block": 17,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-01-24T13:07:42",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "sangsir"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"sangsir\",\"following\":\"tumutanzi\",\"what\":[\"blog\"]}]"
    }
  ]
}
sangsirupdated their account properties
2018/01/24 13:04:00
accountsangsir
memo keySTM7v1pSEBhYbvF6U8Xh1WY65mSgFMq1ratRSPwwgU1ef7KZVUzfp
json metadata{"profile":{"profile_image":"https://ww2.sinaimg.cn/large/005zWjpnly1fnrzyet5tfj30hs0hsdg8","cover_image":"https://ww2.sinaimg.cn/large/005zWjpnly1fnrzz302q7j31hc0xc1kx","name":"SangSir","location":"Shandong, China","website":"https://sangsir.com"}}
Transaction InfoBlock #19259008/Trx 793f4458e56b5fbabc09da97d521770c2bba5d6c
View Raw JSON Data
{
  "trx_id": "793f4458e56b5fbabc09da97d521770c2bba5d6c",
  "block": 19259008,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-01-24T13:04:00",
  "op": [
    "account_update",
    {
      "account": "sangsir",
      "memo_key": "STM7v1pSEBhYbvF6U8Xh1WY65mSgFMq1ratRSPwwgU1ef7KZVUzfp",
      "json_metadata": "{\"profile\":{\"profile_image\":\"https://ww2.sinaimg.cn/large/005zWjpnly1fnrzyet5tfj30hs0hsdg8\",\"cover_image\":\"https://ww2.sinaimg.cn/large/005zWjpnly1fnrzz302q7j31hc0xc1kx\",\"name\":\"SangSir\",\"location\":\"Shandong, China\",\"website\":\"https://sangsir.com\"}}"
    }
  ]
}
steemcreated a new account: @sangsir
2018/01/24 00:36:45
fee0.500 STEEM
delegation29700.000000 VESTS
creatorsteem
new account namesangsir
owner{"weight_threshold":1,"account_auths":[],"key_auths":[["STM6Yyi6RApBW43LEBKFb9rXj7tumhikdEcmeHQZENKShKyHETXTb",1]]}
active{"weight_threshold":1,"account_auths":[],"key_auths":[["STM6BQxRk2X4FoFQKAs1a3G1qDX6Z7R4w5rFT1cW1dHLg5RDUpUGY",1]]}
posting{"weight_threshold":1,"account_auths":[],"key_auths":[["STM6XmSkHhMLxSgWad89YCLFRbQW7G3d1HnPsGHT6GYLWr5R1BEjT",1]]}
memo keySTM7v1pSEBhYbvF6U8Xh1WY65mSgFMq1ratRSPwwgU1ef7KZVUzfp
json metadata
extensions[]
Transaction InfoBlock #19244066/Trx 0399f3c93b238f2a1ff112aa1bc81eeec5cb0c43
View Raw JSON Data
{
  "trx_id": "0399f3c93b238f2a1ff112aa1bc81eeec5cb0c43",
  "block": 19244066,
  "trx_in_block": 8,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-01-24T00:36:45",
  "op": [
    "account_create_with_delegation",
    {
      "fee": "0.500 STEEM",
      "delegation": "29700.000000 VESTS",
      "creator": "steem",
      "new_account_name": "sangsir",
      "owner": {
        "weight_threshold": 1,
        "account_auths": [],
        "key_auths": [
          [
            "STM6Yyi6RApBW43LEBKFb9rXj7tumhikdEcmeHQZENKShKyHETXTb",
            1
          ]
        ]
      },
      "active": {
        "weight_threshold": 1,
        "account_auths": [],
        "key_auths": [
          [
            "STM6BQxRk2X4FoFQKAs1a3G1qDX6Z7R4w5rFT1cW1dHLg5RDUpUGY",
            1
          ]
        ]
      },
      "posting": {
        "weight_threshold": 1,
        "account_auths": [],
        "key_auths": [
          [
            "STM6XmSkHhMLxSgWad89YCLFRbQW7G3d1HnPsGHT6GYLWr5R1BEjT",
            1
          ]
        ]
      },
      "memo_key": "STM7v1pSEBhYbvF6U8Xh1WY65mSgFMq1ratRSPwwgU1ef7KZVUzfp",
      "json_metadata": "",
      "extensions": []
    }
  ]
}

Account Metadata

POSTING JSON METADATA
profile{"profile_image":"https://ww2.sinaimg.cn/large/005zWjpnly1fnrzyet5tfj30hs0hsdg8","cover_image":"https://ww2.sinaimg.cn/large/005zWjpnly1fnrzz302q7j31hc0xc1kx","name":"SangSir","location":"Shandong, China","website":"https://sangsir.com","about":"A wonderful flower in the art world / 艺术界的一朵奇葩"}
JSON METADATA
profile{"profile_image":"https://ww2.sinaimg.cn/large/005zWjpnly1fnrzyet5tfj30hs0hsdg8","cover_image":"https://ww2.sinaimg.cn/large/005zWjpnly1fnrzz302q7j31hc0xc1kx","name":"SangSir","location":"Shandong, China","website":"https://sangsir.com","about":"A wonderful flower in the art world / 艺术界的一朵奇葩"}
{
  "posting_json_metadata": {
    "profile": {
      "profile_image": "https://ww2.sinaimg.cn/large/005zWjpnly1fnrzyet5tfj30hs0hsdg8",
      "cover_image": "https://ww2.sinaimg.cn/large/005zWjpnly1fnrzz302q7j31hc0xc1kx",
      "name": "SangSir",
      "location": "Shandong, China",
      "website": "https://sangsir.com",
      "about": "A wonderful flower in the art world / 艺术界的一朵奇葩"
    }
  },
  "json_metadata": {
    "profile": {
      "profile_image": "https://ww2.sinaimg.cn/large/005zWjpnly1fnrzyet5tfj30hs0hsdg8",
      "cover_image": "https://ww2.sinaimg.cn/large/005zWjpnly1fnrzz302q7j31hc0xc1kx",
      "name": "SangSir",
      "location": "Shandong, China",
      "website": "https://sangsir.com",
      "about": "A wonderful flower in the art world / 艺术界的一朵奇葩"
    }
  }
}

Auth Keys

Owner
Single Signature
Public Keys
STM6Yyi6RApBW43LEBKFb9rXj7tumhikdEcmeHQZENKShKyHETXTb1/1
Active
Single Signature
Public Keys
STM6BQxRk2X4FoFQKAs1a3G1qDX6Z7R4w5rFT1cW1dHLg5RDUpUGY1/1
Posting
Single Signature
Public Keys
STM6XmSkHhMLxSgWad89YCLFRbQW7G3d1HnPsGHT6GYLWr5R1BEjT1/1
Memo
STM7v1pSEBhYbvF6U8Xh1WY65mSgFMq1ratRSPwwgU1ef7KZVUzfp
{
  "owner": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM6Yyi6RApBW43LEBKFb9rXj7tumhikdEcmeHQZENKShKyHETXTb",
        1
      ]
    ]
  },
  "active": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM6BQxRk2X4FoFQKAs1a3G1qDX6Z7R4w5rFT1cW1dHLg5RDUpUGY",
        1
      ]
    ]
  },
  "posting": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM6XmSkHhMLxSgWad89YCLFRbQW7G3d1HnPsGHT6GYLWr5R1BEjT",
        1
      ]
    ]
  },
  "memo": "STM7v1pSEBhYbvF6U8Xh1WY65mSgFMq1ratRSPwwgU1ef7KZVUzfp"
}

Witness Votes

0 / 30
No active witness votes.
[]