VOTING POWER100.00%
DOWNVOTE POWER100.00%
RESOURCE CREDITS100.00%
REPUTATION PROGRESS43.39%
Net Worth
1.201USD
STEEM
0.000STEEM
SBD
0.123SBD
Own SP
19.694SP
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 | 19.694SP | SP |
| Delegated Out | 0.000SP | SP |
| Delegation In | 0.000SP | SP |
| Effective Power | 19.694SP | SP |
| Reward SP (pending) | 0.125SP | SP |
| SBD | ||
| sbd_balance | 0.000SBD | SBD |
| sbd_conversions | 0.000SBD | SBD |
| sbd_market_balance | 0.000SBD | SBD |
| savings_sbd_balance | 0.000SBD | SBD |
| reward_sbd_balance | 0.123SBD | SBD |
{
"balance": "0.000 STEEM",
"savings_balance": "0.000 STEEM",
"reward_steem_balance": "0.000 STEEM",
"vesting_shares": "32031.912180 VESTS",
"delegated_vesting_shares": "0.000000 VESTS",
"received_vesting_shares": "0.000000 VESTS",
"sbd_balance": "0.000 SBD",
"savings_sbd_balance": "0.000 SBD",
"reward_sbd_balance": "0.123 SBD",
"conversions": []
}Account Info
| name | hqfzone |
| id | 82730 |
| rank | 75,448 |
| reputation | 1443196505 |
| created | 2016-09-04T02:50:21 |
| recovery_account | steem |
| proxy | None |
| post_count | 9 |
| comment_count | 0 |
| lifetime_vote_count | 0 |
| witnesses_voted_for | 0 |
| last_post | 2017-07-12T10:49:06 |
| last_root_post | 2017-07-12T10:49:06 |
| last_vote_time | 2017-07-12T11:16:21 |
| proxied_vsf_votes | 0, 0, 0, 0 |
| can_vote | 1 |
| voting_power | 7,010 |
| delayed_votes | 0 |
| balance | 0.000 STEEM |
| savings_balance | 0.000 STEEM |
| sbd_balance | 0.000 SBD |
| savings_sbd_balance | 0.000 SBD |
| vesting_shares | 32031.912180 VESTS |
| delegated_vesting_shares | 0.000000 VESTS |
| received_vesting_shares | 0.000000 VESTS |
| reward_vesting_balance | 258.350684 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 | 2017-07-13T08:31:30 |
| 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": 82730,
"name": "hqfzone",
"owner": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM4yZph2Mr3Bi2KbS8P7esEykr591Wc3E8CcxKhrxWL6oCaJg5gp",
1
]
]
},
"active": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM7a5FYrzxiJkTBxcVLHqnGsA4XRVzQj7KXV31nHX9e6HE4QdwXA",
1
]
]
},
"posting": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM6ggrqWhhtoWrDmoUPpoE9cxmNM5TqAvP2pUTy4yXsBZ4TvLCTu",
1
]
]
},
"memo_key": "STM8kBbX3QTUiVhMCmGgvK6sFwo4DBtdq9Y1kdmXHQTYP6vDZCAV5",
"json_metadata": "{\"profile\":{\"website\":\"https://qifu.me/\",\"name\":\"_\"}}",
"posting_json_metadata": "{\"profile\":{\"website\":\"https://qifu.me/\",\"name\":\"_\"}}",
"proxy": "",
"last_owner_update": "1970-01-01T00:00:00",
"last_account_update": "2017-07-13T08:31:30",
"created": "2016-09-04T02:50:21",
"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": 9,
"can_vote": true,
"voting_manabar": {
"current_mana": 7010,
"last_update_time": 1499858181
},
"downvote_manabar": {
"current_mana": 0,
"last_update_time": 1472957421
},
"voting_power": 7010,
"balance": "0.000 STEEM",
"savings_balance": "0.000 STEEM",
"sbd_balance": "0.000 SBD",
"sbd_seconds": "0",
"sbd_seconds_last_update": "1970-01-01T00:00:00",
"sbd_last_interest_payment": "1970-01-01T00:00:00",
"savings_sbd_balance": "0.000 SBD",
"savings_sbd_seconds": "0",
"savings_sbd_seconds_last_update": "1970-01-01T00:00:00",
"savings_sbd_last_interest_payment": "1970-01-01T00:00:00",
"savings_withdraw_requests": 0,
"reward_sbd_balance": "0.123 SBD",
"reward_steem_balance": "0.000 STEEM",
"reward_vesting_balance": "258.350684 VESTS",
"reward_vesting_steem": "0.125 STEEM",
"vesting_shares": "32031.912180 VESTS",
"delegated_vesting_shares": "0.000000 VESTS",
"received_vesting_shares": "0.000000 VESTS",
"vesting_withdraw_rate": "0.000000 VESTS",
"next_vesting_withdrawal": "1969-12-31T23:59:59",
"withdrawn": 0,
"to_withdraw": 0,
"withdraw_routes": 0,
"curation_rewards": 0,
"posting_rewards": 248,
"proxied_vsf_votes": [
0,
0,
0,
0
],
"witnesses_voted_for": 0,
"last_post": "2017-07-12T10:49:06",
"last_root_post": "2017-07-12T10:49:06",
"last_vote_time": "2017-07-12T11:16:21",
"post_bandwidth": 0,
"pending_claimed_accounts": 0,
"vesting_balance": "0.000 STEEM",
"reputation": 1443196505,
"transfer_history": [],
"market_history": [],
"post_history": [],
"vote_history": [],
"other_history": [],
"witness_votes": [],
"tags_usage": [],
"guest_bloggers": [],
"rank": 75448
}Withdraw Routes
| Incoming | Outgoing |
|---|---|
Empty | Empty |
{
"incoming": [],
"outgoing": []
}From Date
To Date
2019/09/04 04:51:48
2019/09/04 04:51:48
| parent author | hqfzone |
| parent permlink | css-calc-nth-of-type |
| author | steemitboard |
| permlink | steemitboard-notify-hqfzone-20190904t045147000z |
| title | |
| body | Congratulations @hqfzone! You received a personal award! <table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@hqfzone/birthday3.png</td><td>Happy Birthday! - You are on the Steem blockchain for 3 years!</td></tr></table> <sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@hqfzone) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=hqfzone)_</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 #36118228/Trx 88a698fbcaccc04eb765585352d15ad9a455945b |
View Raw JSON Data
{
"trx_id": "88a698fbcaccc04eb765585352d15ad9a455945b",
"block": 36118228,
"trx_in_block": 0,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-09-04T04:51:48",
"op": [
"comment",
{
"parent_author": "hqfzone",
"parent_permlink": "css-calc-nth-of-type",
"author": "steemitboard",
"permlink": "steemitboard-notify-hqfzone-20190904t045147000z",
"title": "",
"body": "Congratulations @hqfzone! You received a personal award!\n\n<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@hqfzone/birthday3.png</td><td>Happy Birthday! - You are on the Steem blockchain for 3 years!</td></tr></table>\n\n<sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@hqfzone) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=hqfzone)_</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\"]}"
}
]
}hqfzonereceived 0.031 SBD, 0.041 SP author reward for @hqfzone / css-calc-nth-of-type2017/07/19 10:49:06
hqfzonereceived 0.031 SBD, 0.041 SP author reward for @hqfzone / css-calc-nth-of-type
2017/07/19 10:49:06
| author | hqfzone |
| permlink | css-calc-nth-of-type |
| sbd payout | 0.031 SBD |
| steem payout | 0.000 STEEM |
| vesting payout | 66.137728 VESTS |
| Transaction Info | Block #13817602/Virtual Operation #3 |
View Raw JSON Data
{
"trx_id": "0000000000000000000000000000000000000000",
"block": 13817602,
"trx_in_block": 4294967295,
"op_in_trx": 0,
"virtual_op": 3,
"timestamp": "2017-07-19T10:49:06",
"op": [
"author_reward",
{
"author": "hqfzone",
"permlink": "css-calc-nth-of-type",
"sbd_payout": "0.031 SBD",
"steem_payout": "0.000 STEEM",
"vesting_payout": "66.137728 VESTS"
}
]
}hqfzonereceived 0.029 SBD, 0.038 SP author reward for @hqfzone / dns-glue-record2017/07/19 10:29:33
hqfzonereceived 0.029 SBD, 0.038 SP author reward for @hqfzone / dns-glue-record
2017/07/19 10:29:33
| author | hqfzone |
| permlink | dns-glue-record |
| sbd payout | 0.029 SBD |
| steem payout | 0.000 STEEM |
| vesting payout | 62.004165 VESTS |
| Transaction Info | Block #13817211/Virtual Operation #10 |
View Raw JSON Data
{
"trx_id": "0000000000000000000000000000000000000000",
"block": 13817211,
"trx_in_block": 4294967295,
"op_in_trx": 0,
"virtual_op": 10,
"timestamp": "2017-07-19T10:29:33",
"op": [
"author_reward",
{
"author": "hqfzone",
"permlink": "dns-glue-record",
"sbd_payout": "0.029 SBD",
"steem_payout": "0.000 STEEM",
"vesting_payout": "62.004165 VESTS"
}
]
}2017/07/19 10:22:45
2017/07/19 10:22:45
| author | hqfzone |
| permlink | http-csp |
| sbd payout | 0.033 SBD |
| steem payout | 0.000 STEEM |
| vesting payout | 68.204598 VESTS |
| Transaction Info | Block #13817075/Virtual Operation #3 |
View Raw JSON Data
{
"trx_id": "0000000000000000000000000000000000000000",
"block": 13817075,
"trx_in_block": 4294967295,
"op_in_trx": 0,
"virtual_op": 3,
"timestamp": "2017-07-19T10:22:45",
"op": [
"author_reward",
{
"author": "hqfzone",
"permlink": "http-csp",
"sbd_payout": "0.033 SBD",
"steem_payout": "0.000 STEEM",
"vesting_payout": "68.204598 VESTS"
}
]
}2017/07/19 10:17:30
2017/07/19 10:17:30
| author | hqfzone |
| permlink | dmarc |
| sbd payout | 0.030 SBD |
| steem payout | 0.000 STEEM |
| vesting payout | 62.004193 VESTS |
| Transaction Info | Block #13816970/Virtual Operation #8 |
View Raw JSON Data
{
"trx_id": "0000000000000000000000000000000000000000",
"block": 13816970,
"trx_in_block": 4294967295,
"op_in_trx": 0,
"virtual_op": 8,
"timestamp": "2017-07-19T10:17:30",
"op": [
"author_reward",
{
"author": "hqfzone",
"permlink": "dmarc",
"sbd_payout": "0.030 SBD",
"steem_payout": "0.000 STEEM",
"vesting_payout": "62.004193 VESTS"
}
]
}hqfzoneupdated their account properties2017/07/13 08:31:30
hqfzoneupdated their account properties
2017/07/13 08:31:30
| account | hqfzone |
| memo key | STM8kBbX3QTUiVhMCmGgvK6sFwo4DBtdq9Y1kdmXHQTYP6vDZCAV5 |
| json metadata | {"profile":{"website":"https://qifu.me/","name":"_"}} |
| Transaction Info | Block #13642217/Trx fa3b5250de4c675d68f1cecaf65595c1575ed05e |
View Raw JSON Data
{
"trx_id": "fa3b5250de4c675d68f1cecaf65595c1575ed05e",
"block": 13642217,
"trx_in_block": 4,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-13T08:31:30",
"op": [
"account_update",
{
"account": "hqfzone",
"memo_key": "STM8kBbX3QTUiVhMCmGgvK6sFwo4DBtdq9Y1kdmXHQTYP6vDZCAV5",
"json_metadata": "{\"profile\":{\"website\":\"https://qifu.me/\",\"name\":\"_\"}}"
}
]
}hqfzoneupdated their account properties2017/07/13 08:31:18
hqfzoneupdated their account properties
2017/07/13 08:31:18
| account | hqfzone |
| memo key | STM8kBbX3QTUiVhMCmGgvK6sFwo4DBtdq9Y1kdmXHQTYP6vDZCAV5 |
| json metadata | {"profile":{"website":"https://qifu.me/","location":"Hefei","name":"_"}} |
| Transaction Info | Block #13642213/Trx 13b01fa448481f0fead95fb4cc1f38782296b502 |
View Raw JSON Data
{
"trx_id": "13b01fa448481f0fead95fb4cc1f38782296b502",
"block": 13642213,
"trx_in_block": 3,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-13T08:31:18",
"op": [
"account_update",
{
"account": "hqfzone",
"memo_key": "STM8kBbX3QTUiVhMCmGgvK6sFwo4DBtdq9Y1kdmXHQTYP6vDZCAV5",
"json_metadata": "{\"profile\":{\"website\":\"https://qifu.me/\",\"location\":\"Hefei\",\"name\":\"_\"}}"
}
]
}hqfzoneupdated their account properties2017/07/13 08:28:09
hqfzoneupdated their account properties
2017/07/13 08:28:09
| account | hqfzone |
| memo key | STM8kBbX3QTUiVhMCmGgvK6sFwo4DBtdq9Y1kdmXHQTYP6vDZCAV5 |
| json metadata | {"profile":{"profile_image":"http://www.gravatar.com/avatar/b62a214453c2836a7365803b19eef8c2?s=800","website":"https://qifu.me/","location":"Hefei"}} |
| Transaction Info | Block #13642150/Trx ae931579a7ad83447466ce26b7a95ba0192d0f76 |
View Raw JSON Data
{
"trx_id": "ae931579a7ad83447466ce26b7a95ba0192d0f76",
"block": 13642150,
"trx_in_block": 3,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-13T08:28:09",
"op": [
"account_update",
{
"account": "hqfzone",
"memo_key": "STM8kBbX3QTUiVhMCmGgvK6sFwo4DBtdq9Y1kdmXHQTYP6vDZCAV5",
"json_metadata": "{\"profile\":{\"profile_image\":\"http://www.gravatar.com/avatar/b62a214453c2836a7365803b19eef8c2?s=800\",\"website\":\"https://qifu.me/\",\"location\":\"Hefei\"}}"
}
]
}enlilupvoted (0.30%) @hqfzone / dns-glue-record2017/07/13 08:28:03
enlilupvoted (0.30%) @hqfzone / dns-glue-record
2017/07/13 08:28:03
| voter | enlil |
| author | hqfzone |
| permlink | dns-glue-record |
| weight | 30 (0.30%) |
| Transaction Info | Block #13642148/Trx e466a72613f494de017b8a5851e0d00c63cbd574 |
View Raw JSON Data
{
"trx_id": "e466a72613f494de017b8a5851e0d00c63cbd574",
"block": 13642148,
"trx_in_block": 7,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-13T08:28:03",
"op": [
"vote",
{
"voter": "enlil",
"author": "hqfzone",
"permlink": "dns-glue-record",
"weight": 30
}
]
}2017/07/13 08:27:15
2017/07/13 08:27:15
| voter | enlil |
| author | hqfzone |
| permlink | http-csp |
| weight | 30 (0.30%) |
| Transaction Info | Block #13642132/Trx 60ef8f4d0e3bd7d96ea54dd52885fb4cc2c4ffbb |
View Raw JSON Data
{
"trx_id": "60ef8f4d0e3bd7d96ea54dd52885fb4cc2c4ffbb",
"block": 13642132,
"trx_in_block": 13,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-13T08:27:15",
"op": [
"vote",
{
"voter": "enlil",
"author": "hqfzone",
"permlink": "http-csp",
"weight": 30
}
]
}2017/07/13 08:27:12
2017/07/13 08:27:12
| voter | alphacore |
| author | hqfzone |
| permlink | dmarc |
| weight | 10 (0.10%) |
| Transaction Info | Block #13642131/Trx 09d42ce870d4ad8609340a63f0f88f1379a59f33 |
View Raw JSON Data
{
"trx_id": "09d42ce870d4ad8609340a63f0f88f1379a59f33",
"block": 13642131,
"trx_in_block": 4,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-13T08:27:12",
"op": [
"vote",
{
"voter": "alphacore",
"author": "hqfzone",
"permlink": "dmarc",
"weight": 10
}
]
}2017/07/13 08:27:09
2017/07/13 08:27:09
| voter | enlil |
| author | hqfzone |
| permlink | dmarc |
| weight | 30 (0.30%) |
| Transaction Info | Block #13642130/Trx 89a7f847609c66c131fb4c48231cecbd4750b64c |
View Raw JSON Data
{
"trx_id": "89a7f847609c66c131fb4c48231cecbd4750b64c",
"block": 13642130,
"trx_in_block": 1,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-13T08:27:09",
"op": [
"vote",
{
"voter": "enlil",
"author": "hqfzone",
"permlink": "dmarc",
"weight": 30
}
]
}hqfzonepublished a new post: css-calc-nth-of-type2017/07/13 08:26:51
hqfzonepublished a new post: css-calc-nth-of-type
2017/07/13 08:26:51
| parent author | |
| parent permlink | css |
| author | hqfzone |
| permlink | css-calc-nth-of-type |
| title | Deleted |
| body | <html> <p> Deleted</p> </html> |
| json metadata | {"tags":["deleted","css"],"app":"steemit/0.1","format":"html"} |
| Transaction Info | Block #13642124/Trx 93fa87f4eb1ee87300fbfc5e3e926bc0f31e6fd9 |
View Raw JSON Data
{
"trx_id": "93fa87f4eb1ee87300fbfc5e3e926bc0f31e6fd9",
"block": 13642124,
"trx_in_block": 17,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-13T08:26:51",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "css",
"author": "hqfzone",
"permlink": "css-calc-nth-of-type",
"title": "Deleted",
"body": "<html>\n<p> Deleted</p>\n</html>",
"json_metadata": "{\"tags\":[\"deleted\",\"css\"],\"app\":\"steemit/0.1\",\"format\":\"html\"}"
}
]
}2017/07/13 08:26:48
2017/07/13 08:26:48
| voter | alphacore |
| author | hqfzone |
| permlink | manifest |
| weight | 10 (0.10%) |
| Transaction Info | Block #13642123/Trx 9c686f3ace94194e6a47285a602581bddb6f61c6 |
View Raw JSON Data
{
"trx_id": "9c686f3ace94194e6a47285a602581bddb6f61c6",
"block": 13642123,
"trx_in_block": 19,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-13T08:26:48",
"op": [
"vote",
{
"voter": "alphacore",
"author": "hqfzone",
"permlink": "manifest",
"weight": 10
}
]
}proctologicupvoted (1.00%) @hqfzone / dns-glue-record2017/07/13 08:26:48
proctologicupvoted (1.00%) @hqfzone / dns-glue-record
2017/07/13 08:26:48
| voter | proctologic |
| author | hqfzone |
| permlink | dns-glue-record |
| weight | 100 (1.00%) |
| Transaction Info | Block #13642123/Trx ae72c01f74f015972cc5c1e655dbd011fe3461f3 |
View Raw JSON Data
{
"trx_id": "ae72c01f74f015972cc5c1e655dbd011fe3461f3",
"block": 13642123,
"trx_in_block": 8,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-13T08:26:48",
"op": [
"vote",
{
"voter": "proctologic",
"author": "hqfzone",
"permlink": "dns-glue-record",
"weight": 100
}
]
}proctologicupvoted (1.00%) @hqfzone / http-csp2017/07/13 08:26:36
proctologicupvoted (1.00%) @hqfzone / http-csp
2017/07/13 08:26:36
| voter | proctologic |
| author | hqfzone |
| permlink | http-csp |
| weight | 100 (1.00%) |
| Transaction Info | Block #13642119/Trx a13e92ece0b141bc782e99a0e8f1eb0d1ce11bf2 |
View Raw JSON Data
{
"trx_id": "a13e92ece0b141bc782e99a0e8f1eb0d1ce11bf2",
"block": 13642119,
"trx_in_block": 2,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-13T08:26:36",
"op": [
"vote",
{
"voter": "proctologic",
"author": "hqfzone",
"permlink": "http-csp",
"weight": 100
}
]
}proctologicupvoted (1.00%) @hqfzone / dmarc2017/07/13 08:26:18
proctologicupvoted (1.00%) @hqfzone / dmarc
2017/07/13 08:26:18
| voter | proctologic |
| author | hqfzone |
| permlink | dmarc |
| weight | 100 (1.00%) |
| Transaction Info | Block #13642113/Trx edec89f303b979a0fb32ba9e8464175adb8265d2 |
View Raw JSON Data
{
"trx_id": "edec89f303b979a0fb32ba9e8464175adb8265d2",
"block": 13642113,
"trx_in_block": 5,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-13T08:26:18",
"op": [
"vote",
{
"voter": "proctologic",
"author": "hqfzone",
"permlink": "dmarc",
"weight": 100
}
]
}proctologicupvoted (1.00%) @hqfzone / 2jshuk2017/07/13 08:25:48
proctologicupvoted (1.00%) @hqfzone / 2jshuk
2017/07/13 08:25:48
| voter | proctologic |
| author | hqfzone |
| permlink | 2jshuk |
| weight | 100 (1.00%) |
| Transaction Info | Block #13642103/Trx d0d5ec2990750228575996d7531bcce1750a3a36 |
View Raw JSON Data
{
"trx_id": "d0d5ec2990750228575996d7531bcce1750a3a36",
"block": 13642103,
"trx_in_block": 4,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-13T08:25:48",
"op": [
"vote",
{
"voter": "proctologic",
"author": "hqfzone",
"permlink": "2jshuk",
"weight": 100
}
]
}hqfzonepublished a new post: dns-glue-record2017/07/13 08:25:48
hqfzonepublished a new post: dns-glue-record
2017/07/13 08:25:48
| parent author | |
| parent permlink | dns |
| author | hqfzone |
| permlink | dns-glue-record |
| title | Deleted |
| body | Deleted |
| json metadata | {"tags":["deleted","dns"],"app":"steemit/0.1","format":"markdown"} |
| Transaction Info | Block #13642103/Trx d0ab1e9ce6ac797ed2ffa8c883365f2ebb49ae08 |
View Raw JSON Data
{
"trx_id": "d0ab1e9ce6ac797ed2ffa8c883365f2ebb49ae08",
"block": 13642103,
"trx_in_block": 1,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-13T08:25:48",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "dns",
"author": "hqfzone",
"permlink": "dns-glue-record",
"title": "Deleted",
"body": "Deleted",
"json_metadata": "{\"tags\":[\"deleted\",\"dns\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
}
]
}proctologicupvoted (1.00%) @hqfzone / service-worker2017/07/13 08:25:39
proctologicupvoted (1.00%) @hqfzone / service-worker
2017/07/13 08:25:39
| voter | proctologic |
| author | hqfzone |
| permlink | service-worker |
| weight | 100 (1.00%) |
| Transaction Info | Block #13642100/Trx e99eb5ff9caed6013d42215854be9f16c22ec401 |
View Raw JSON Data
{
"trx_id": "e99eb5ff9caed6013d42215854be9f16c22ec401",
"block": 13642100,
"trx_in_block": 2,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-13T08:25:39",
"op": [
"vote",
{
"voter": "proctologic",
"author": "hqfzone",
"permlink": "service-worker",
"weight": 100
}
]
}2017/07/13 08:25:30
2017/07/13 08:25:30
| parent author | |
| parent permlink | http |
| author | hqfzone |
| permlink | http-csp |
| title | Deleted |
| body | <html> <p> Deleted </p> </html> |
| json metadata | {"tags":["deleted","http"],"app":"steemit/0.1","format":"html"} |
| Transaction Info | Block #13642097/Trx 913a1dc215c73d86b1a879ed8f3d8562f6ddb4c4 |
View Raw JSON Data
{
"trx_id": "913a1dc215c73d86b1a879ed8f3d8562f6ddb4c4",
"block": 13642097,
"trx_in_block": 13,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-13T08:25:30",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "http",
"author": "hqfzone",
"permlink": "http-csp",
"title": "Deleted",
"body": "<html>\n<p> Deleted </p>\n</html>",
"json_metadata": "{\"tags\":[\"deleted\",\"http\"],\"app\":\"steemit/0.1\",\"format\":\"html\"}"
}
]
}proctologicupvoted (1.00%) @hqfzone / manifest2017/07/13 08:25:18
proctologicupvoted (1.00%) @hqfzone / manifest
2017/07/13 08:25:18
| voter | proctologic |
| author | hqfzone |
| permlink | manifest |
| weight | 100 (1.00%) |
| Transaction Info | Block #13642093/Trx 7d1b40593936ecdb4ae4d8c3530cd0aeb20c9465 |
View Raw JSON Data
{
"trx_id": "7d1b40593936ecdb4ae4d8c3530cd0aeb20c9465",
"block": 13642093,
"trx_in_block": 16,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-13T08:25:18",
"op": [
"vote",
{
"voter": "proctologic",
"author": "hqfzone",
"permlink": "manifest",
"weight": 100
}
]
}2017/07/13 08:25:18
2017/07/13 08:25:18
| parent author | |
| parent permlink | web |
| author | hqfzone |
| permlink | dmarc |
| title | Deleted |
| body | <html> <p> Deleted </p> </html> |
| json metadata | {"tags":["deleted","web"],"app":"steemit/0.1","format":"html"} |
| Transaction Info | Block #13642093/Trx 039d5d531c31df09f3f38a115706a6e7c6479f94 |
View Raw JSON Data
{
"trx_id": "039d5d531c31df09f3f38a115706a6e7c6479f94",
"block": 13642093,
"trx_in_block": 6,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-13T08:25:18",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "web",
"author": "hqfzone",
"permlink": "dmarc",
"title": "Deleted",
"body": "<html>\n<p> Deleted </p>\n</html>",
"json_metadata": "{\"tags\":[\"deleted\",\"web\"],\"app\":\"steemit/0.1\",\"format\":\"html\"}"
}
]
}2017/07/13 08:24:54
2017/07/13 08:24:54
| parent author | |
| parent permlink | paris |
| author | hqfzone |
| permlink | 2jshuk |
| title | Deleted |
| body | <html> <p> Deleted </p> </html> |
| json metadata | {"tags":["deleted","paris"],"app":"steemit/0.1","format":"html"} |
| Transaction Info | Block #13642085/Trx 98cb62acdc9c3f33d4b0c57ad11e736cbe10532c |
View Raw JSON Data
{
"trx_id": "98cb62acdc9c3f33d4b0c57ad11e736cbe10532c",
"block": 13642085,
"trx_in_block": 13,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-13T08:24:54",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "paris",
"author": "hqfzone",
"permlink": "2jshuk",
"title": "Deleted",
"body": "<html>\n<p> Deleted </p>\n</html>",
"json_metadata": "{\"tags\":[\"deleted\",\"paris\"],\"app\":\"steemit/0.1\",\"format\":\"html\"}"
}
]
}hqfzonepublished a new post: service-worker2017/07/13 08:24:36
hqfzonepublished a new post: service-worker
2017/07/13 08:24:36
| parent author | |
| parent permlink | serviceworker |
| author | hqfzone |
| permlink | service-worker |
| title | Deleted |
| body | <html> <p> Deleted </p> </html> |
| json metadata | {"tags":["deleted","serviceworker"],"app":"steemit/0.1","format":"html"} |
| Transaction Info | Block #13642079/Trx 69e90244e09e163c3166796f8a19c573747650ba |
View Raw JSON Data
{
"trx_id": "69e90244e09e163c3166796f8a19c573747650ba",
"block": 13642079,
"trx_in_block": 0,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-13T08:24:36",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "serviceworker",
"author": "hqfzone",
"permlink": "service-worker",
"title": "Deleted",
"body": "<html>\n<p> Deleted </p>\n</html>",
"json_metadata": "{\"tags\":[\"deleted\",\"serviceworker\"],\"app\":\"steemit/0.1\",\"format\":\"html\"}"
}
]
}2017/07/13 08:24:15
2017/07/13 08:24:15
| parent author | |
| parent permlink | manifest |
| author | hqfzone |
| permlink | manifest |
| title | Deleted |
| body | <html> <p> Deleted </p> </html> |
| json metadata | {"tags":["deleted","manifest"],"app":"steemit/0.1","format":"html"} |
| Transaction Info | Block #13642072/Trx 3f047e44be4be7690408ac57dd50e049344af936 |
View Raw JSON Data
{
"trx_id": "3f047e44be4be7690408ac57dd50e049344af936",
"block": 13642072,
"trx_in_block": 3,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-13T08:24:15",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "manifest",
"author": "hqfzone",
"permlink": "manifest",
"title": "Deleted",
"body": "<html>\n<p> Deleted </p>\n</html>",
"json_metadata": "{\"tags\":[\"deleted\",\"manifest\"],\"app\":\"steemit/0.1\",\"format\":\"html\"}"
}
]
}enlilupvoted (0.30%) @hqfzone / css-calc-nth-of-type2017/07/13 08:23:42
enlilupvoted (0.30%) @hqfzone / css-calc-nth-of-type
2017/07/13 08:23:42
| voter | enlil |
| author | hqfzone |
| permlink | css-calc-nth-of-type |
| weight | 30 (0.30%) |
| Transaction Info | Block #13642061/Trx fdc22217dbf98a3f4d69b601b02de28f071287b4 |
View Raw JSON Data
{
"trx_id": "fdc22217dbf98a3f4d69b601b02de28f071287b4",
"block": 13642061,
"trx_in_block": 0,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-13T08:23:42",
"op": [
"vote",
{
"voter": "enlil",
"author": "hqfzone",
"permlink": "css-calc-nth-of-type",
"weight": 30
}
]
}proctologicupvoted (1.00%) @hqfzone / 2uzytm2017/07/13 08:23:36
proctologicupvoted (1.00%) @hqfzone / 2uzytm
2017/07/13 08:23:36
| voter | proctologic |
| author | hqfzone |
| permlink | 2uzytm |
| weight | 100 (1.00%) |
| Transaction Info | Block #13642059/Trx 244dbb4a47a0360c84d9717b2407b87e3f1ea83d |
View Raw JSON Data
{
"trx_id": "244dbb4a47a0360c84d9717b2407b87e3f1ea83d",
"block": 13642059,
"trx_in_block": 5,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-13T08:23:36",
"op": [
"vote",
{
"voter": "proctologic",
"author": "hqfzone",
"permlink": "2uzytm",
"weight": 100
}
]
}proctologicupvoted (1.00%) @hqfzone / mbsubstr-mbstrimwidth2017/07/13 08:23:33
proctologicupvoted (1.00%) @hqfzone / mbsubstr-mbstrimwidth
2017/07/13 08:23:33
| voter | proctologic |
| author | hqfzone |
| permlink | mbsubstr-mbstrimwidth |
| weight | 100 (1.00%) |
| Transaction Info | Block #13642058/Trx 096cc78c28edff2d12e21cec5f19ca7afa5772cc |
View Raw JSON Data
{
"trx_id": "096cc78c28edff2d12e21cec5f19ca7afa5772cc",
"block": 13642058,
"trx_in_block": 4,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-13T08:23:33",
"op": [
"vote",
{
"voter": "proctologic",
"author": "hqfzone",
"permlink": "mbsubstr-mbstrimwidth",
"weight": 100
}
]
}proctologicupvoted (1.00%) @hqfzone / css-calc-nth-of-type2017/07/13 08:22:45
proctologicupvoted (1.00%) @hqfzone / css-calc-nth-of-type
2017/07/13 08:22:45
| voter | proctologic |
| author | hqfzone |
| permlink | css-calc-nth-of-type |
| weight | 100 (1.00%) |
| Transaction Info | Block #13642042/Trx 5efcbcaa25b4fe88103c99b2d5357d1cd07238f5 |
View Raw JSON Data
{
"trx_id": "5efcbcaa25b4fe88103c99b2d5357d1cd07238f5",
"block": 13642042,
"trx_in_block": 11,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-13T08:22:45",
"op": [
"vote",
{
"voter": "proctologic",
"author": "hqfzone",
"permlink": "css-calc-nth-of-type",
"weight": 100
}
]
}2017/07/13 08:22:36
2017/07/13 08:22:36
| parent author | |
| parent permlink | encoding |
| author | hqfzone |
| permlink | 2uzytm |
| title | Deleted |
| body | Deleted |
| json metadata | {"tags":["deleted","encoding"],"app":"steemit/0.1","format":"markdown"} |
| Transaction Info | Block #13642039/Trx e7bf1989a7110cd7907b66cd7794153b1dc09ba7 |
View Raw JSON Data
{
"trx_id": "e7bf1989a7110cd7907b66cd7794153b1dc09ba7",
"block": 13642039,
"trx_in_block": 7,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-13T08:22:36",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "encoding",
"author": "hqfzone",
"permlink": "2uzytm",
"title": "Deleted",
"body": "Deleted",
"json_metadata": "{\"tags\":[\"deleted\",\"encoding\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
}
]
}hqfzonepublished a new post: mbsubstr-mbstrimwidth2017/07/13 08:22:18
hqfzonepublished a new post: mbsubstr-mbstrimwidth
2017/07/13 08:22:18
| parent author | |
| parent permlink | php |
| author | hqfzone |
| permlink | mbsubstr-mbstrimwidth |
| title | Deleted |
| body | <html> <p> Deleted</p> </html> |
| json metadata | {"tags":["deleted","php"],"app":"steemit/0.1","format":"html"} |
| Transaction Info | Block #13642033/Trx 5ded95ec58db76856a6158f2906d41c4d629c641 |
View Raw JSON Data
{
"trx_id": "5ded95ec58db76856a6158f2906d41c4d629c641",
"block": 13642033,
"trx_in_block": 10,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-13T08:22:18",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "php",
"author": "hqfzone",
"permlink": "mbsubstr-mbstrimwidth",
"title": "Deleted",
"body": "<html>\n<p> Deleted</p>\n</html>",
"json_metadata": "{\"tags\":[\"deleted\",\"php\"],\"app\":\"steemit/0.1\",\"format\":\"html\"}"
}
]
}hqfzonepublished a new post: css-calc-nth-of-type2017/07/13 08:21:51
hqfzonepublished a new post: css-calc-nth-of-type
2017/07/13 08:21:51
| parent author | |
| parent permlink | css |
| author | hqfzone |
| permlink | css-calc-nth-of-type |
| title | Deleted |
| body | <html> <p> Deleted</p> </html> |
| json metadata | {"tags":["deleted","css"],"app":"steemit/0.1","format":"html"} |
| Transaction Info | Block #13642024/Trx aaaa371880b8389e8a4c117f620f7e27863920fb |
View Raw JSON Data
{
"trx_id": "aaaa371880b8389e8a4c117f620f7e27863920fb",
"block": 13642024,
"trx_in_block": 3,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-13T08:21:51",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "css",
"author": "hqfzone",
"permlink": "css-calc-nth-of-type",
"title": "Deleted",
"body": "<html>\n<p> Deleted</p>\n</html>",
"json_metadata": "{\"tags\":[\"deleted\",\"css\"],\"app\":\"steemit/0.1\",\"format\":\"html\"}"
}
]
}2017/07/12 22:35:48
2017/07/12 22:35:48
| parent author | hqfzone |
| parent permlink | css-calc-nth-of-type |
| author | steemitboard |
| permlink | steemitboard-notify-hqfzone-20170712t223550000z |
| title | |
| body | Congratulations @hqfzone! You have completed some achievement on Steemit and have been rewarded with new badge(s) : [](http://steemitboard.com/@hqfzone) Award for the number of upvotes [](http://steemitboard.com/@hqfzone) Award for the number of upvotes received Click on any badge to view your own Board of Honor on SteemitBoard. For more information about SteemitBoard, click [here](https://steemit.com/@steemitboard) If you no longer want to receive notifications, reply to this comment with the word `STOP` > By upvoting this notification, you can help all Steemit users. Learn how [here](https://steemit.com/steemitboard/@steemitboard/http-i-cubeupload-com-7ciqeo-png)! |
| json metadata | {"image":["https://steemitboard.com/img/notifications.png"]} |
| Transaction Info | Block #13630321/Trx ceb9225c6effd7f659aa44c5ebc440117af597ce |
View Raw JSON Data
{
"trx_id": "ceb9225c6effd7f659aa44c5ebc440117af597ce",
"block": 13630321,
"trx_in_block": 22,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T22:35:48",
"op": [
"comment",
{
"parent_author": "hqfzone",
"parent_permlink": "css-calc-nth-of-type",
"author": "steemitboard",
"permlink": "steemitboard-notify-hqfzone-20170712t223550000z",
"title": "",
"body": "Congratulations @hqfzone! You have completed some achievement on Steemit and have been rewarded with new badge(s) :\n\n[](http://steemitboard.com/@hqfzone) Award for the number of upvotes\n[](http://steemitboard.com/@hqfzone) Award for the number of upvotes received\n\nClick on any badge to view your own Board of Honor on SteemitBoard.\nFor more information about SteemitBoard, click [here](https://steemit.com/@steemitboard)\n\nIf you no longer want to receive notifications, reply to this comment with the word `STOP`\n\n> By upvoting this notification, you can help all Steemit users. Learn how [here](https://steemit.com/steemitboard/@steemitboard/http-i-cubeupload-com-7ciqeo-png)!",
"json_metadata": "{\"image\":[\"https://steemitboard.com/img/notifications.png\"]}"
}
]
}2017/07/12 11:31:27
2017/07/12 11:31:27
| voter | hqfzone |
| author | laiseec |
| permlink | steemit |
| weight | 10000 (100.00%) |
| Transaction Info | Block #13617038/Trx a6ddec44b3a7bc79f1ad05e7d6fb1f5d735da591 |
View Raw JSON Data
{
"trx_id": "a6ddec44b3a7bc79f1ad05e7d6fb1f5d735da591",
"block": 13617038,
"trx_in_block": 13,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T11:31:27",
"op": [
"vote",
{
"voter": "hqfzone",
"author": "laiseec",
"permlink": "steemit",
"weight": 10000
}
]
}2017/07/12 11:31:12
2017/07/12 11:31:12
| required auths | [] |
| required posting auths | ["hqfzone"] |
| id | follow |
| json | ["follow",{"follower":"hqfzone","following":"laiseec","what":["blog"]}] |
| Transaction Info | Block #13617033/Trx 5b4e3924c2a0591f4348c61a8a3e4963169f89a2 |
View Raw JSON Data
{
"trx_id": "5b4e3924c2a0591f4348c61a8a3e4963169f89a2",
"block": 13617033,
"trx_in_block": 7,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T11:31:12",
"op": [
"custom_json",
{
"required_auths": [],
"required_posting_auths": [
"hqfzone"
],
"id": "follow",
"json": "[\"follow\",{\"follower\":\"hqfzone\",\"following\":\"laiseec\",\"what\":[\"blog\"]}]"
}
]
}hqfzonefollowed @sweetsssj2017/07/12 11:30:54
hqfzonefollowed @sweetsssj
2017/07/12 11:30:54
| required auths | [] |
| required posting auths | ["hqfzone"] |
| id | follow |
| json | ["follow",{"follower":"hqfzone","following":"sweetsssj","what":["blog"]}] |
| Transaction Info | Block #13617027/Trx ad2261812ff9889b83d0c93fb61202460e69fff3 |
View Raw JSON Data
{
"trx_id": "ad2261812ff9889b83d0c93fb61202460e69fff3",
"block": 13617027,
"trx_in_block": 17,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T11:30:54",
"op": [
"custom_json",
{
"required_auths": [],
"required_posting_auths": [
"hqfzone"
],
"id": "follow",
"json": "[\"follow\",{\"follower\":\"hqfzone\",\"following\":\"sweetsssj\",\"what\":[\"blog\"]}]"
}
]
}2017/07/12 11:25:18
2017/07/12 11:25:18
| required auths | [] |
| required posting auths | ["hqfzone"] |
| id | follow |
| json | ["follow",{"follower":"hqfzone","following":"justyy","what":["blog"]}] |
| Transaction Info | Block #13616915/Trx 5630de5433edb05a3e05b1f78b70d4ae458225bc |
View Raw JSON Data
{
"trx_id": "5630de5433edb05a3e05b1f78b70d4ae458225bc",
"block": 13616915,
"trx_in_block": 14,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T11:25:18",
"op": [
"custom_json",
{
"required_auths": [],
"required_posting_auths": [
"hqfzone"
],
"id": "follow",
"json": "[\"follow\",{\"follower\":\"hqfzone\",\"following\":\"justyy\",\"what\":[\"blog\"]}]"
}
]
}hqfzoneupvoted (100.00%) @morquai / fukuoka-night-view2017/07/12 11:16:21
hqfzoneupvoted (100.00%) @morquai / fukuoka-night-view
2017/07/12 11:16:21
| voter | hqfzone |
| author | morquai |
| permlink | fukuoka-night-view |
| weight | 10000 (100.00%) |
| Transaction Info | Block #13616736/Trx 12457ee395ea596bcaf5a07309ff1ea8ed5b1cb4 |
View Raw JSON Data
{
"trx_id": "12457ee395ea596bcaf5a07309ff1ea8ed5b1cb4",
"block": 13616736,
"trx_in_block": 1,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T11:16:21",
"op": [
"vote",
{
"voter": "hqfzone",
"author": "morquai",
"permlink": "fukuoka-night-view",
"weight": 10000
}
]
}hqfzoneupvoted (100.00%) @mabre / das-bekannteste-symbol-fuer-die-sehnsucht-ist-die-blaue-blume2017/07/12 11:16:06
hqfzoneupvoted (100.00%) @mabre / das-bekannteste-symbol-fuer-die-sehnsucht-ist-die-blaue-blume
2017/07/12 11:16:06
| voter | hqfzone |
| author | mabre |
| permlink | das-bekannteste-symbol-fuer-die-sehnsucht-ist-die-blaue-blume |
| weight | 10000 (100.00%) |
| Transaction Info | Block #13616731/Trx e5e37b04678cc233901814f9ee7e75f15e6cfa7f |
View Raw JSON Data
{
"trx_id": "e5e37b04678cc233901814f9ee7e75f15e6cfa7f",
"block": 13616731,
"trx_in_block": 4,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T11:16:06",
"op": [
"vote",
{
"voter": "hqfzone",
"author": "mabre",
"permlink": "das-bekannteste-symbol-fuer-die-sehnsucht-ist-die-blaue-blume",
"weight": 10000
}
]
}hqfzoneupdated their account properties2017/07/12 11:13:48
hqfzoneupdated their account properties
2017/07/12 11:13:48
| account | hqfzone |
| memo key | STM8kBbX3QTUiVhMCmGgvK6sFwo4DBtdq9Y1kdmXHQTYP6vDZCAV5 |
| json metadata | {"profile":{"profile_image":"http://www.gravatar.com/avatar/b62a214453c2836a7365803b19eef8c2?s=800","name":"启福","website":"https://qifu.me/","location":"Hefei","about":"寥寥数语,皆我心之所慨……"}} |
| Transaction Info | Block #13616685/Trx 74e1345a80f773c278a60c5aacd52a5a75b505d4 |
View Raw JSON Data
{
"trx_id": "74e1345a80f773c278a60c5aacd52a5a75b505d4",
"block": 13616685,
"trx_in_block": 5,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T11:13:48",
"op": [
"account_update",
{
"account": "hqfzone",
"memo_key": "STM8kBbX3QTUiVhMCmGgvK6sFwo4DBtdq9Y1kdmXHQTYP6vDZCAV5",
"json_metadata": "{\"profile\":{\"profile_image\":\"http://www.gravatar.com/avatar/b62a214453c2836a7365803b19eef8c2?s=800\",\"name\":\"启福\",\"website\":\"https://qifu.me/\",\"location\":\"Hefei\",\"about\":\"寥寥数语,皆我心之所慨……\"}}"
}
]
}2017/07/12 11:09:00
2017/07/12 11:09:00
| voter | hqfzone |
| author | hannahwu |
| permlink | 4w18oy |
| weight | 10000 (100.00%) |
| Transaction Info | Block #13616589/Trx 102ee0d8b0f3bfe13f16eb99ab827c9a212a6190 |
View Raw JSON Data
{
"trx_id": "102ee0d8b0f3bfe13f16eb99ab827c9a212a6190",
"block": 13616589,
"trx_in_block": 21,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T11:09:00",
"op": [
"vote",
{
"voter": "hqfzone",
"author": "hannahwu",
"permlink": "4w18oy",
"weight": 10000
}
]
}2017/07/12 11:08:51
2017/07/12 11:08:51
| required auths | [] |
| required posting auths | ["hqfzone"] |
| id | follow |
| json | ["follow",{"follower":"hqfzone","following":"hannahwu","what":["blog"]}] |
| Transaction Info | Block #13616586/Trx 19185ae07c0da0e797884b152fe1180770ab592d |
View Raw JSON Data
{
"trx_id": "19185ae07c0da0e797884b152fe1180770ab592d",
"block": 13616586,
"trx_in_block": 10,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T11:08:51",
"op": [
"custom_json",
{
"required_auths": [],
"required_posting_auths": [
"hqfzone"
],
"id": "follow",
"json": "[\"follow\",{\"follower\":\"hqfzone\",\"following\":\"hannahwu\",\"what\":[\"blog\"]}]"
}
]
}2017/07/12 11:07:33
2017/07/12 11:07:33
| parent author | |
| parent permlink | paris |
| author | hqfzone |
| permlink | 2jshuk |
| title | 巴黎之行 |
| body | @@ -1,15 +1,128 @@ %3Chtml%3E%0A +%3Cp%3E%3Cimg src=%22https://ww4.sinaimg.cn/large/694c610ejw1f9ta16fv52j22uo3tc4qs.jpg%22 width=%223696%22 height=%224944%22/%3E%3C/p%3E%0A %3Cp%3E%E6%AD%A3%E5%A6%82%E8%80%81%E6%9D%BF%E6%89%80 |
| json metadata | {"tags":["travel","paris","france"],"app":"steemit/0.1","format":"html","image":["https://ww4.sinaimg.cn/large/694c610ejw1f9ta16fv52j22uo3tc4qs.jpg"]} |
| Transaction Info | Block #13616560/Trx c9f4b00245cd068b855a033ff3fe9c8db1e0225f |
View Raw JSON Data
{
"trx_id": "c9f4b00245cd068b855a033ff3fe9c8db1e0225f",
"block": 13616560,
"trx_in_block": 7,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T11:07:33",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "paris",
"author": "hqfzone",
"permlink": "2jshuk",
"title": "巴黎之行",
"body": "@@ -1,15 +1,128 @@\n %3Chtml%3E%0A\n+%3Cp%3E%3Cimg src=%22https://ww4.sinaimg.cn/large/694c610ejw1f9ta16fv52j22uo3tc4qs.jpg%22 width=%223696%22 height=%224944%22/%3E%3C/p%3E%0A\n %3Cp%3E%E6%AD%A3%E5%A6%82%E8%80%81%E6%9D%BF%E6%89%80\n",
"json_metadata": "{\"tags\":[\"travel\",\"paris\",\"france\"],\"app\":\"steemit/0.1\",\"format\":\"html\",\"image\":[\"https://ww4.sinaimg.cn/large/694c610ejw1f9ta16fv52j22uo3tc4qs.jpg\"]}"
}
]
}2017/07/12 11:05:03
2017/07/12 11:05:03
| voter | hqfzone |
| author | hannahwu |
| permlink | 5wprmx |
| weight | 10000 (100.00%) |
| Transaction Info | Block #13616510/Trx f1008bd3dfea171128e5cd3ac04c412aa46d4e15 |
View Raw JSON Data
{
"trx_id": "f1008bd3dfea171128e5cd3ac04c412aa46d4e15",
"block": 13616510,
"trx_in_block": 19,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T11:05:03",
"op": [
"vote",
{
"voter": "hqfzone",
"author": "hannahwu",
"permlink": "5wprmx",
"weight": 10000
}
]
}hqfzoneupvoted (100.00%) @arielthemermaid / self-introducing-the-reincarnation-of-ariel-the-mermaid-hehe2017/07/12 11:04:51
hqfzoneupvoted (100.00%) @arielthemermaid / self-introducing-the-reincarnation-of-ariel-the-mermaid-hehe
2017/07/12 11:04:51
| voter | hqfzone |
| author | arielthemermaid |
| permlink | self-introducing-the-reincarnation-of-ariel-the-mermaid-hehe |
| weight | 10000 (100.00%) |
| Transaction Info | Block #13616506/Trx 22782d0e48aa11d02672c16ee923fde5fa0f396f |
View Raw JSON Data
{
"trx_id": "22782d0e48aa11d02672c16ee923fde5fa0f396f",
"block": 13616506,
"trx_in_block": 13,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T11:04:51",
"op": [
"vote",
{
"voter": "hqfzone",
"author": "arielthemermaid",
"permlink": "self-introducing-the-reincarnation-of-ariel-the-mermaid-hehe",
"weight": 10000
}
]
}hqfzonefollowed @arielthemermaid2017/07/12 11:04:00
hqfzonefollowed @arielthemermaid
2017/07/12 11:04:00
| required auths | [] |
| required posting auths | ["hqfzone"] |
| id | follow |
| json | ["follow",{"follower":"hqfzone","following":"arielthemermaid","what":["blog"]}] |
| Transaction Info | Block #13616489/Trx a48413f50f81366482d50889a3efbd1620f69f42 |
View Raw JSON Data
{
"trx_id": "a48413f50f81366482d50889a3efbd1620f69f42",
"block": 13616489,
"trx_in_block": 16,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T11:04:00",
"op": [
"custom_json",
{
"required_auths": [],
"required_posting_auths": [
"hqfzone"
],
"id": "follow",
"json": "[\"follow\",{\"follower\":\"hqfzone\",\"following\":\"arielthemermaid\",\"what\":[\"blog\"]}]"
}
]
}hqfzonefollowed @mustarzil2017/07/12 11:03:42
hqfzonefollowed @mustarzil
2017/07/12 11:03:42
| required auths | [] |
| required posting auths | ["hqfzone"] |
| id | follow |
| json | ["follow",{"follower":"hqfzone","following":"mustarzil","what":["blog"]}] |
| Transaction Info | Block #13616483/Trx 63873919eb9aef2223251c8035ce95f06f37b5fd |
View Raw JSON Data
{
"trx_id": "63873919eb9aef2223251c8035ce95f06f37b5fd",
"block": 13616483,
"trx_in_block": 5,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T11:03:42",
"op": [
"custom_json",
{
"required_auths": [],
"required_posting_auths": [
"hqfzone"
],
"id": "follow",
"json": "[\"follow\",{\"follower\":\"hqfzone\",\"following\":\"mustarzil\",\"what\":[\"blog\"]}]"
}
]
}2017/07/12 11:03:00
2017/07/12 11:03:00
| voter | hqfzone |
| author | mustarzil |
| permlink | beautiful-appearance-of-nature-plus-the-arrival-of-a-rainbow-that-is-so-charming-not-just-one-but-there-are-two-that-appear-2017712t174732483z |
| weight | 10000 (100.00%) |
| Transaction Info | Block #13616469/Trx 3697dd8a9fb51526c4bd149e8f0c0dea6807dedf |
View Raw JSON Data
{
"trx_id": "3697dd8a9fb51526c4bd149e8f0c0dea6807dedf",
"block": 13616469,
"trx_in_block": 6,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T11:03:00",
"op": [
"vote",
{
"voter": "hqfzone",
"author": "mustarzil",
"permlink": "beautiful-appearance-of-nature-plus-the-arrival-of-a-rainbow-that-is-so-charming-not-just-one-but-there-are-two-that-appear-2017712t174732483z",
"weight": 10000
}
]
}2017/07/12 11:02:45
2017/07/12 11:02:45
| voter | hqfzone |
| author | mustarzil |
| permlink | beautiful-night-stars-in-the-sky-of-aceh-that-shines-on-a-beautiful-night-2017712t17821188z |
| weight | 10000 (100.00%) |
| Transaction Info | Block #13616464/Trx f03a72a03aaf42fdbebb7d4e119a0929540695cf |
View Raw JSON Data
{
"trx_id": "f03a72a03aaf42fdbebb7d4e119a0929540695cf",
"block": 13616464,
"trx_in_block": 16,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T11:02:45",
"op": [
"vote",
{
"voter": "hqfzone",
"author": "mustarzil",
"permlink": "beautiful-night-stars-in-the-sky-of-aceh-that-shines-on-a-beautiful-night-2017712t17821188z",
"weight": 10000
}
]
}mustarzilupvoted (100.00%) @hqfzone / css-calc-nth-of-type2017/07/12 10:49:51
mustarzilupvoted (100.00%) @hqfzone / css-calc-nth-of-type
2017/07/12 10:49:51
| voter | mustarzil |
| author | hqfzone |
| permlink | css-calc-nth-of-type |
| weight | 10000 (100.00%) |
| Transaction Info | Block #13616207/Trx 30ab1accc3145522b4d6318986a5d4388c081f03 |
View Raw JSON Data
{
"trx_id": "30ab1accc3145522b4d6318986a5d4388c081f03",
"block": 13616207,
"trx_in_block": 6,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T10:49:51",
"op": [
"vote",
{
"voter": "mustarzil",
"author": "hqfzone",
"permlink": "css-calc-nth-of-type",
"weight": 10000
}
]
}hqfzoneupvoted (100.00%) @hqfzone / css-calc-nth-of-type2017/07/12 10:49:06
hqfzoneupvoted (100.00%) @hqfzone / css-calc-nth-of-type
2017/07/12 10:49:06
| voter | hqfzone |
| author | hqfzone |
| permlink | css-calc-nth-of-type |
| weight | 10000 (100.00%) |
| Transaction Info | Block #13616192/Trx 8a6874ae5e3e62daae9a34d3b6284e9b200efebe |
View Raw JSON Data
{
"trx_id": "8a6874ae5e3e62daae9a34d3b6284e9b200efebe",
"block": 13616192,
"trx_in_block": 1,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T10:49:06",
"op": [
"vote",
{
"voter": "hqfzone",
"author": "hqfzone",
"permlink": "css-calc-nth-of-type",
"weight": 10000
}
]
}hqfzonepublished a new post: css-calc-nth-of-type2017/07/12 10:49:06
hqfzonepublished a new post: css-calc-nth-of-type
2017/07/12 10:49:06
| parent author | |
| parent permlink | css |
| author | hqfzone |
| permlink | css-calc-nth-of-type |
| title | CSS中的calc()以及nth-of-type() |
| body | <html> <p> 昨天折腾某主题时发现,两列的相册和一列的相册,右端对不齐。我当然忍不了,于是看了一下它的css文件,发现原来是主题的原作者数学不好,最大宽度算错了,而且宽度width小于最大宽度max-width,他这逻辑也是可以了……</p> <p>不过在css文件中,还是学到了一点东西的,比如“calc()”,括号里面可以填写表达式,表达式里面允许使用“+、-、*、/、()”。</p> <p>在通常的css属性比如宽度中,指定百分比“%”或者像素“px”就够了,但是使用calc()可以更加灵活。比如,一行有三个div,它们的外边距margin都是固定的10px,那么每个div的宽度如何设置,才可以保证在响应式页面中,无论父元素宽度怎么变化,始终可以刚刚好填满呢?设置“width: 33.3%;”?由于外边距的存在,三个div的总宽度显然会超出父元素的宽度。设置小一点比如“width: 30%;”?那么当父级宽度大于600px时,则填不满;小于600px时,则超出。</p> <p>在这种情况下,就可以设置“width: calc(100% / 3 – 20px);”,完美解决以上问题。当然,为了兼容性,通常需要把带浏览器前缀的一并写上,如下:</p> <pre><code>.div-123{<br> margin:10px;<br> width:27%;<br> //向不支持calc()的浏览器妥协,该百分比保证父级最小宽度为320px时不超出;或者将margin修改为百分比形式!<br> width: -moz-calc(100% / 3 - 20px);<br> width: -webkit-calc(100% / 3 - 20px);<br> width: calc(100% / 3 - 20px);<br> }</code></pre> <p>大部分浏览器都可以支持了,除非很老的,那就要尝试其它css属性值或者用js了。需要注意的是,表达式中的加减号,前后必须有空格,否则识别错误。</p> <p>还有一个css选择器“:nth-of-type(N)”,它可以用来选择【其父元素的特定类型的第N个子元素】,里面的N可以写数字,表示第几个;可以是关键词比如odd或even,表示所有的奇数或者偶数;还可以是表达式比如3n,表示所有3的倍数(n代表自增的整数)。还是以上述div举例,假如每行有三个div,有很多行,我希望给每行的最后一个div设置一个橙色的右边框,怎么办?如下:</p> <pre><code>.div-123:nth-of-type(3n){<br> border-right:1px solid orange;<br> }</code></pre> <p>当然,还有个与它类似的“:nth-child(N)”,用法大体相似,它可以用来选择【其父元素的第N个子元素,不论元素的类型】。简单总结一下就是N在计数时,“:nth-child(N)”把父元素的所有子元素全数一遍,而“:nth-of-type(N)”只数与“:”前面的标签相同的子元素。</p> <p>之前只用过“first-child”、“last-child”这些简单的选择器,所以今天简单分享一下哈。 </p> </html> |
| json metadata | {"tags":["css","calc"],"app":"steemit/0.1","format":"html"} |
| Transaction Info | Block #13616192/Trx 8a6874ae5e3e62daae9a34d3b6284e9b200efebe |
View Raw JSON Data
{
"trx_id": "8a6874ae5e3e62daae9a34d3b6284e9b200efebe",
"block": 13616192,
"trx_in_block": 1,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T10:49:06",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "css",
"author": "hqfzone",
"permlink": "css-calc-nth-of-type",
"title": "CSS中的calc()以及nth-of-type()",
"body": "<html>\n<p> 昨天折腾某主题时发现,两列的相册和一列的相册,右端对不齐。我当然忍不了,于是看了一下它的css文件,发现原来是主题的原作者数学不好,最大宽度算错了,而且宽度width小于最大宽度max-width,他这逻辑也是可以了……</p>\n<p>不过在css文件中,还是学到了一点东西的,比如“calc()”,括号里面可以填写表达式,表达式里面允许使用“+、-、*、/、()”。</p>\n<p>在通常的css属性比如宽度中,指定百分比“%”或者像素“px”就够了,但是使用calc()可以更加灵活。比如,一行有三个div,它们的外边距margin都是固定的10px,那么每个div的宽度如何设置,才可以保证在响应式页面中,无论父元素宽度怎么变化,始终可以刚刚好填满呢?设置“width: 33.3%;”?由于外边距的存在,三个div的总宽度显然会超出父元素的宽度。设置小一点比如“width: 30%;”?那么当父级宽度大于600px时,则填不满;小于600px时,则超出。</p>\n<p>在这种情况下,就可以设置“width: calc(100% / 3 – 20px);”,完美解决以上问题。当然,为了兼容性,通常需要把带浏览器前缀的一并写上,如下:</p>\n<pre><code>.div-123{<br>\n margin:10px;<br>\n width:27%;<br>\n //向不支持calc()的浏览器妥协,该百分比保证父级最小宽度为320px时不超出;或者将margin修改为百分比形式!<br>\n width: -moz-calc(100% / 3 - 20px);<br>\n width: -webkit-calc(100% / 3 - 20px);<br>\n width: calc(100% / 3 - 20px);<br>\n}</code></pre>\n<p>大部分浏览器都可以支持了,除非很老的,那就要尝试其它css属性值或者用js了。需要注意的是,表达式中的加减号,前后必须有空格,否则识别错误。</p>\n<p>还有一个css选择器“:nth-of-type(N)”,它可以用来选择【其父元素的特定类型的第N个子元素】,里面的N可以写数字,表示第几个;可以是关键词比如odd或even,表示所有的奇数或者偶数;还可以是表达式比如3n,表示所有3的倍数(n代表自增的整数)。还是以上述div举例,假如每行有三个div,有很多行,我希望给每行的最后一个div设置一个橙色的右边框,怎么办?如下:</p>\n<pre><code>.div-123:nth-of-type(3n){<br>\n border-right:1px solid orange;<br>\n}</code></pre>\n<p>当然,还有个与它类似的“:nth-child(N)”,用法大体相似,它可以用来选择【其父元素的第N个子元素,不论元素的类型】。简单总结一下就是N在计数时,“:nth-child(N)”把父元素的所有子元素全数一遍,而“:nth-of-type(N)”只数与“:”前面的标签相同的子元素。</p>\n<p>之前只用过“first-child”、“last-child”这些简单的选择器,所以今天简单分享一下哈。 </p>\n</html>",
"json_metadata": "{\"tags\":[\"css\",\"calc\"],\"app\":\"steemit/0.1\",\"format\":\"html\"}"
}
]
}hqfzonepublished a new post: service-worker2017/07/12 10:44:12
hqfzonepublished a new post: service-worker
2017/07/12 10:44:12
| parent author | |
| parent permlink | serviceworker |
| author | hqfzone |
| permlink | service-worker |
| title | Service Worker实现离线缓存 |
| body | <html> <p>上一篇说过的<a href="https://qifu.me/at201612172057/">manifest离线缓存</a>方法虽然被所有主流浏览器的最新版本所支持,但终究还是在web标准中被废弃了,firefox在控制台会提醒使用Service Worker缓存替代。</p> <p>但其实Service Worker还远远没有被普遍支持,仅chrome、firefox和opera的新版本支持,Edge和safari的支持尚在开发中,而且Service Worker要求必须在https网站上使用。所以实际上,在相当长的时间内manifest缓存会一直被各大浏览器支持,不会被轻易删除。新标准的普及需要时间,旧标准的完全退出更需要时间,这个时间,可能长于大部分网站的生命周期……</p> <p>但我还是先试了一下Service Worker,方法同样很简单,第一步先注册Service Worker,类似于manifest方法中在html元素内添加清单文件,只不过这里是在页面注册一个js文件,引入以下js代码即可。</p> <pre><code>if ('serviceWorker' in navigator) {<br> window.addEventListener('load', function() {<br> navigator.serviceWorker.register('/qifu/sw.js').then(function(registration) {<br> console.log('ServiceWorker registration successful with scope: ', registration.scope);<br> }).catch(function(err) {<br> console.log('ServiceWorker registration failed: ', err);<br> });<br> });<br> }</code></pre> <p>注册的这个js文件所在的路径会影响Service Worker的作用域,它在哪个目录下,作用域就包含哪个目录。比如“/qifu/sw.js”就会导致作用域是/qifu/及其下属目录,而放在根目录的话,作用域就是全站。</p> <p>下面是注册的Service Worker文件内容(/qifu/sw.js)。</p> <pre><code>var CACHE_NAME = 'qifu';<br> //缓存名称<br> var urlsToCache = [<br> '/qifu/',<br> 'style.css',<br> 'script.js'<br> ];<br> //要缓存的资源url<br> self.addEventListener('install', function(event) {<br> event.waitUntil(<br> caches.open(CACHE_NAME)<br> .then(function(cache) {<br> console.log('Opened cache');<br> return cache.addAll(urlsToCache);<br> })<br> );<br> });<br> //初始化安装,缓存上面列出的资源<br> self.addEventListener('fetch', function(event) {<br> event.respondWith(<br> caches.match(event.request)<br> .then(function(response) {<br> if (response) {<br> return response;<br> }<br> return fetch(event.request);<br> }<br> )<br> );<br> });<br> //拦截所有请求,缓存过则直接返回</code></pre> <p>首先是安装Service Worker,也就是初始化,告诉浏览器先缓存好哪些内容;然后Service Worker就拦截所有请求,有缓存就直接返回缓存内容。初始化只有第一次以及Service Worker文件有更新后才会触发,否则会被自动跳过。</p> <p>Service Worker缓存之所以被推出用来替代manifest缓存,一个很重要的原因就是更灵活。比如即使初始化时没有缓存某些文件,也可以在后续用到时<a href="https://developers.google.com/web/fundamentals/getting-started/primers/service-workers">自动缓存</a>(具体代码本文不再列出,只比上述代码多几行),而不像manifest一样必须逐一列出要缓存的内容,还不允许通配符CACHE。</p> <p>由于目前浏览器对于Service Worker的支持尚不广泛,可以同时保留manifest缓存,如果支持的话,浏览器检测到两者并存会自动使用Service Worker。</p> <p>类似于manifest缓存,每次打开浏览器,会使用缓存的数据,然后浏览器默默查看Service Worker文件有没有更新,只要有哪怕一个字节的变化,就会重新缓存,新内容同样是下次访问生效。(大部分网站可能都为js文件设置了HTTP缓存,目前浏览器在检查Service Worker文件更新时会遵守http header里面设置的缓存时间,但最长24小时,如果超过了这一数值,浏览器会重新下载Service Worker的js文件。)</p> <p>如果更新后的Service Worker定义了新的缓存名称,通常希望删掉旧的缓存,可以用下面的代码:</p> <pre><code>self.addEventListener('activate', function(event) {<br> var cacheWhitelist = ['not-delete-cache-a', 'not-delete-cache-b'];<br> //上面是不要删除的缓存名,其余全部删除<br> event.waitUntil(<br> caches.keys().then(function(cacheNames) {<br> return Promise.all(<br> cacheNames.map(function(cacheName) {<br> if (cacheWhitelist.indexOf(cacheName) === -1) {<br> return caches.delete(cacheName);<br> }<br> })<br> );<br> })<br> );<br> });</code></pre> <p>好了,就这么简单。</p> </html> |
| json metadata | {"tags":["serviceworker","web","html"],"links":["https://qifu.me/at201612172057/","https://developers.google.com/web/fundamentals/getting-started/primers/service-workers"],"app":"steemit/0.1","format":"html"} |
| Transaction Info | Block #13616094/Trx 5dae4471e57ca5ae158d7329eb7d273de0beae6e |
View Raw JSON Data
{
"trx_id": "5dae4471e57ca5ae158d7329eb7d273de0beae6e",
"block": 13616094,
"trx_in_block": 8,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T10:44:12",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "serviceworker",
"author": "hqfzone",
"permlink": "service-worker",
"title": "Service Worker实现离线缓存",
"body": "<html>\n<p>上一篇说过的<a href=\"https://qifu.me/at201612172057/\">manifest离线缓存</a>方法虽然被所有主流浏览器的最新版本所支持,但终究还是在web标准中被废弃了,firefox在控制台会提醒使用Service Worker缓存替代。</p>\n<p>但其实Service Worker还远远没有被普遍支持,仅chrome、firefox和opera的新版本支持,Edge和safari的支持尚在开发中,而且Service Worker要求必须在https网站上使用。所以实际上,在相当长的时间内manifest缓存会一直被各大浏览器支持,不会被轻易删除。新标准的普及需要时间,旧标准的完全退出更需要时间,这个时间,可能长于大部分网站的生命周期……</p>\n<p>但我还是先试了一下Service Worker,方法同样很简单,第一步先注册Service Worker,类似于manifest方法中在html元素内添加清单文件,只不过这里是在页面注册一个js文件,引入以下js代码即可。</p>\n<pre><code>if ('serviceWorker' in navigator) {<br>\n window.addEventListener('load', function() {<br>\n navigator.serviceWorker.register('/qifu/sw.js').then(function(registration) {<br>\n console.log('ServiceWorker registration successful with scope: ', registration.scope);<br>\n }).catch(function(err) {<br>\n console.log('ServiceWorker registration failed: ', err);<br>\n });<br>\n });<br>\n}</code></pre>\n<p>注册的这个js文件所在的路径会影响Service Worker的作用域,它在哪个目录下,作用域就包含哪个目录。比如“/qifu/sw.js”就会导致作用域是/qifu/及其下属目录,而放在根目录的话,作用域就是全站。</p>\n<p>下面是注册的Service Worker文件内容(/qifu/sw.js)。</p>\n<pre><code>var CACHE_NAME = 'qifu';<br>\n//缓存名称<br>\nvar urlsToCache = [<br>\n '/qifu/',<br>\n 'style.css',<br>\n 'script.js'<br>\n];<br>\n//要缓存的资源url<br>\nself.addEventListener('install', function(event) {<br>\n event.waitUntil(<br>\n caches.open(CACHE_NAME)<br>\n .then(function(cache) {<br>\n console.log('Opened cache');<br>\n return cache.addAll(urlsToCache);<br>\n })<br>\n );<br>\n});<br>\n//初始化安装,缓存上面列出的资源<br>\nself.addEventListener('fetch', function(event) {<br>\n event.respondWith(<br>\n caches.match(event.request)<br>\n .then(function(response) {<br>\n if (response) {<br>\n return response;<br>\n }<br>\n return fetch(event.request);<br>\n }<br>\n )<br>\n );<br>\n});<br>\n//拦截所有请求,缓存过则直接返回</code></pre>\n<p>首先是安装Service Worker,也就是初始化,告诉浏览器先缓存好哪些内容;然后Service Worker就拦截所有请求,有缓存就直接返回缓存内容。初始化只有第一次以及Service Worker文件有更新后才会触发,否则会被自动跳过。</p>\n<p>Service Worker缓存之所以被推出用来替代manifest缓存,一个很重要的原因就是更灵活。比如即使初始化时没有缓存某些文件,也可以在后续用到时<a href=\"https://developers.google.com/web/fundamentals/getting-started/primers/service-workers\">自动缓存</a>(具体代码本文不再列出,只比上述代码多几行),而不像manifest一样必须逐一列出要缓存的内容,还不允许通配符CACHE。</p>\n<p>由于目前浏览器对于Service Worker的支持尚不广泛,可以同时保留manifest缓存,如果支持的话,浏览器检测到两者并存会自动使用Service Worker。</p>\n<p>类似于manifest缓存,每次打开浏览器,会使用缓存的数据,然后浏览器默默查看Service Worker文件有没有更新,只要有哪怕一个字节的变化,就会重新缓存,新内容同样是下次访问生效。(大部分网站可能都为js文件设置了HTTP缓存,目前浏览器在检查Service Worker文件更新时会遵守http header里面设置的缓存时间,但最长24小时,如果超过了这一数值,浏览器会重新下载Service Worker的js文件。)</p>\n<p>如果更新后的Service Worker定义了新的缓存名称,通常希望删掉旧的缓存,可以用下面的代码:</p>\n<pre><code>self.addEventListener('activate', function(event) {<br>\n var cacheWhitelist = ['not-delete-cache-a', 'not-delete-cache-b'];<br>\n//上面是不要删除的缓存名,其余全部删除<br>\n event.waitUntil(<br>\n caches.keys().then(function(cacheNames) {<br>\n return Promise.all(<br>\n cacheNames.map(function(cacheName) {<br>\n if (cacheWhitelist.indexOf(cacheName) === -1) {<br>\n return caches.delete(cacheName);<br>\n }<br>\n })<br>\n );<br>\n })<br>\n );<br>\n});</code></pre>\n<p>好了,就这么简单。</p>\n</html>",
"json_metadata": "{\"tags\":[\"serviceworker\",\"web\",\"html\"],\"links\":[\"https://qifu.me/at201612172057/\",\"https://developers.google.com/web/fundamentals/getting-started/primers/service-workers\"],\"app\":\"steemit/0.1\",\"format\":\"html\"}"
}
]
}hqfzoneupvoted (100.00%) @hqfzone / mbsubstr-mbstrimwidth2017/07/12 10:42:21
hqfzoneupvoted (100.00%) @hqfzone / mbsubstr-mbstrimwidth
2017/07/12 10:42:21
| voter | hqfzone |
| author | hqfzone |
| permlink | mbsubstr-mbstrimwidth |
| weight | 10000 (100.00%) |
| Transaction Info | Block #13616057/Trx e7e6863a6b43ea775efdeeb65c63fffae27ada2a |
View Raw JSON Data
{
"trx_id": "e7e6863a6b43ea775efdeeb65c63fffae27ada2a",
"block": 13616057,
"trx_in_block": 13,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T10:42:21",
"op": [
"vote",
{
"voter": "hqfzone",
"author": "hqfzone",
"permlink": "mbsubstr-mbstrimwidth",
"weight": 10000
}
]
}hqfzonepublished a new post: mbsubstr-mbstrimwidth2017/07/12 10:42:21
hqfzonepublished a new post: mbsubstr-mbstrimwidth
2017/07/12 10:42:21
| parent author | |
| parent permlink | php |
| author | hqfzone |
| permlink | mbsubstr-mbstrimwidth |
| title | mb_substr() 和 mb_strimwidth() 精确截取字符串 |
| body | <html> <p> 估计很多人折腾博客时都有过截断字符串的需求,比如显示文章摘要、评论输出等。</p> <p>通常用到的是 mb_substr() 或 mb_strimwidth(),但是我发现,网上的很多代码并不严谨,比如很多没有加最后的编码参数,不加此参数则使用内部字符编码。</p> <p>因为通常我们的文件是 UTF-8 编码的,如果内部字符编码不是 UTF-8,就很可能出问题(内部字符编码可以用 mb_internal_encoding() 设置)。</p> <p>我在自己服务器(默认的内部字符编码为“ISO-8859-1”)上试了一下,详见下面的代码及结果(注释“//”后的内容为结果,其中“口”代表字符被截断后,无法正常显示的字节片段):</p> <pre><code>[ 本文假定 $str = 'qifu启福'; ]<br> mb_substr($str,0,4)<br> //qifu<br> mb_substr($str,0,5)<br> //qifu口<br> mb_substr($str,0,6)<br> //qifu口口<br> mb_substr($str,0,7)<br> //qifu启<br> <br> mb_substr($str,0,5,'utf-8')<br> //qifu启<br> mb_substr($str,0,6,'utf-8')<br> //qifu启福</code></pre> <p>很明显,不指定 UTF-8 编码时,由于中文字符占三个字节,截取时很容易被拆开,一个中文字符相当于三个英文字符。而指定编码以后,才真的是按字符个数,而不是按字节数截取,mb_strimwidth() 也是一样的。</p> <p>mb_substr() 截取的是字符个数,而 mb_strimwidth() 截取的是字符宽度,如下:</p> <pre><code>mb_strimwidth($str, 0, 4, '','utf-8')<br> //qifu<br> mb_strimwidth($str, 0, 5, '','utf-8')<br> //qifu<br> mb_strimwidth($str, 0, 6, '','utf-8')<br> //qifu启</code></pre> <p>可见 mb_strimwidth() 即不是按字节,也不是按字符截取,而是按照宽度。在 php.net 的说明中指出,多字节字符通常是单字节字符的两倍宽度,也就是说,英文字符占一个宽度,中文占两个,宽度不足以截取一个字符时则不取。</p> <p>当中英文混合时,这个其实比较适合保证截取后的字符串显示宽度一致。但是,如果网页的字体并不是等宽字体,效果也就体现不出来了,因为“m”和“i”所显示的宽度很可能不一样。</p> <p>另外,mb_strimwidth() 中如果指定截取后末尾添加字符串,则截取宽度包含该字符串,如下:</p> <pre><code>mb_strimwidth($str, 0, 3, '.','utf-8')<br> //qi.</code></pre> <p>如果使用这两个函数时,你仔细数一下输出结果,发现字符个数不太对劲,不妨根据本文所述修改代码试一下。 </p> </html> |
| json metadata | {"tags":["php","mbsubstr","mbstrimwidth"],"app":"steemit/0.1","format":"html"} |
| Transaction Info | Block #13616057/Trx e7e6863a6b43ea775efdeeb65c63fffae27ada2a |
View Raw JSON Data
{
"trx_id": "e7e6863a6b43ea775efdeeb65c63fffae27ada2a",
"block": 13616057,
"trx_in_block": 13,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T10:42:21",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "php",
"author": "hqfzone",
"permlink": "mbsubstr-mbstrimwidth",
"title": "mb_substr() 和 mb_strimwidth() 精确截取字符串",
"body": "<html>\n<p> 估计很多人折腾博客时都有过截断字符串的需求,比如显示文章摘要、评论输出等。</p>\n<p>通常用到的是 mb_substr() 或 mb_strimwidth(),但是我发现,网上的很多代码并不严谨,比如很多没有加最后的编码参数,不加此参数则使用内部字符编码。</p>\n<p>因为通常我们的文件是 UTF-8 编码的,如果内部字符编码不是 UTF-8,就很可能出问题(内部字符编码可以用 mb_internal_encoding() 设置)。</p>\n<p>我在自己服务器(默认的内部字符编码为“ISO-8859-1”)上试了一下,详见下面的代码及结果(注释“//”后的内容为结果,其中“口”代表字符被截断后,无法正常显示的字节片段):</p>\n<pre><code>[ 本文假定 $str = 'qifu启福'; ]<br>\nmb_substr($str,0,4)<br>\n//qifu<br>\nmb_substr($str,0,5)<br>\n//qifu口<br>\nmb_substr($str,0,6)<br>\n//qifu口口<br>\nmb_substr($str,0,7)<br>\n//qifu启<br>\n<br>\nmb_substr($str,0,5,'utf-8')<br>\n//qifu启<br>\nmb_substr($str,0,6,'utf-8')<br>\n//qifu启福</code></pre>\n<p>很明显,不指定 UTF-8 编码时,由于中文字符占三个字节,截取时很容易被拆开,一个中文字符相当于三个英文字符。而指定编码以后,才真的是按字符个数,而不是按字节数截取,mb_strimwidth() 也是一样的。</p>\n<p>mb_substr() 截取的是字符个数,而 mb_strimwidth() 截取的是字符宽度,如下:</p>\n<pre><code>mb_strimwidth($str, 0, 4, '','utf-8')<br>\n//qifu<br>\nmb_strimwidth($str, 0, 5, '','utf-8')<br>\n//qifu<br>\nmb_strimwidth($str, 0, 6, '','utf-8')<br>\n//qifu启</code></pre>\n<p>可见 mb_strimwidth() 即不是按字节,也不是按字符截取,而是按照宽度。在 php.net 的说明中指出,多字节字符通常是单字节字符的两倍宽度,也就是说,英文字符占一个宽度,中文占两个,宽度不足以截取一个字符时则不取。</p>\n<p>当中英文混合时,这个其实比较适合保证截取后的字符串显示宽度一致。但是,如果网页的字体并不是等宽字体,效果也就体现不出来了,因为“m”和“i”所显示的宽度很可能不一样。</p>\n<p>另外,mb_strimwidth() 中如果指定截取后末尾添加字符串,则截取宽度包含该字符串,如下:</p>\n<pre><code>mb_strimwidth($str, 0, 3, '.','utf-8')<br>\n//qi.</code></pre>\n<p>如果使用这两个函数时,你仔细数一下输出结果,发现字符个数不太对劲,不妨根据本文所述修改代码试一下。 </p>\n</html>",
"json_metadata": "{\"tags\":[\"php\",\"mbsubstr\",\"mbstrimwidth\"],\"app\":\"steemit/0.1\",\"format\":\"html\"}"
}
]
}2017/07/12 10:42:15
2017/07/12 10:42:15
| parent author | |
| parent permlink | manifest |
| author | hqfzone |
| permlink | manifest |
| title | manifest让网页实现离线访问 |
| body | @@ -920,24 +920,40 @@ %E3%80%82%E6%AF%94%E5%A6%82%EF%BC%9A%3C/p%3E%0A%3Cp%3E + %3C/p%3E%0A%3Cpre%3E %3Ccode%3ECACHE @@ -965,16 +965,16 @@ EST%3Cbr%3E%0A - #version @@ -1077,16 +1077,21 @@ 1.0%3Cbr%3E%0A +%3Cbr%3E%0A FALLBACK @@ -1145,24 +1145,26 @@ %0A*%3C/code%3E%3C/p +re %3E%0A%3Cp%3E%E5%BC%95%E7%94%A8%E4%BA%86%E8%BF%99%E4%B8%AAma @@ -1440,24 +1440,40 @@ %E8%AF%A5%E9%A1%B5%E9%9D%A2%EF%BC%9A%3C/p%3E%0A%3Cp%3E + %3C/p%3E%0A%3Cpre%3E %3Ccode%3E// Che @@ -1517,36 +1517,20 @@ e load.%3C -/code%3E%3C/p%3E%0A%3Cp%3E%3Ccode%3E +br%3E%0A window.a @@ -1571,34 +1571,13 @@ ) %7B%3C -/code%3E%3C/p%3E%0A%3Cp%3E%3Ccode%3E +br%3E%0A &nbs @@ -1652,34 +1652,13 @@ ) %7B%3C -/code%3E%3C/p%3E%0A%3Cp%3E%3Ccode%3E +br%3E%0A &nbs @@ -1752,34 +1752,13 @@ ) %7B%3C -/code%3E%3C/p%3E%0A%3Cp%3E%3Ccode%3E +br%3E%0A &nbs @@ -1826,34 +1826,13 @@ he.%3C -/code%3E%3C/p%3E%0A%3Cp%3E%3Ccode%3E +br%3E%0A &nbs @@ -1919,34 +1919,13 @@ ss.%3C -/code%3E%3C/p%3E%0A%3Cp%3E%3Ccode%3E +br%3E%0A &nbs @@ -1991,34 +1991,13 @@ ();%3C -/code%3E%3C/p%3E%0A%3Cp%3E%3Ccode%3E +br%3E%0A &nbs @@ -2052,117 +2052,59 @@ ();%3C -/code%3E%3C/p%3E%0A%3Cp%3E%3Ccode%3E %7D%3C/code%3E%3C/p%3E%0A%3Cp%3E%3Ccode%3E %7D, false);%3C/code%3E%3C/p%3E%0A%3Cp%3E%3Ccode%3E +br%3E%0A %7D%3Cbr%3E%0A %7D, false);%3Cbr%3E%0A %7D, f @@ -2115,24 +2115,26 @@ );%3C/code%3E%3C/p +re %3E%0A%3Cp%3E%E4%B8%80%E6%97%A6%E8%A2%AB%E7%BC%93%E5%AD%98%EF%BC%8C%E4%BD%A0 |
| json metadata | {"tags":["manifest","web","html"],"links":["https://qifu.me/links/","https://qifu.me/hello/","https://www.html5rocks.com/zh/tutorials/appcache/beginner/"],"app":"steemit/0.1","format":"html"} |
| Transaction Info | Block #13616055/Trx fd6c0d4b32ab812a698af884034cf5f785e34d86 |
View Raw JSON Data
{
"trx_id": "fd6c0d4b32ab812a698af884034cf5f785e34d86",
"block": 13616055,
"trx_in_block": 21,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T10:42:15",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "manifest",
"author": "hqfzone",
"permlink": "manifest",
"title": "manifest让网页实现离线访问",
"body": "@@ -920,24 +920,40 @@\n %E3%80%82%E6%AF%94%E5%A6%82%EF%BC%9A%3C/p%3E%0A%3Cp%3E\n+ %3C/p%3E%0A%3Cpre%3E\n %3Ccode%3ECACHE \n@@ -965,16 +965,16 @@\n EST%3Cbr%3E%0A\n-\n #version\n@@ -1077,16 +1077,21 @@\n 1.0%3Cbr%3E%0A\n+%3Cbr%3E%0A\n FALLBACK\n@@ -1145,24 +1145,26 @@\n %0A*%3C/code%3E%3C/p\n+re\n %3E%0A%3Cp%3E%E5%BC%95%E7%94%A8%E4%BA%86%E8%BF%99%E4%B8%AAma\n@@ -1440,24 +1440,40 @@\n %E8%AF%A5%E9%A1%B5%E9%9D%A2%EF%BC%9A%3C/p%3E%0A%3Cp%3E\n+ %3C/p%3E%0A%3Cpre%3E\n %3Ccode%3E// Che\n@@ -1517,36 +1517,20 @@\n e load.%3C\n-/code%3E%3C/p%3E%0A%3Cp%3E%3Ccode%3E\n+br%3E%0A\n window.a\n@@ -1571,34 +1571,13 @@\n ) %7B%3C\n-/code%3E%3C/p%3E%0A%3Cp%3E%3Ccode%3E \n+br%3E%0A \n &nbs\n@@ -1652,34 +1652,13 @@\n ) %7B%3C\n-/code%3E%3C/p%3E%0A%3Cp%3E%3Ccode%3E \n+br%3E%0A \n &nbs\n@@ -1752,34 +1752,13 @@\n ) %7B%3C\n-/code%3E%3C/p%3E%0A%3Cp%3E%3Ccode%3E \n+br%3E%0A \n &nbs\n@@ -1826,34 +1826,13 @@\n he.%3C\n-/code%3E%3C/p%3E%0A%3Cp%3E%3Ccode%3E \n+br%3E%0A \n &nbs\n@@ -1919,34 +1919,13 @@\n ss.%3C\n-/code%3E%3C/p%3E%0A%3Cp%3E%3Ccode%3E \n+br%3E%0A \n &nbs\n@@ -1991,34 +1991,13 @@\n ();%3C\n-/code%3E%3C/p%3E%0A%3Cp%3E%3Ccode%3E \n+br%3E%0A \n &nbs\n@@ -2052,117 +2052,59 @@\n ();%3C\n-/code%3E%3C/p%3E%0A%3Cp%3E%3Ccode%3E %7D%3C/code%3E%3C/p%3E%0A%3Cp%3E%3Ccode%3E %7D, false);%3C/code%3E%3C/p%3E%0A%3Cp%3E%3Ccode%3E\n+br%3E%0A %7D%3Cbr%3E%0A %7D, false);%3Cbr%3E%0A\n %7D, f\n@@ -2115,24 +2115,26 @@\n );%3C/code%3E%3C/p\n+re\n %3E%0A%3Cp%3E%E4%B8%80%E6%97%A6%E8%A2%AB%E7%BC%93%E5%AD%98%EF%BC%8C%E4%BD%A0\n",
"json_metadata": "{\"tags\":[\"manifest\",\"web\",\"html\"],\"links\":[\"https://qifu.me/links/\",\"https://qifu.me/hello/\",\"https://www.html5rocks.com/zh/tutorials/appcache/beginner/\"],\"app\":\"steemit/0.1\",\"format\":\"html\"}"
}
]
}2017/07/12 10:34:45
2017/07/12 10:34:45
| voter | hqfzone |
| author | hqfzone |
| permlink | 2uzytm |
| weight | 10000 (100.00%) |
| Transaction Info | Block #13615905/Trx 2fa0d28d7b833e41be2a747c4188df6c62bd7f3a |
View Raw JSON Data
{
"trx_id": "2fa0d28d7b833e41be2a747c4188df6c62bd7f3a",
"block": 13615905,
"trx_in_block": 10,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T10:34:45",
"op": [
"vote",
{
"voter": "hqfzone",
"author": "hqfzone",
"permlink": "2uzytm",
"weight": 10000
}
]
}2017/07/12 10:34:45
2017/07/12 10:34:45
| parent author | |
| parent permlink | encoding |
| author | hqfzone |
| permlink | 2uzytm |
| title | 字符编码问题 |
| body | #稍微学习了下字符编码问题,总结下来: 最简单的应该是ASCII码了,其用一个字节(8比特)来编码128个字符,首位是0,即0xxxxxxx。 记事本中的ANSI编码方式,对于英文文件是ASCII编码,对于简体中文文件是GB2312编码,繁体中文文件是Big5编码。 然后是Unicode,其编码符范围可以涵盖世界上所有符号。 记事本中的Unicode是用两个字节存储,顺序方式为Big endian,反过来存就是Little endian,通过在每一个文件的最前面加入表示编码顺序的字符“FE FF”或“FF FE”(以十六进制表示)区别。 UTF-8是Unicode的一种实现方式,带有控制位,可变长度,解决了Unicode存储及识别的问题。规则为: ①单字节符号,字节的第一位设为0,后面7位为这个符号的Unicode码。因此,英语字母的UTF-8编码和ASCII码相同。 ②多(n)字节符号,第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10,其余的二进制位,全部为这个符号的Unicode码,从后往前填,剩余位补零。 上面的01串即通过此规则转换得出。 记事本中UTF-8文件的开头为“EF BB BF”,ANSI文件开头无这种标识。 |
| json metadata | {"tags":["encoding","character","utf8"],"app":"steemit/0.1","format":"markdown"} |
| Transaction Info | Block #13615905/Trx 2fa0d28d7b833e41be2a747c4188df6c62bd7f3a |
View Raw JSON Data
{
"trx_id": "2fa0d28d7b833e41be2a747c4188df6c62bd7f3a",
"block": 13615905,
"trx_in_block": 10,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T10:34:45",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "encoding",
"author": "hqfzone",
"permlink": "2uzytm",
"title": "字符编码问题",
"body": "#稍微学习了下字符编码问题,总结下来:\n\n最简单的应该是ASCII码了,其用一个字节(8比特)来编码128个字符,首位是0,即0xxxxxxx。\n记事本中的ANSI编码方式,对于英文文件是ASCII编码,对于简体中文文件是GB2312编码,繁体中文文件是Big5编码。\n\n然后是Unicode,其编码符范围可以涵盖世界上所有符号。\n记事本中的Unicode是用两个字节存储,顺序方式为Big endian,反过来存就是Little endian,通过在每一个文件的最前面加入表示编码顺序的字符“FE FF”或“FF FE”(以十六进制表示)区别。\n\nUTF-8是Unicode的一种实现方式,带有控制位,可变长度,解决了Unicode存储及识别的问题。规则为:\n①单字节符号,字节的第一位设为0,后面7位为这个符号的Unicode码。因此,英语字母的UTF-8编码和ASCII码相同。\n②多(n)字节符号,第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10,其余的二进制位,全部为这个符号的Unicode码,从后往前填,剩余位补零。\n上面的01串即通过此规则转换得出。\n记事本中UTF-8文件的开头为“EF BB BF”,ANSI文件开头无这种标识。",
"json_metadata": "{\"tags\":[\"encoding\",\"character\",\"utf8\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
}
]
}hqfzoneupvoted (100.00%) @cheetah / cheetah-re-hqfzonehttp-csp2017/07/12 10:34:33
hqfzoneupvoted (100.00%) @cheetah / cheetah-re-hqfzonehttp-csp
2017/07/12 10:34:33
| voter | hqfzone |
| author | cheetah |
| permlink | cheetah-re-hqfzonehttp-csp |
| weight | 10000 (100.00%) |
| Transaction Info | Block #13615901/Trx dc6ada9d7f57f85eea9ec009ba05184e52e89940 |
View Raw JSON Data
{
"trx_id": "dc6ada9d7f57f85eea9ec009ba05184e52e89940",
"block": 13615901,
"trx_in_block": 2,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T10:34:33",
"op": [
"vote",
{
"voter": "hqfzone",
"author": "cheetah",
"permlink": "cheetah-re-hqfzonehttp-csp",
"weight": 10000
}
]
}hqfzoneupvoted (100.00%) @hqfzone / dns-glue-record2017/07/12 10:29:33
hqfzoneupvoted (100.00%) @hqfzone / dns-glue-record
2017/07/12 10:29:33
| voter | hqfzone |
| author | hqfzone |
| permlink | dns-glue-record |
| weight | 10000 (100.00%) |
| Transaction Info | Block #13615801/Trx 0225dabe1cc5f5792decbc03a6ac8328b34f7409 |
View Raw JSON Data
{
"trx_id": "0225dabe1cc5f5792decbc03a6ac8328b34f7409",
"block": 13615801,
"trx_in_block": 16,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T10:29:33",
"op": [
"vote",
{
"voter": "hqfzone",
"author": "hqfzone",
"permlink": "dns-glue-record",
"weight": 10000
}
]
}hqfzonepublished a new post: dns-glue-record2017/07/12 10:29:33
hqfzonepublished a new post: dns-glue-record
2017/07/12 10:29:33
| parent author | |
| parent permlink | dns |
| author | hqfzone |
| permlink | dns-glue-record |
| title | DNS解析及Glue Record |
| body | DNS的查询过程大家都知道,从根域名服务器开始,以 huangqifu.com 为例,理论上要经过如下几步域名服务器得到结果: 1:[a-m].root-servers.net.(根域名服务器) 2:[a-m].gtld-servers.net.(顶级域名服务器) 3:f1g1ns[1-2].dnspod.net.(查询域名指定的NS服务器) 刚了解DNS时,我有过一个疑问,如果 qq.com 的域名NS是 ns1.qq.com ,那么上述查询不就陷入死循环了么?因为要知道 ns1.qq.com 对应的IP就需要到 qq.com 的NS服务器去查询,而这个服务器又是 ns1.qq.com ,如此周而复始下去…… 当然,解决方法很简单,上级DNS服务器(即负责.com的顶级域名服务器)中保存该NS的IP记录,查询时直接给出。前几天无意看到了这个记录的名称,叫“Glue Record”。所以实际上,我们用到的域名DNS都是需要到域名注册商那里去注册的,否则无法正常使用。在Godaddy中可以通过Host Names设置,万网也可以注册DNS。 在windows的命令提示符下,输入 nslookup qq.com a.gtld-servers.net. ,即可得到如下结果: 名称: qq.com Served by: - ns1.qq.com 101.226.68.138 14.17.19.139 qq.com - ns2.qq.com 101.227.169.106 222.73.76.225 qq.com - ns3.qq.com 182.140.167.157 182.140.177.149 qq.com - ns4.qq.com 111.161.48.230 125.39.202.108 203.205.144.156 qq.com 里面列出了 qq.com 的NS服务器,以及每个服务器的IP地址。 然后我发现,其实不光是域名的NS为其子域名的情况,只要该NS的域名与要解析的域名的上级DNS相同(即顶级域名服务器相同),都会同时返回NS的IP地址。比如 nslookup huangqifu.com a.gtld-servers.net. ,可以得到: 名称: huangqifu.com Served by: – f1g1ns1.dnspod.net 111.30.132.180 113.108.80.138 125.39.208.193 180.153.9.189 182.140.167.166 huangqifu.com – f1g1ns2.dnspod.net 101.226.30.224 112.90.82.194 115.236.137.40 115.236.151.191 182.140.167.188 huangqifu.com 虽然 huangqifu.com 与 f1g1ns1.dnspod.net 并无从属关系,但是因为.com与.net后缀的上级DNS服务器都是 a.gtld-servers.net. ,所以查询时直接给出了NS的IP。如果查询 nslookup qifu.me ns.nic.me. ,则无IP地址: 名称: qifu.me Served by: – f1g1ns1.dnspod.net qifu.me – f1g1ns2.dnspod.net qifu.me 更明显的,查询 nslookup ustc.edu.cn a.dns.cn ,结果如下: 名称: ustc.edu.cn Served by: – dns.edu.cn 202.112.0.35 edu.cn – ns2.cuhk.hk edu.cn – deneb.dfn.de edu.cn – ns2.cernet.net edu.cn – dns2.edu.cn 202.112.0.13 edu.cn 其中是.cn后缀的域名NS记录都直接有IP地址,其它则没有。 根域名服务器的IP地址是直接保存到系统中的,它在给出顶级域名服务器的记录时,会同时有对应的IP地址。 以上个人总结,写出来分享一下,如有纰漏请指出。 |
| json metadata | {"tags":["dns","gluerecord"],"app":"steemit/0.1","format":"markdown"} |
| Transaction Info | Block #13615801/Trx 0225dabe1cc5f5792decbc03a6ac8328b34f7409 |
View Raw JSON Data
{
"trx_id": "0225dabe1cc5f5792decbc03a6ac8328b34f7409",
"block": 13615801,
"trx_in_block": 16,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T10:29:33",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "dns",
"author": "hqfzone",
"permlink": "dns-glue-record",
"title": "DNS解析及Glue Record",
"body": "DNS的查询过程大家都知道,从根域名服务器开始,以 huangqifu.com 为例,理论上要经过如下几步域名服务器得到结果:\n1:[a-m].root-servers.net.(根域名服务器)\n2:[a-m].gtld-servers.net.(顶级域名服务器)\n3:f1g1ns[1-2].dnspod.net.(查询域名指定的NS服务器)\n\n刚了解DNS时,我有过一个疑问,如果 qq.com 的域名NS是 ns1.qq.com ,那么上述查询不就陷入死循环了么?因为要知道 ns1.qq.com 对应的IP就需要到 qq.com 的NS服务器去查询,而这个服务器又是 ns1.qq.com ,如此周而复始下去……\n\n当然,解决方法很简单,上级DNS服务器(即负责.com的顶级域名服务器)中保存该NS的IP记录,查询时直接给出。前几天无意看到了这个记录的名称,叫“Glue Record”。所以实际上,我们用到的域名DNS都是需要到域名注册商那里去注册的,否则无法正常使用。在Godaddy中可以通过Host Names设置,万网也可以注册DNS。\n\n在windows的命令提示符下,输入 nslookup qq.com a.gtld-servers.net. ,即可得到如下结果:\n\n名称: qq.com\nServed by:\n- ns1.qq.com\n 101.226.68.138\n 14.17.19.139\n qq.com\n- ns2.qq.com\n 101.227.169.106\n 222.73.76.225\n qq.com\n- ns3.qq.com\n 182.140.167.157\n 182.140.177.149\n qq.com\n- ns4.qq.com\n 111.161.48.230\n 125.39.202.108\n 203.205.144.156\n qq.com\n里面列出了 qq.com 的NS服务器,以及每个服务器的IP地址。\n\n然后我发现,其实不光是域名的NS为其子域名的情况,只要该NS的域名与要解析的域名的上级DNS相同(即顶级域名服务器相同),都会同时返回NS的IP地址。比如 nslookup huangqifu.com a.gtld-servers.net. ,可以得到:\n\n名称: huangqifu.com\nServed by:\n– f1g1ns1.dnspod.net\n 111.30.132.180\n 113.108.80.138\n 125.39.208.193\n 180.153.9.189\n 182.140.167.166\n huangqifu.com\n– f1g1ns2.dnspod.net\n 101.226.30.224\n 112.90.82.194\n 115.236.137.40\n 115.236.151.191\n 182.140.167.188\n huangqifu.com\n虽然 huangqifu.com 与 f1g1ns1.dnspod.net 并无从属关系,但是因为.com与.net后缀的上级DNS服务器都是 a.gtld-servers.net. ,所以查询时直接给出了NS的IP。如果查询 nslookup qifu.me ns.nic.me. ,则无IP地址:\n\n名称: qifu.me\nServed by:\n– f1g1ns1.dnspod.net\n\n qifu.me\n– f1g1ns2.dnspod.net\n\n qifu.me\n更明显的,查询 nslookup ustc.edu.cn a.dns.cn ,结果如下:\n\n名称: ustc.edu.cn\nServed by:\n– dns.edu.cn\n 202.112.0.35\n edu.cn\n– ns2.cuhk.hk\n\n edu.cn\n– deneb.dfn.de\n\n edu.cn\n– ns2.cernet.net\n\n edu.cn\n– dns2.edu.cn\n 202.112.0.13\n edu.cn\n其中是.cn后缀的域名NS记录都直接有IP地址,其它则没有。\n\n根域名服务器的IP地址是直接保存到系统中的,它在给出顶级域名服务器的记录时,会同时有对应的IP地址。\n\n以上个人总结,写出来分享一下,如有纰漏请指出。",
"json_metadata": "{\"tags\":[\"dns\",\"gluerecord\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
}
]
}cheetahreplied to @hqfzone / cheetah-re-hqfzonehttp-csp2017/07/12 10:24:21
cheetahreplied to @hqfzone / cheetah-re-hqfzonehttp-csp
2017/07/12 10:24:21
| parent author | hqfzone |
| parent permlink | http-csp |
| author | cheetah |
| permlink | cheetah-re-hqfzonehttp-csp |
| title | |
| body | Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in: https://qifu.me/at201602211724/ |
| json metadata | |
| Transaction Info | Block #13615697/Trx 11033c61b1f6ebbb3736cef95d2f532bf21e5ce7 |
View Raw JSON Data
{
"trx_id": "11033c61b1f6ebbb3736cef95d2f532bf21e5ce7",
"block": 13615697,
"trx_in_block": 4,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T10:24:21",
"op": [
"comment",
{
"parent_author": "hqfzone",
"parent_permlink": "http-csp",
"author": "cheetah",
"permlink": "cheetah-re-hqfzonehttp-csp",
"title": "",
"body": "Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in:\nhttps://qifu.me/at201602211724/",
"json_metadata": ""
}
]
}2017/07/12 10:24:15
2017/07/12 10:24:15
| voter | cheetah |
| author | hqfzone |
| permlink | http-csp |
| weight | 100 (1.00%) |
| Transaction Info | Block #13615695/Trx 767c50757566b773a58ec7ef0015c1e621d2a717 |
View Raw JSON Data
{
"trx_id": "767c50757566b773a58ec7ef0015c1e621d2a717",
"block": 13615695,
"trx_in_block": 18,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T10:24:15",
"op": [
"vote",
{
"voter": "cheetah",
"author": "hqfzone",
"permlink": "http-csp",
"weight": 100
}
]
}2017/07/12 10:22:45
2017/07/12 10:22:45
| voter | hqfzone |
| author | hqfzone |
| permlink | http-csp |
| weight | 10000 (100.00%) |
| Transaction Info | Block #13615665/Trx db392ac12fbf2349797e3077310023f8adc1f1c9 |
View Raw JSON Data
{
"trx_id": "db392ac12fbf2349797e3077310023f8adc1f1c9",
"block": 13615665,
"trx_in_block": 0,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T10:22:45",
"op": [
"vote",
{
"voter": "hqfzone",
"author": "hqfzone",
"permlink": "http-csp",
"weight": 10000
}
]
}2017/07/12 10:22:45
2017/07/12 10:22:45
| parent author | |
| parent permlink | http |
| author | hqfzone |
| permlink | http-csp |
| title | HTTP传输中使用CSP防劫持插广告的方法 |
| body | <html> <p> 万恶的运营商,不定期地在我们浏览的网页里插广告已经是公开的秘密了。最有效的防运营商劫持方法当然是HTTPS传输,但是受服务器限制,或者大量图片等内容需要使用HTTP传输,HTTPS有时候并不容易实现。</p> <p>今天发现了个有用的东西:Content Security Policy,简称CSP,它可以指定浏览器加载或执行哪些资源(包括css、js、图片、字体等),未指定的资源会被屏蔽。</p> <p>这样,如果运营商在我们的网页里面插入了广告代码,但其引用的js域名并未在CSP中列出,浏览器就不会让这个广告显示出来了。知乎就是用了这种方法。</p> <p>比如我只想允许自己的域名以及cdn.qifu.me中的css、js、图片资源被加载,就可以在HTTP头信息中加入以下规则:</p> <pre><code>Content-Security-Policy:default-src 'self' cdn.qifu.me</code></pre> <p>如果利用.htaccess配置的话,添加下面一行即可:</p> <pre><code>Header set Content-Security-Policy "default-src 'self' cdn.qifu.me"</code></pre> <p>如果你怕运营商劫持过程中替换掉你的http header导致上述信息被抹除,可以在html代码中的head标签内加入下面的内容:</p> <pre><code><meta http-equiv="Content-Security-Policy" content="default-src 'self' cdn.qifu.me" /></code></pre> <p>这里我用了最简单的默认指令default-src,其实后面还可以添加更多细化的指令,比如style-src、script-src、img-src、media-src、font-src等等,多个指令之间用分号隔开。每条指令后面跟空格,列出该指令允许的资源值,多个资源用空格隔开。’self’代表同源内容,也可以指定某个域名,甚至使用通配符,比如*.qifu.me,还可以包含协议和端口,或者用https:代表所有的HTTPS资源,当然,你也可以写’none’禁止所有。</p> <p>需要注意的是,上面这么写,所有的内联资源都失效了,也就是说标签内添加的style和js都不会被执行,如下所示,文字既不是红色,onclick代码也不会被执行。这样是最安全的,但是如果需要,可以加入’unsafe-inline’,类似于“default-src ‘self’ ‘unsafe-inline’ cdn.qifu.me”这样。</p> <pre><code><p style="color:#f00;" onclick="alert('Hello from Qifu');">我不是红色,点我也没有问候</p></code></pre> <p>与上述类似,不加’unsafe-eval’的话,所有的new Function、setTimeout、eval等动态js代码也不会被执行。但是,这些很少用到,建议不要加!</p> <p>这种方法,亲测Edge和Chrome48都是可以的,但是IE11不行,即使用“X-Content-Security-Policy”也不行,因为IE只是部分支持’sandbox’指令;老版的Safari和IE类似,使用非标准的“X-Webkit-CSP”,这俩非标都不建议使用,因为支持不完整或者有bug。所以强烈建议所有人升级最新版的浏览器,不要以能用就行的态度死守老版本,升级、试一下~</p> <p>感兴趣的可以试一下,一定要注意包含自己引用的所有资源,比如google字体、js、cdn之类的。 </p> </html> |
| json metadata | {"tags":["http","html","csp"],"app":"steemit/0.1","format":"html"} |
| Transaction Info | Block #13615665/Trx db392ac12fbf2349797e3077310023f8adc1f1c9 |
View Raw JSON Data
{
"trx_id": "db392ac12fbf2349797e3077310023f8adc1f1c9",
"block": 13615665,
"trx_in_block": 0,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T10:22:45",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "http",
"author": "hqfzone",
"permlink": "http-csp",
"title": "HTTP传输中使用CSP防劫持插广告的方法",
"body": "<html>\n<p> 万恶的运营商,不定期地在我们浏览的网页里插广告已经是公开的秘密了。最有效的防运营商劫持方法当然是HTTPS传输,但是受服务器限制,或者大量图片等内容需要使用HTTP传输,HTTPS有时候并不容易实现。</p>\n<p>今天发现了个有用的东西:Content Security Policy,简称CSP,它可以指定浏览器加载或执行哪些资源(包括css、js、图片、字体等),未指定的资源会被屏蔽。</p>\n<p>这样,如果运营商在我们的网页里面插入了广告代码,但其引用的js域名并未在CSP中列出,浏览器就不会让这个广告显示出来了。知乎就是用了这种方法。</p>\n<p>比如我只想允许自己的域名以及cdn.qifu.me中的css、js、图片资源被加载,就可以在HTTP头信息中加入以下规则:</p>\n<pre><code>Content-Security-Policy:default-src 'self' cdn.qifu.me</code></pre>\n<p>如果利用.htaccess配置的话,添加下面一行即可:</p>\n<pre><code>Header set Content-Security-Policy \"default-src 'self' cdn.qifu.me\"</code></pre>\n<p>如果你怕运营商劫持过程中替换掉你的http header导致上述信息被抹除,可以在html代码中的head标签内加入下面的内容:</p>\n<pre><code><meta http-equiv=\"Content-Security-Policy\" content=\"default-src 'self' cdn.qifu.me\" /></code></pre>\n<p>这里我用了最简单的默认指令default-src,其实后面还可以添加更多细化的指令,比如style-src、script-src、img-src、media-src、font-src等等,多个指令之间用分号隔开。每条指令后面跟空格,列出该指令允许的资源值,多个资源用空格隔开。’self’代表同源内容,也可以指定某个域名,甚至使用通配符,比如*.qifu.me,还可以包含协议和端口,或者用https:代表所有的HTTPS资源,当然,你也可以写’none’禁止所有。</p>\n<p>需要注意的是,上面这么写,所有的内联资源都失效了,也就是说标签内添加的style和js都不会被执行,如下所示,文字既不是红色,onclick代码也不会被执行。这样是最安全的,但是如果需要,可以加入’unsafe-inline’,类似于“default-src ‘self’ ‘unsafe-inline’ cdn.qifu.me”这样。</p>\n<pre><code><p style=\"color:#f00;\" onclick=\"alert('Hello from Qifu');\">我不是红色,点我也没有问候</p></code></pre>\n<p>与上述类似,不加’unsafe-eval’的话,所有的new Function、setTimeout、eval等动态js代码也不会被执行。但是,这些很少用到,建议不要加!</p>\n<p>这种方法,亲测Edge和Chrome48都是可以的,但是IE11不行,即使用“X-Content-Security-Policy”也不行,因为IE只是部分支持’sandbox’指令;老版的Safari和IE类似,使用非标准的“X-Webkit-CSP”,这俩非标都不建议使用,因为支持不完整或者有bug。所以强烈建议所有人升级最新版的浏览器,不要以能用就行的态度死守老版本,升级、试一下~</p>\n<p>感兴趣的可以试一下,一定要注意包含自己引用的所有资源,比如google字体、js、cdn之类的。 </p>\n</html>",
"json_metadata": "{\"tags\":[\"http\",\"html\",\"csp\"],\"app\":\"steemit/0.1\",\"format\":\"html\"}"
}
]
}2017/07/12 10:17:30
2017/07/12 10:17:30
| voter | hqfzone |
| author | hqfzone |
| permlink | dmarc |
| weight | 10000 (100.00%) |
| Transaction Info | Block #13615560/Trx ec8269640bbbb30e0488ceb1e15efd2dd9ff4cb9 |
View Raw JSON Data
{
"trx_id": "ec8269640bbbb30e0488ceb1e15efd2dd9ff4cb9",
"block": 13615560,
"trx_in_block": 10,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T10:17:30",
"op": [
"vote",
{
"voter": "hqfzone",
"author": "hqfzone",
"permlink": "dmarc",
"weight": 10000
}
]
}2017/07/12 10:17:30
2017/07/12 10:17:30
| parent author | |
| parent permlink | web |
| author | hqfzone |
| permlink | dmarc |
| title | DMARC记录:谁在冒充你的域名发送邮件? |
| body | <html> <p> 用过独立域名邮箱的人大都应该知道,添加完MX记录以后,通常需要再加一条SPF(TXT)记录,为的就是告诉收件方服务器,哪些IP是权威的发信来源,这样当有人伪造你的域名发信时,由于IP不对,就可能被拒收或者归为垃圾邮件。比如我的域名(qifu.me)的SPF(TXT)记录如下:</p> <pre><code>v=spf1 include:spf.mail.qq.com a -all<br> #第一段的v是版本;<br> #后面是我指定的规则,第二段是说spf.mail.qq.com这个域名下的SPF记录里允许的IP,我这里同样也允许;<br> #第三段的a是说该域名(qifu.me)的A记录所对应的IP也是我允许的发信来源,注意这两个规则前面都默认省略了“+”,“+”代表接受;<br> #而最后一段的“-”则代表拒绝,也就是说,除了前面规则里提到的那些,其余所有都不允许,收件方服务器看到这个减号,就可以把非法的邮件拒收。当然,如果你改为“~”,则通常会把非法邮件放入垃圾箱。<br> #(还有其他一些规则,比如ip4、ip6、mx、ptr、exists,这里不再详述,但是除了ip4和ip6外,其余记录都要再进行一次DNS查询,所以数量最好不要太多)</code></pre> <p>那么问题来了,虽然仿冒我域名的邮件被拦截或者进入垃圾箱了,但到底都是谁在冒充我呢?正解就是DMARC记录,比如我在域名的子域“_dmarc”下添加了如下的一条TXT记录:</p> <pre><code>v=DMARC1; p=reject; ruf=mailto:[email protected]<br> #参数v指定版本;<br> #p代表规则,reject代表拒收伪造邮件,如果改为quarantine则标记为垃圾邮件,改为none则不处理;<br> #ruf则指定了一个邮箱地址,当收件方服务器检测到伪造邮件后,就会把伪造邮件的信息(比如时间、IP、主题等)发送到这个邮箱。<br> #(还有其它一些参数,不重要,此处亦不再详述)</code></pre> <p>收件方服务器首先根据你的SPF或者DKIM记录判定来信是否属于伪造邮件,然后再根据你的规则做相应处理和报告。目前据我测试,微软邮箱、Gmail、QQ邮箱、网易邮箱均支持该记录。</p> <p>设置了DMARC记录后,我收到过十几个伪造报告,大部分都是来自湖北、广东、福建的IP,主要发往了网易邮箱,主要是一些主题包含销售、产品、业务等关键词的垃圾信息。 </p> </html> |
| json metadata | {"tags":["web","mail","dns","dmarc"],"app":"steemit/0.1","format":"html"} |
| Transaction Info | Block #13615560/Trx ec8269640bbbb30e0488ceb1e15efd2dd9ff4cb9 |
View Raw JSON Data
{
"trx_id": "ec8269640bbbb30e0488ceb1e15efd2dd9ff4cb9",
"block": 13615560,
"trx_in_block": 10,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T10:17:30",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "web",
"author": "hqfzone",
"permlink": "dmarc",
"title": "DMARC记录:谁在冒充你的域名发送邮件?",
"body": "<html>\n<p> 用过独立域名邮箱的人大都应该知道,添加完MX记录以后,通常需要再加一条SPF(TXT)记录,为的就是告诉收件方服务器,哪些IP是权威的发信来源,这样当有人伪造你的域名发信时,由于IP不对,就可能被拒收或者归为垃圾邮件。比如我的域名(qifu.me)的SPF(TXT)记录如下:</p>\n<pre><code>v=spf1 include:spf.mail.qq.com a -all<br>\n#第一段的v是版本;<br>\n#后面是我指定的规则,第二段是说spf.mail.qq.com这个域名下的SPF记录里允许的IP,我这里同样也允许;<br>\n#第三段的a是说该域名(qifu.me)的A记录所对应的IP也是我允许的发信来源,注意这两个规则前面都默认省略了“+”,“+”代表接受;<br>\n#而最后一段的“-”则代表拒绝,也就是说,除了前面规则里提到的那些,其余所有都不允许,收件方服务器看到这个减号,就可以把非法的邮件拒收。当然,如果你改为“~”,则通常会把非法邮件放入垃圾箱。<br>\n#(还有其他一些规则,比如ip4、ip6、mx、ptr、exists,这里不再详述,但是除了ip4和ip6外,其余记录都要再进行一次DNS查询,所以数量最好不要太多)</code></pre>\n<p>那么问题来了,虽然仿冒我域名的邮件被拦截或者进入垃圾箱了,但到底都是谁在冒充我呢?正解就是DMARC记录,比如我在域名的子域“_dmarc”下添加了如下的一条TXT记录:</p>\n<pre><code>v=DMARC1; p=reject; ruf=mailto:[email protected]<br>\n#参数v指定版本;<br>\n#p代表规则,reject代表拒收伪造邮件,如果改为quarantine则标记为垃圾邮件,改为none则不处理;<br>\n#ruf则指定了一个邮箱地址,当收件方服务器检测到伪造邮件后,就会把伪造邮件的信息(比如时间、IP、主题等)发送到这个邮箱。<br>\n#(还有其它一些参数,不重要,此处亦不再详述)</code></pre>\n<p>收件方服务器首先根据你的SPF或者DKIM记录判定来信是否属于伪造邮件,然后再根据你的规则做相应处理和报告。目前据我测试,微软邮箱、Gmail、QQ邮箱、网易邮箱均支持该记录。</p>\n<p>设置了DMARC记录后,我收到过十几个伪造报告,大部分都是来自湖北、广东、福建的IP,主要发往了网易邮箱,主要是一些主题包含销售、产品、业务等关键词的垃圾信息。 </p>\n</html>",
"json_metadata": "{\"tags\":[\"web\",\"mail\",\"dns\",\"dmarc\"],\"app\":\"steemit/0.1\",\"format\":\"html\"}"
}
]
}hqfzoneupvoted (100.00%) @cheetah / cheetah-re-hqfzonemanifest2017/07/12 10:14:57
hqfzoneupvoted (100.00%) @cheetah / cheetah-re-hqfzonemanifest
2017/07/12 10:14:57
| voter | hqfzone |
| author | cheetah |
| permlink | cheetah-re-hqfzonemanifest |
| weight | 10000 (100.00%) |
| Transaction Info | Block #13615509/Trx 8f477f7adc165979f6ef5477689fcb9961506550 |
View Raw JSON Data
{
"trx_id": "8f477f7adc165979f6ef5477689fcb9961506550",
"block": 13615509,
"trx_in_block": 7,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T10:14:57",
"op": [
"vote",
{
"voter": "hqfzone",
"author": "cheetah",
"permlink": "cheetah-re-hqfzonemanifest",
"weight": 10000
}
]
}hqfzoneupvoted (100.00%) @cheetah / cheetah-re-hqfzoneservice-worker2017/07/12 10:14:54
hqfzoneupvoted (100.00%) @cheetah / cheetah-re-hqfzoneservice-worker
2017/07/12 10:14:54
| voter | hqfzone |
| author | cheetah |
| permlink | cheetah-re-hqfzoneservice-worker |
| weight | 10000 (100.00%) |
| Transaction Info | Block #13615508/Trx e59ebd4fddfaed9107502919c28da7b6570febe1 |
View Raw JSON Data
{
"trx_id": "e59ebd4fddfaed9107502919c28da7b6570febe1",
"block": 13615508,
"trx_in_block": 0,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T10:14:54",
"op": [
"vote",
{
"voter": "hqfzone",
"author": "cheetah",
"permlink": "cheetah-re-hqfzoneservice-worker",
"weight": 10000
}
]
}hqfzoneupvoted (100.00%) @cheetah / cheetah-re-hqfzone2jshuk2017/07/12 10:14:48
hqfzoneupvoted (100.00%) @cheetah / cheetah-re-hqfzone2jshuk
2017/07/12 10:14:48
| voter | hqfzone |
| author | cheetah |
| permlink | cheetah-re-hqfzone2jshuk |
| weight | 10000 (100.00%) |
| Transaction Info | Block #13615506/Trx daed46ce2a1f00a1305a46cc645ac9aeb2e57008 |
View Raw JSON Data
{
"trx_id": "daed46ce2a1f00a1305a46cc645ac9aeb2e57008",
"block": 13615506,
"trx_in_block": 1,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T10:14:48",
"op": [
"vote",
{
"voter": "hqfzone",
"author": "cheetah",
"permlink": "cheetah-re-hqfzone2jshuk",
"weight": 10000
}
]
}hqfzoneupvoted (100.00%) @steemitboard / steemitboard-notify-hqfzone-20170712t045641000z2017/07/12 10:14:18
hqfzoneupvoted (100.00%) @steemitboard / steemitboard-notify-hqfzone-20170712t045641000z
2017/07/12 10:14:18
| voter | hqfzone |
| author | steemitboard |
| permlink | steemitboard-notify-hqfzone-20170712t045641000z |
| weight | 10000 (100.00%) |
| Transaction Info | Block #13615496/Trx e5e6a0531c216aa172779af6da23f07f6b35d69c |
View Raw JSON Data
{
"trx_id": "e5e6a0531c216aa172779af6da23f07f6b35d69c",
"block": 13615496,
"trx_in_block": 1,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T10:14:18",
"op": [
"vote",
{
"voter": "hqfzone",
"author": "steemitboard",
"permlink": "steemitboard-notify-hqfzone-20170712t045641000z",
"weight": 10000
}
]
}2017/07/12 04:56:39
2017/07/12 04:56:39
| parent author | hqfzone |
| parent permlink | 2jshuk |
| author | steemitboard |
| permlink | steemitboard-notify-hqfzone-20170712t045641000z |
| title | |
| body | Congratulations @hqfzone! You have completed some achievement on Steemit and have been rewarded with new badge(s) : [](http://steemitboard.com/@hqfzone) You published your First Post [](http://steemitboard.com/@hqfzone) You made your First Vote [](http://steemitboard.com/@hqfzone) You got a First Vote Click on any badge to view your own Board of Honor on SteemitBoard. For more information about SteemitBoard, click [here](https://steemit.com/@steemitboard) If you no longer want to receive notifications, reply to this comment with the word `STOP` > By upvoting this notification, you can help all Steemit users. Learn how [here](https://steemit.com/steemitboard/@steemitboard/http-i-cubeupload-com-7ciqeo-png)! |
| json metadata | {"image":["https://steemitboard.com/img/notifications.png"]} |
| Transaction Info | Block #13609144/Trx 7e551e9b81bf0c3fa6fc783ce93c7bdc26a59c3e |
View Raw JSON Data
{
"trx_id": "7e551e9b81bf0c3fa6fc783ce93c7bdc26a59c3e",
"block": 13609144,
"trx_in_block": 23,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T04:56:39",
"op": [
"comment",
{
"parent_author": "hqfzone",
"parent_permlink": "2jshuk",
"author": "steemitboard",
"permlink": "steemitboard-notify-hqfzone-20170712t045641000z",
"title": "",
"body": "Congratulations @hqfzone! You have completed some achievement on Steemit and have been rewarded with new badge(s) :\n\n[](http://steemitboard.com/@hqfzone) You published your First Post\n[](http://steemitboard.com/@hqfzone) You made your First Vote\n[](http://steemitboard.com/@hqfzone) You got a First Vote\n\nClick on any badge to view your own Board of Honor on SteemitBoard.\nFor more information about SteemitBoard, click [here](https://steemit.com/@steemitboard)\n\nIf you no longer want to receive notifications, reply to this comment with the word `STOP`\n\n> By upvoting this notification, you can help all Steemit users. Learn how [here](https://steemit.com/steemitboard/@steemitboard/http-i-cubeupload-com-7ciqeo-png)!",
"json_metadata": "{\"image\":[\"https://steemitboard.com/img/notifications.png\"]}"
}
]
}cheetahreplied to @hqfzone / cheetah-re-hqfzone2jshuk2017/07/12 03:07:03
cheetahreplied to @hqfzone / cheetah-re-hqfzone2jshuk
2017/07/12 03:07:03
| parent author | hqfzone |
| parent permlink | 2jshuk |
| author | cheetah |
| permlink | cheetah-re-hqfzone2jshuk |
| title | |
| body | Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in: https://qifu.me/at201611221228/ |
| json metadata | |
| Transaction Info | Block #13606952/Trx 885483342127145aa2b6bb49a2af10de102eac84 |
View Raw JSON Data
{
"trx_id": "885483342127145aa2b6bb49a2af10de102eac84",
"block": 13606952,
"trx_in_block": 33,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T03:07:03",
"op": [
"comment",
{
"parent_author": "hqfzone",
"parent_permlink": "2jshuk",
"author": "cheetah",
"permlink": "cheetah-re-hqfzone2jshuk",
"title": "",
"body": "Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in:\nhttps://qifu.me/at201611221228/",
"json_metadata": ""
}
]
}2017/07/12 03:07:00
2017/07/12 03:07:00
| voter | cheetah |
| author | hqfzone |
| permlink | 2jshuk |
| weight | 100 (1.00%) |
| Transaction Info | Block #13606951/Trx 11a4a012288a25a57b8c79e4e6ca12c1db28dbf7 |
View Raw JSON Data
{
"trx_id": "11a4a012288a25a57b8c79e4e6ca12c1db28dbf7",
"block": 13606951,
"trx_in_block": 4,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-07-12T03:07:00",
"op": [
"vote",
{
"voter": "cheetah",
"author": "hqfzone",
"permlink": "2jshuk",
"weight": 100
}
]
}Manabar
Voting Power100.00%
Downvote Power100.00%
Resource Credits100.00%
Reputation Progress43.39%
{
"voting_manabar": {
"current_mana": 7010,
"last_update_time": 1499858181
},
"downvote_manabar": {
"current_mana": 0,
"last_update_time": 1472957421
},
"rc_account": {
"account": "hqfzone",
"rc_manabar": {
"current_mana": "34052661153",
"last_update_time": 1537887600
},
"max_rc_creation_adjustment": {
"amount": "2020748973",
"precision": 6,
"nai": "@@000000037"
},
"max_rc": "34052661153"
}
}Account Metadata
| POSTING JSON METADATA | |
| profile | {"website":"https://qifu.me/","name":"_"} |
| JSON METADATA | |
| profile | {"website":"https://qifu.me/","name":"_"} |
{
"posting_json_metadata": {
"profile": {
"website": "https://qifu.me/",
"name": "_"
}
},
"json_metadata": {
"profile": {
"website": "https://qifu.me/",
"name": "_"
}
}
}Auth Keys
Owner
Single Signature
Public Keys
STM4yZph2Mr3Bi2KbS8P7esEykr591Wc3E8CcxKhrxWL6oCaJg5gp1/1
Active
Single Signature
Public Keys
STM7a5FYrzxiJkTBxcVLHqnGsA4XRVzQj7KXV31nHX9e6HE4QdwXA1/1
Posting
Single Signature
Public Keys
STM6ggrqWhhtoWrDmoUPpoE9cxmNM5TqAvP2pUTy4yXsBZ4TvLCTu1/1
Memo
STM8kBbX3QTUiVhMCmGgvK6sFwo4DBtdq9Y1kdmXHQTYP6vDZCAV5
{
"owner": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM4yZph2Mr3Bi2KbS8P7esEykr591Wc3E8CcxKhrxWL6oCaJg5gp",
1
]
]
},
"active": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM7a5FYrzxiJkTBxcVLHqnGsA4XRVzQj7KXV31nHX9e6HE4QdwXA",
1
]
]
},
"posting": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM6ggrqWhhtoWrDmoUPpoE9cxmNM5TqAvP2pUTy4yXsBZ4TvLCTu",
1
]
]
},
"memo": "STM8kBbX3QTUiVhMCmGgvK6sFwo4DBtdq9Y1kdmXHQTYP6vDZCAV5"
}Witness Votes
0 / 30
No active witness votes.
[]