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 DelegationsDeleg
+4.348SP
Detailed Balance
| STEEM | ||
| balance | 0.000STEEM | STEEM |
| market_balance | 0.000STEEM | STEEM |
| savings_balance | 0.000STEEM | STEEM |
| reward_steem_balance | 0.000STEEM | STEEM |
| STEEM POWER | ||
| Own SP | 0.662SP | SP |
| Delegated Out | 0.000SP | SP |
| Delegation In | 4.348SP | SP |
| Effective Power | 5.010SP | SP |
| Reward SP (pending) | 0.000SP | SP |
| SBD | ||
| sbd_balance | 0.140SBD | SBD |
| sbd_conversions | 0.000SBD | SBD |
| sbd_market_balance | 0.000SBD | SBD |
| savings_sbd_balance | 0.000SBD | SBD |
| reward_sbd_balance | 0.000SBD | SBD |
{
"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
| name | sangsir |
| id | 652374 |
| rank | 651,469 |
| reputation | 522500189 |
| created | 2018-01-24T00:36:45 |
| recovery_account | steem |
| proxy | None |
| post_count | 6 |
| comment_count | 0 |
| lifetime_vote_count | 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 |
| proxied_vsf_votes | 0, 0, 0, 0 |
| can_vote | 1 |
| voting_power | 0 |
| delayed_votes | 0 |
| balance | 0.000 STEEM |
| savings_balance | 0.000 STEEM |
| sbd_balance | 0.140 SBD |
| savings_sbd_balance | 0.000 SBD |
| vesting_shares | 1076.625261 VESTS |
| delegated_vesting_shares | 0.000000 VESTS |
| received_vesting_shares | 7067.034545 VESTS |
| reward_vesting_balance | 0.000000 VESTS |
| vesting_balance | 0.000 STEEM |
| vesting_withdraw_rate | 0.000000 VESTS |
| next_vesting_withdrawal | 1969-12-31T23:59:59 |
| withdrawn | 0 |
| to_withdraw | 0 |
| withdraw_routes | 0 |
| savings_withdraw_requests | 0 |
| last_account_recovery | 1970-01-01T00:00:00 |
| reset_account | null |
| last_owner_update | 1970-01-01T00:00:00 |
| last_account_update | 2018-01-24T13:30:36 |
| mined | No |
| sbd_seconds | 0 |
| sbd_last_interest_payment | 1970-01-01T00:00:00 |
| savings_sbd_last_interest_payment | 1970-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
| Incoming | Outgoing |
|---|---|
Empty | Empty |
{
"incoming": [],
"outgoing": []
}From Date
To Date
2026/05/18 06:08:39
2026/05/18 06:08:39
| delegator | steem |
| delegatee | sangsir |
| vesting shares | 7067.034545 VESTS |
| Transaction Info | Block #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"
}
]
}2026/05/13 03:47:57
2026/05/13 03:47:57
| delegator | steem |
| delegatee | sangsir |
| vesting shares | 4354.824140 VESTS |
| Transaction Info | Block #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"
}
]
}2026/04/26 05:20:33
2026/04/26 05:20:33
| delegator | steem |
| delegatee | sangsir |
| vesting shares | 7079.550301 VESTS |
| Transaction Info | Block #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"
}
]
}2026/01/23 23:40:00
2026/01/23 23:40:00
| delegator | steem |
| delegatee | sangsir |
| vesting shares | 4396.370959 VESTS |
| Transaction Info | Block #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"
}
]
}2024/12/17 18:49:54
2024/12/17 18:49:54
| delegator | steem |
| delegatee | sangsir |
| vesting shares | 4560.590156 VESTS |
| Transaction Info | Block #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"
}
]
}2023/11/14 10:31:27
2023/11/14 10:31:27
| delegator | steem |
| delegatee | sangsir |
| vesting shares | 4729.723688 VESTS |
| Transaction Info | Block #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"
}
]
}2023/09/22 10:13:51
2023/09/22 10:13:51
| delegator | steem |
| delegatee | sangsir |
| vesting shares | 7666.632474 VESTS |
| Transaction Info | Block #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"
}
]
}2022/11/03 17:42:24
2022/11/03 17:42:24
| delegator | steem |
| delegatee | sangsir |
| vesting shares | 7888.683912 VESTS |
| Transaction Info | Block #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"
}
]
}2022/01/17 22:54:57
2022/01/17 22:54:57
| delegator | steem |
| delegatee | sangsir |
| vesting shares | 8108.791513 VESTS |
| Transaction Info | Block #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"
}
]
}2021/06/14 06:06:18
2021/06/14 06:06:18
| delegator | steem |
| delegatee | sangsir |
| vesting shares | 8292.985801 VESTS |
| Transaction Info | Block #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"
}
]
}2020/12/11 16:18:42
2020/12/11 16:18:42
| delegator | steem |
| delegatee | sangsir |
| vesting shares | 8480.407775 VESTS |
| Transaction Info | Block #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"
}
]
}2020/12/06 09:54:27
2020/12/06 09:54:27
| delegator | steem |
| delegatee | sangsir |
| vesting shares | 1912.543513 VESTS |
| Transaction Info | Block #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"
}
]
}2020/12/05 19:56:27
2020/12/05 19:56:27
| delegator | steem |
| delegatee | sangsir |
| vesting shares | 8486.615629 VESTS |
| Transaction Info | Block #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"
}
]
}2020/11/03 02:24:36
2020/11/03 02:24:36
| delegator | steem |
| delegatee | sangsir |
| vesting shares | 1920.017158 VESTS |
| Transaction Info | Block #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"
}
]
}2020/05/09 10:57:24
2020/05/09 10:57:24
| delegator | steem |
| delegatee | sangsir |
| vesting shares | 8689.420988 VESTS |
| Transaction Info | Block #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"
}
]
}2020/05/08 15:20:24
2020/05/08 15:20:24
| delegator | steem |
| delegatee | sangsir |
| vesting shares | 1953.311140 VESTS |
| Transaction Info | Block #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"
}
]
}2020/05/07 15:30:18
2020/05/07 15:30:18
| delegator | steem |
| delegatee | sangsir |
| vesting shares | 8690.283435 VESTS |
| Transaction Info | Block #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
2020/01/24 02:48:18
| parent author | sangsir |
| parent permlink | |
| author | steemitboard |
| permlink | steemitboard-notify-sangsir-20200124t024818000z |
| title | |
| body | Congratulations @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 Info | Block #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\"]}"
}
]
}2019/06/02 20:39:30
2019/06/02 20:39:30
| delegator | steem |
| delegatee | sangsir |
| vesting shares | 8885.627939 VESTS |
| Transaction Info | Block #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
2019/01/24 04:55:27
| parent author | sangsir |
| parent permlink | |
| author | steemitboard |
| permlink | steemitboard-notify-sangsir-20190124t045526000z |
| title | |
| body | Congratulations @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 Info | Block #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\"]}"
}
]
}2018/06/09 17:44:00
2018/06/09 17:44:00
| delegator | steem |
| delegatee | sangsir |
| vesting shares | 9084.902349 VESTS |
| Transaction Info | Block #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"
}
]
}2018/04/15 05:10:21
2018/04/15 05:10:21
| delegator | steem |
| delegatee | sangsir |
| vesting shares | 29496.138814 VESTS |
| Transaction Info | Block #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"
}
]
}2018/03/10 18:50:36
2018/03/10 18:50:36
| voter | joujous |
| author | sangsir |
| permlink | |
| weight | 10000 (100.00%) |
| Transaction Info | Block #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
}
]
}resteemsupportreplied to @sangsir / re-qq-20180310t1701212018/03/10 17:01:33
resteemsupportreplied to @sangsir / re-qq-20180310t170121
2018/03/10 17:01:33
| parent author | sangsir |
| parent permlink | |
| author | resteemsupport |
| permlink | re-qq-20180310t170121 |
| title | |
| body | Hello 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 Info | Block #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 SP2018/03/10 17:00:00
sangsirclaimed reward balance: 0.140 SBD, 0.033 SP
2018/03/10 17:00:00
| account | sangsir |
| reward steem | 0.000 STEEM |
| reward sbd | 0.140 SBD |
| reward vests | 53.197936 VESTS |
| Transaction Info | Block #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"
}
]
}2018/03/10 16:59:00
2018/03/10 16:59:00
| voter | sangsir |
| author | sangsir |
| permlink | |
| weight | 10000 (100.00%) |
| Transaction Info | Block #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
}
]
}2018/03/10 16:59:00
2018/03/10 16:59:00
| parent author | |
| parent permlink | php |
| author | sangsir |
| permlink | |
| 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 Info | Block #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\"}"
}
]
}2018/03/04 15:11:21
2018/03/04 15:11:21
| voter | matihe |
| author | sangsir |
| permlink | python |
| weight | 10000 (100.00%) |
| Transaction Info | Block #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
}
]
}matihereplied to @sangsir / re-sangsir-python-20180304t151117788z2018/03/04 15:11:21
matihereplied to @sangsir / re-sangsir-python-20180304t151117788z
2018/03/04 15:11:21
| parent author | sangsir |
| parent permlink | python |
| author | matihe |
| permlink | re-sangsir-python-20180304t151117788z |
| title | |
| body | 最近想学python,感谢分享 |
| json metadata | {"tags":["python"],"app":"steemit/0.1"} |
| Transaction Info | Block #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\"}"
}
]
}2018/03/04 15:07:39
2018/03/04 15:07:39
| voter | sangsir |
| author | sangsir |
| permlink | python |
| weight | 10000 (100.00%) |
| Transaction Info | Block #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
}
]
}2018/03/04 15:07:39
2018/03/04 15:07:39
| parent author | |
| parent permlink | python |
| author | sangsir |
| permlink | python |
| 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 Info | Block #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\"}"
}
]
}2018/03/03 04:52:30
2018/03/03 04:52:30
| voter | sangsir |
| author | sangsir |
| permlink | 71grku |
| weight | 10000 (100.00%) |
| Transaction Info | Block #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
}
]
}2018/03/03 04:51:57
2018/03/03 04:51:57
| voter | sangsir |
| author | sangsir |
| permlink | mysql |
| weight | 10000 (100.00%) |
| Transaction Info | Block #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
}
]
}2018/03/03 04:51:57
2018/03/03 04:51:57
| parent author | |
| parent permlink | mysql |
| author | sangsir |
| permlink | mysql |
| title | MySQL数据库规范及解读 |
| 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 Info | Block #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-20180124t135815495z2018/01/31 13:58:18
sangsirreceived 0.033 SBD, 0.008 SP author reward for @sangsir / re-magicmonk-cn-sbd-20180124t135815495z
2018/01/31 13:58:18
| author | sangsir |
| permlink | re-magicmonk-cn-sbd-20180124t135815495z |
| sbd payout | 0.033 SBD |
| steem payout | 0.000 STEEM |
| vesting payout | 12.276442 VESTS |
| Transaction Info | Block #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"
}
]
}2018/01/31 13:46:03
2018/01/31 13:46:03
| author | sangsir |
| permlink | 71grku |
| sbd payout | 0.107 SBD |
| steem payout | 0.000 STEEM |
| vesting payout | 40.921494 VESTS |
| Transaction Info | Block #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
2018/01/28 05:33:48
| 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"} |
| Transaction Info | Block #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\"}"
}
]
}2018/01/25 11:27:06
2018/01/25 11:27:06
| voter | magicmonk |
| author | sangsir |
| permlink | 71grku |
| weight | 1000 (10.00%) |
| Transaction Info | Block #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
}
]
}magicmonkupvoted (6.00%) @sangsir / re-magicmonk-cn-sbd-20180124t135815495z2018/01/24 21:30:21
magicmonkupvoted (6.00%) @sangsir / re-magicmonk-cn-sbd-20180124t135815495z
2018/01/24 21:30:21
| voter | magicmonk |
| author | sangsir |
| permlink | re-magicmonk-cn-sbd-20180124t135815495z |
| weight | 600 (6.00%) |
| Transaction Info | Block #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 / 71grku2018/01/24 14:45:45
pilgrimlifeupvoted (3.00%) @sangsir / 71grku
2018/01/24 14:45:45
| voter | pilgrimlife |
| author | sangsir |
| permlink | 71grku |
| weight | 300 (3.00%) |
| Transaction Info | Block #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
}
]
}pilgrimlifereplied to @sangsir / re-sangsir-71grku-20180124t144454349z2018/01/24 14:45:39
pilgrimlifereplied to @sangsir / re-sangsir-71grku-20180124t144454349z
2018/01/24 14:45:39
| parent author | sangsir |
| parent permlink | 71grku |
| author | pilgrimlife |
| permlink | re-sangsir-71grku-20180124t144454349z |
| title | |
| body | 欢迎 |
| json metadata | {"tags":["cn"],"app":"steemit/0.1"} |
| Transaction Info | Block #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\"}"
}
]
}lopezdacruzreplied to @sangsir / re-71grku-20180124t1419212018/01/24 14:19:21
lopezdacruzreplied to @sangsir / re-71grku-20180124t141921
2018/01/24 14:19:21
| parent author | sangsir |
| parent permlink | 71grku |
| author | lopezdacruz |
| permlink | re-71grku-20180124t141921 |
| title | |
| body | welcome sangsir! Glad to see your here |
| json metadata | |
| Transaction Info | Block #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
2018/01/24 14:02:15
| parent author | dongfengman |
| parent permlink | 2gn33m |
| author | sangsir |
| permlink | re-dongfengman-2gn33m-20180124t140208211z |
| title | |
| body | 深有体会!我爸妈在经营一家小饭馆,只要放学或者周末都会去帮忙,在馆子里能够看到遇到形形色色的人 |
| json metadata | {"tags":["cn"],"app":"steemit/0.1"} |
| Transaction Info | Block #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 / 2gn33m2018/01/24 14:00:09
sangsirupvoted (100.00%) @dongfengman / 2gn33m
2018/01/24 14:00:09
| voter | sangsir |
| author | dongfengman |
| permlink | 2gn33m |
| weight | 10000 (100.00%) |
| Transaction Info | Block #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
}
]
}sangsirreplied to @magicmonk / re-magicmonk-cn-sbd-20180124t135815495z2018/01/24 13:58:18
sangsirreplied to @magicmonk / re-magicmonk-cn-sbd-20180124t135815495z
2018/01/24 13:58:18
| 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"} |
| Transaction Info | Block #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\"}"
}
]
}2018/01/24 13:55:36
2018/01/24 13:55:36
| voter | cqf |
| author | sangsir |
| permlink | 71grku |
| weight | 100 (1.00%) |
| Transaction Info | Block #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-sbd2018/01/24 13:54:57
sangsirupvoted (100.00%) @magicmonk / cn-sbd
2018/01/24 13:54:57
| voter | sangsir |
| author | magicmonk |
| permlink | cn-sbd |
| weight | 10000 (100.00%) |
| Transaction Info | Block #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 / 71grku2018/01/24 13:48:03
muhammadiksanupvoted (100.00%) @sangsir / 71grku
2018/01/24 13:48:03
| voter | muhammadiksan |
| author | sangsir |
| permlink | 71grku |
| weight | 10000 (100.00%) |
| Transaction Info | Block #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 / 71grku2018/01/24 13:47:03
bottymcbotfaceupvoted (1.00%) @sangsir / 71grku
2018/01/24 13:47:03
| voter | bottymcbotface |
| author | sangsir |
| permlink | 71grku |
| weight | 100 (1.00%) |
| Transaction Info | Block #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 / 71grku2018/01/24 13:46:06
cn-naughty.boyupvoted (23.37%) @sangsir / 71grku
2018/01/24 13:46:06
| voter | cn-naughty.boy |
| author | sangsir |
| permlink | 71grku |
| weight | 2337 (23.37%) |
| Transaction Info | Block #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
}
]
}2018/01/24 13:46:03
2018/01/24 13:46:03
| parent author | |
| parent permlink | cn |
| author | sangsir |
| permlink | 71grku |
| title | 新人报到,请多关照! |
| body | 大家好, ====== 我是SangSir,来自山东 98年生,专业是视觉传达设计 是的,我是个美术生,不过正干着程序猿的活儿 估计我是艺术界的一朵奇葩(这应该是最符合我的定义了) 有位老板跟我说程序与设计之间有一道不可逾越的鸿沟 一个属于理性,一个属于感性,两者不可能兼得 这个鸿沟,我正在用坚持与兴趣来弥补 在现实生活中, ========= 目前在上大学,是一名不起眼的小人物 我喜欢游泳/轮滑/山地车/摄影/绘画 也热爱旅行,为此特意写了一个小网页来记录[我去过的地方](https://lab.sangsir.com/footmark/)←进去看看 (在发完这篇文章之后的26日我就会去宁波玩~有没有宁波的小伙伴~) 虽说爱旅行,但旅行途中的花费都是由写代码所赚到的Money,因为不想问我爸妈要辛苦钱去享乐 对自己喜欢的事情富有执行力 在steemit的计划, ========= 首先很荣幸的能在@tumutanzi的博客中看到有关steemit的介绍能够加入这个大家庭 之后我计划将[我的博客](https://sangsir.com/)中有趣有技术性的原创文章分享到这里,博文与steemit同步发表 因为爱旅行,但还从未写过游记,所以想在这里分享我在旅行途中的流水账和趣事 放两张去香港时的照片, ==============  (*本人)  (*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 Info | Block #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\n(*本人)\n\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 properties2018/01/24 13:30:36
sangsirupdated their account properties
2018/01/24 13:30:36
| 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 / 艺术界的一朵奇葩"}} |
| Transaction Info | Block #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 properties2018/01/24 13:30:12
sangsirupdated their account properties
2018/01/24 13:30:12
| 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":"艺术界的一朵奇葩"}} |
| Transaction Info | Block #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\":\"艺术界的一朵奇葩\"}}"
}
]
}sangsirfollowed @tumutanzi2018/01/24 13:07:42
sangsirfollowed @tumutanzi
2018/01/24 13:07:42
| required auths | [] |
| required posting auths | ["sangsir"] |
| id | follow |
| json | ["follow",{"follower":"sangsir","following":"tumutanzi","what":["blog"]}] |
| Transaction Info | Block #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 properties2018/01/24 13:04:00
sangsirupdated their account properties
2018/01/24 13:04:00
| 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"}} |
| Transaction Info | Block #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\"}}"
}
]
}2018/01/24 00:36:45
2018/01/24 00:36:45
| 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 | [] |
| Transaction Info | Block #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": []
}
]
}Manabar
Voting Power100.00%
Downvote Power100.00%
Resource Credits100.00%
Reputation Progress0.00%
{
"voting_manabar": {
"current_mana": "8143659806",
"last_update_time": 1779084519
},
"downvote_manabar": {
"current_mana": 2035914951,
"last_update_time": 1779084519
},
"rc_account": {
"account": "sangsir",
"rc_manabar": {
"current_mana": "10164408779",
"last_update_time": 1779084519
},
"max_rc_creation_adjustment": {
"amount": "2020748973",
"precision": 6,
"nai": "@@000000037"
},
"max_rc": "10164408779"
}
}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.
[]