VOTING POWER100.00%
DOWNVOTE POWER100.00%
RESOURCE CREDITS100.00%
REPUTATION PROGRESS70.99%
Net Worth
0.003USD
STEEM
0.049STEEM
SBD
0.000SBD
Effective Power
1.201SP
├── Own SP
0.000SP
└── Incoming DelegationsDeleg
+1.201SP
Detailed Balance
| STEEM | ||
| balance | 0.002STEEM | STEEM |
| market_balance | 0.000STEEM | STEEM |
| savings_balance | 0.000STEEM | STEEM |
| reward_steem_balance | 0.047STEEM | STEEM |
| STEEM POWER | ||
| Own SP | 0.000SP | SP |
| Delegated Out | 0.000SP | SP |
| Delegation In | 1.201SP | SP |
| Effective Power | 1.201SP | SP |
| Reward SP (pending) | 0.047SP | 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.000SBD | SBD |
{
"balance": "0.002 STEEM",
"savings_balance": "0.000 STEEM",
"reward_steem_balance": "0.047 STEEM",
"vesting_shares": "0.000000 VESTS",
"delegated_vesting_shares": "0.000000 VESTS",
"received_vesting_shares": "1953.311140 VESTS",
"sbd_balance": "0.000 SBD",
"savings_sbd_balance": "0.000 SBD",
"reward_sbd_balance": "0.000 SBD",
"conversions": []
}Account Info
| name | cpower |
| id | 1188012 |
| rank | 1,586,948 |
| reputation | 1548770144 |
| created | 2019-01-08T21:56:18 |
| recovery_account | steem |
| proxy | None |
| post_count | 3 |
| comment_count | 0 |
| lifetime_vote_count | 0 |
| witnesses_voted_for | 0 |
| last_post | 2019-08-08T20:51:27 |
| last_root_post | 2019-08-08T20:51:27 |
| last_vote_time | 1970-01-01T00:00:00 |
| proxied_vsf_votes | 0, 0, 0, 0 |
| can_vote | 1 |
| voting_power | 0 |
| delayed_votes | 0 |
| balance | 0.002 STEEM |
| savings_balance | 0.000 STEEM |
| sbd_balance | 0.000 SBD |
| savings_sbd_balance | 0.000 SBD |
| vesting_shares | 0.000000 VESTS |
| delegated_vesting_shares | 0.000000 VESTS |
| received_vesting_shares | 1953.311140 VESTS |
| reward_vesting_balance | 94.387693 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 | 2024-06-03T20:41:21 |
| 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": 1188012,
"name": "cpower",
"owner": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM6DHKDfFWHUn1Kk8aX83KAV47HDdaTcKyepmh1oGwLxXiBRjKzD",
1
]
]
},
"active": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM5akFJRqDS1F6p66srpiTwhFKKFQoLHdyzLVT4o6ohLegyZzTfG",
1
]
]
},
"posting": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM5kiDpJbfUYbWw8RTcYtAUBiEwmtcnmQeL8KU4f8e9S6uXLtwuE",
1
]
]
},
"memo_key": "STM6qc1w9wsYk3YeiRXb7ZKzW2Lq9rYrNrEXf1caLm8M9YiEqLHAh",
"json_metadata": "{\"profile\":{\"profile_image\":\"https://cdn.steemitimages.com/DQmUENzc6G2PtUJZPSYnTUjFQVQvLK1EBpvnpvnS2voGZz6/me_square.png\",\"name\":\"Caleb L. Power\",\"location\":\"Edmond, OK\",\"website\":\"https://www.calebpower.com\"}}",
"posting_json_metadata": "{\"profile\":{\"profile_image\":\"https://cdn.steemitimages.com/DQmPfaAUak6Zb5C7gs1mDApJwho1zxuTttcb1dKs5jGixgE/2024-06-03_16-41.png\",\"name\":\"LordInateur\",\"version\":2}}",
"proxy": "",
"last_owner_update": "1970-01-01T00:00:00",
"last_account_update": "2024-06-03T20:41:21",
"created": "2019-01-08T21:56:18",
"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": 3,
"can_vote": true,
"voting_manabar": {
"current_mana": 1953311140,
"last_update_time": 1588924506
},
"downvote_manabar": {
"current_mana": 488327785,
"last_update_time": 1588924506
},
"voting_power": 0,
"balance": "0.002 STEEM",
"savings_balance": "0.000 STEEM",
"sbd_balance": "0.000 SBD",
"sbd_seconds": "0",
"sbd_seconds_last_update": "1970-01-01T00:00:00",
"sbd_last_interest_payment": "1970-01-01T00:00:00",
"savings_sbd_balance": "0.000 SBD",
"savings_sbd_seconds": "0",
"savings_sbd_seconds_last_update": "1970-01-01T00:00:00",
"savings_sbd_last_interest_payment": "1970-01-01T00:00:00",
"savings_withdraw_requests": 0,
"reward_sbd_balance": "0.000 SBD",
"reward_steem_balance": "0.047 STEEM",
"reward_vesting_balance": "94.387693 VESTS",
"reward_vesting_steem": "0.047 STEEM",
"vesting_shares": "0.000000 VESTS",
"delegated_vesting_shares": "0.000000 VESTS",
"received_vesting_shares": "1953.311140 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": 94,
"proxied_vsf_votes": [
0,
0,
0,
0
],
"witnesses_voted_for": 0,
"last_post": "2019-08-08T20:51:27",
"last_root_post": "2019-08-08T20:51:27",
"last_vote_time": "1970-01-01T00:00:00",
"post_bandwidth": 0,
"pending_claimed_accounts": 0,
"vesting_balance": "0.000 STEEM",
"reputation": 1548770144,
"transfer_history": [],
"market_history": [],
"post_history": [],
"vote_history": [],
"other_history": [],
"witness_votes": [],
"tags_usage": [],
"guest_bloggers": [],
"rank": 1586948
}Withdraw Routes
| Incoming | Outgoing |
|---|---|
Empty | Empty |
{
"incoming": [],
"outgoing": []
}From Date
To Date
cpowerupdated their account properties2024/06/03 20:41:21
cpowerupdated their account properties
2024/06/03 20:41:21
| account | cpower |
| json metadata | |
| posting json metadata | {"profile":{"profile_image":"https://cdn.steemitimages.com/DQmPfaAUak6Zb5C7gs1mDApJwho1zxuTttcb1dKs5jGixgE/2024-06-03_16-41.png","name":"LordInateur","version":2}} |
| extensions | [] |
| Transaction Info | Block #85666477/Trx 874f036dbca96b62bffae68098ad60b3d69a7740 |
View Raw JSON Data
{
"trx_id": "874f036dbca96b62bffae68098ad60b3d69a7740",
"block": 85666477,
"trx_in_block": 14,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2024-06-03T20:41:21",
"op": [
"account_update2",
{
"account": "cpower",
"json_metadata": "",
"posting_json_metadata": "{\"profile\":{\"profile_image\":\"https://cdn.steemitimages.com/DQmPfaAUak6Zb5C7gs1mDApJwho1zxuTttcb1dKs5jGixgE/2024-06-03_16-41.png\",\"name\":\"LordInateur\",\"version\":2}}",
"extensions": []
}
]
}cpowerupdated their account properties2023/08/14 18:54:51
cpowerupdated their account properties
2023/08/14 18:54:51
| account | cpower |
| json metadata | |
| posting json metadata | {"profile":{"profile_image":"https://cdn.steemitimages.com/DQmUENzc6G2PtUJZPSYnTUjFQVQvLK1EBpvnpvnS2voGZz6/me_square.png","name":"Caleb L. Power","location":"Boston, MA","website":"https://www.calebpower.com","version":2}} |
| extensions | [] |
| Transaction Info | Block #77256701/Trx 9d67e251e70a793b6f7ddf8d633b36acfd039059 |
View Raw JSON Data
{
"trx_id": "9d67e251e70a793b6f7ddf8d633b36acfd039059",
"block": 77256701,
"trx_in_block": 3,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2023-08-14T18:54:51",
"op": [
"account_update2",
{
"account": "cpower",
"json_metadata": "",
"posting_json_metadata": "{\"profile\":{\"profile_image\":\"https://cdn.steemitimages.com/DQmUENzc6G2PtUJZPSYnTUjFQVQvLK1EBpvnpvnS2voGZz6/me_square.png\",\"name\":\"Caleb L. Power\",\"location\":\"Boston, MA\",\"website\":\"https://www.calebpower.com\",\"version\":2}}",
"extensions": []
}
]
}cpowercustom json: notify2020/08/02 07:33:57
cpowercustom json: notify
2020/08/02 07:33:57
| required auths | [] |
| required posting auths | ["cpower"] |
| id | notify |
| json | ["setLastRead",{"date":"2020-08-02T07:33:56"}] |
| Transaction Info | Block #45634503/Trx 61acacf20d09573ff2269d1e17baaa0a2d5914cb |
View Raw JSON Data
{
"trx_id": "61acacf20d09573ff2269d1e17baaa0a2d5914cb",
"block": 45634503,
"trx_in_block": 1,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-08-02T07:33:57",
"op": [
"custom_json",
{
"required_auths": [],
"required_posting_auths": [
"cpower"
],
"id": "notify",
"json": "[\"setLastRead\",{\"date\":\"2020-08-02T07:33:56\"}]"
}
]
}cpowercustom json: community2020/08/02 07:31:09
cpowercustom json: community
2020/08/02 07:31:09
| required auths | [] |
| required posting auths | ["cpower"] |
| id | community |
| json | ["subscribe",{"community":"hive-134230"}] |
| Transaction Info | Block #45634447/Trx e903674f94ac0125edbc427658b5ab2a7e1a45a4 |
View Raw JSON Data
{
"trx_id": "e903674f94ac0125edbc427658b5ab2a7e1a45a4",
"block": 45634447,
"trx_in_block": 1,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-08-02T07:31:09",
"op": [
"custom_json",
{
"required_auths": [],
"required_posting_auths": [
"cpower"
],
"id": "community",
"json": "[\"subscribe\",{\"community\":\"hive-134230\"}]"
}
]
}cpowercustom json: community2020/08/02 07:30:54
cpowercustom json: community
2020/08/02 07:30:54
| required auths | [] |
| required posting auths | ["cpower"] |
| id | community |
| json | ["subscribe",{"community":"hive-138876"}] |
| Transaction Info | Block #45634442/Trx 9588516c0d77cc8346fed4ff31986c36849189d8 |
View Raw JSON Data
{
"trx_id": "9588516c0d77cc8346fed4ff31986c36849189d8",
"block": 45634442,
"trx_in_block": 0,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-08-02T07:30:54",
"op": [
"custom_json",
{
"required_auths": [],
"required_posting_auths": [
"cpower"
],
"id": "community",
"json": "[\"subscribe\",{\"community\":\"hive-138876\"}]"
}
]
}2020/05/08 07:55:06
2020/05/08 07:55:06
| delegator | steem |
| delegatee | cpower |
| vesting shares | 1953.311140 VESTS |
| Transaction Info | Block #43191463/Trx 413d57409edfe4220e96e1a2221c1c7c371edbbb |
View Raw JSON Data
{
"trx_id": "413d57409edfe4220e96e1a2221c1c7c371edbbb",
"block": 43191463,
"trx_in_block": 6,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-05-08T07:55:06",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "cpower",
"vesting_shares": "1953.311140 VESTS"
}
]
}2020/03/10 15:08:15
2020/03/10 15:08:15
| delegator | steem |
| delegatee | cpower |
| vesting shares | 9796.896785 VESTS |
| Transaction Info | Block #41532603/Trx b633fde43c9d77b2b9e7adeb62afc1ff73a1a245 |
View Raw JSON Data
{
"trx_id": "b633fde43c9d77b2b9e7adeb62afc1ff73a1a245",
"block": 41532603,
"trx_in_block": 21,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-03-10T15:08:15",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "cpower",
"vesting_shares": "9796.896785 VESTS"
}
]
}2020/01/08 22:25:24
2020/01/08 22:25:24
| parent author | cpower |
| parent permlink | the-redundancy-paradox |
| author | steemitboard |
| permlink | steemitboard-notify-cpower-20200108t222523000z |
| title | |
| body | Congratulations @cpower! You received a personal award! <table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@cpower/birthday1.png</td><td>Happy Birthday! - You are on the Steem blockchain for 1 year!</td></tr></table> <sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@cpower) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=cpower)_</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 #39760414/Trx 4156d3ace7469d4b69eb3b75da4a23a893b68cb7 |
View Raw JSON Data
{
"trx_id": "4156d3ace7469d4b69eb3b75da4a23a893b68cb7",
"block": 39760414,
"trx_in_block": 2,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-01-08T22:25:24",
"op": [
"comment",
{
"parent_author": "cpower",
"parent_permlink": "the-redundancy-paradox",
"author": "steemitboard",
"permlink": "steemitboard-notify-cpower-20200108t222523000z",
"title": "",
"body": "Congratulations @cpower! You received a personal award!\n\n<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@cpower/birthday1.png</td><td>Happy Birthday! - You are on the Steem blockchain for 1 year!</td></tr></table>\n\n<sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@cpower) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=cpower)_</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/09/20 21:49:45
2019/09/20 21:49:45
| from | dtube |
| to | cpower |
| amount | 0.001 STEEM |
| memo | DTube Coin Round #1 is live! Visit https://token.d.tube for more information |
| Transaction Info | Block #36597811/Trx 5a458713b57bf1b8597bc39a1d3f73387216cc14 |
View Raw JSON Data
{
"trx_id": "5a458713b57bf1b8597bc39a1d3f73387216cc14",
"block": 36597811,
"trx_in_block": 2,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-09-20T21:49:45",
"op": [
"transfer",
{
"from": "dtube",
"to": "cpower",
"amount": "0.001 STEEM",
"memo": "DTube Coin Round #1 is live! Visit https://token.d.tube for more information"
}
]
}2019/09/03 17:31:06
2019/09/03 17:31:06
| from | dtube |
| to | cpower |
| amount | 0.001 STEEM |
| memo | Final call to claim your DTube account! It takes only 5 minutes. Go now to https://d.tube |
| Transaction Info | Block #36104730/Trx e63883da79b225dc8fd846013e2cbb531e064c05 |
View Raw JSON Data
{
"trx_id": "e63883da79b225dc8fd846013e2cbb531e064c05",
"block": 36104730,
"trx_in_block": 13,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-09-03T17:31:06",
"op": [
"transfer",
{
"from": "dtube",
"to": "cpower",
"amount": "0.001 STEEM",
"memo": "Final call to claim your DTube account! It takes only 5 minutes. Go now to https://d.tube"
}
]
}2019/08/29 20:22:57
2019/08/29 20:22:57
| parent author | cpower |
| parent permlink | the-redundancy-paradox |
| author | steemitboard |
| permlink | steemitboard-notify-cpower-20190829t202256000z |
| title | |
| body | Congratulations @cpower! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) : <table><tr><td><img src="https://steemitimages.com/60x60/http://steemitboard.com/img/notifications/firstvote.png"></td><td>You made your First Vote</td></tr> </table> <sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@cpower) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=cpower)_</sub> <sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</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 #35980717/Trx 061452cb9df56f1b4d38d8b97b04e73e0656b663 |
View Raw JSON Data
{
"trx_id": "061452cb9df56f1b4d38d8b97b04e73e0656b663",
"block": 35980717,
"trx_in_block": 9,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-08-29T20:22:57",
"op": [
"comment",
{
"parent_author": "cpower",
"parent_permlink": "the-redundancy-paradox",
"author": "steemitboard",
"permlink": "steemitboard-notify-cpower-20190829t202256000z",
"title": "",
"body": "Congratulations @cpower! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :\n\n<table><tr><td><img src=\"https://steemitimages.com/60x60/http://steemitboard.com/img/notifications/firstvote.png\"></td><td>You made your First Vote</td></tr>\n</table>\n\n<sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@cpower) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=cpower)_</sub>\n<sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub>\n\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\"]}"
}
]
}cpowerupvoted (100.00%) @tensor / making-http-requests-and-using-json-in-dart-s-flutter-framework2019/08/29 17:01:24
cpowerupvoted (100.00%) @tensor / making-http-requests-and-using-json-in-dart-s-flutter-framework
2019/08/29 17:01:24
| voter | cpower |
| author | tensor |
| permlink | making-http-requests-and-using-json-in-dart-s-flutter-framework |
| weight | 10000 (100.00%) |
| Transaction Info | Block #35976727/Trx 040185091db570c626254b89fe4bcdc5d768cc09 |
View Raw JSON Data
{
"trx_id": "040185091db570c626254b89fe4bcdc5d768cc09",
"block": 35976727,
"trx_in_block": 24,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-08-29T17:01:24",
"op": [
"vote",
{
"voter": "cpower",
"author": "tensor",
"permlink": "making-http-requests-and-using-json-in-dart-s-flutter-framework",
"weight": 10000
}
]
}laissez-faireupvoted (100.00%) @cpower / the-redundancy-paradox2019/08/08 20:52:54
laissez-faireupvoted (100.00%) @cpower / the-redundancy-paradox
2019/08/08 20:52:54
| voter | laissez-faire |
| author | cpower |
| permlink | the-redundancy-paradox |
| weight | 10000 (100.00%) |
| Transaction Info | Block #35382575/Trx 51c2874cfe9eba8c31fcd690b6bfae0d7bbaa231 |
View Raw JSON Data
{
"trx_id": "51c2874cfe9eba8c31fcd690b6bfae0d7bbaa231",
"block": 35382575,
"trx_in_block": 2,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-08-08T20:52:54",
"op": [
"vote",
{
"voter": "laissez-faire",
"author": "cpower",
"permlink": "the-redundancy-paradox",
"weight": 10000
}
]
}anomalyupvoted (1.00%) @cpower / the-redundancy-paradox2019/08/08 20:52:48
anomalyupvoted (1.00%) @cpower / the-redundancy-paradox
2019/08/08 20:52:48
| voter | anomaly |
| author | cpower |
| permlink | the-redundancy-paradox |
| weight | 100 (1.00%) |
| Transaction Info | Block #35382573/Trx ba6e83cfcc07ef1855024f530248e0fad875fcd0 |
View Raw JSON Data
{
"trx_id": "ba6e83cfcc07ef1855024f530248e0fad875fcd0",
"block": 35382573,
"trx_in_block": 29,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-08-08T20:52:48",
"op": [
"vote",
{
"voter": "anomaly",
"author": "cpower",
"permlink": "the-redundancy-paradox",
"weight": 100
}
]
}cpowerpublished a new post: the-redundancy-paradox2019/08/08 20:51:51
cpowerpublished a new post: the-redundancy-paradox
2019/08/08 20:51:51
| parent author | |
| parent permlink | devops |
| author | cpower |
| permlink | the-redundancy-paradox |
| title | The Redundancy Paradox |
| body | DevOps Engineers often strive to keep as much redundancy in the systems that they're deploying as feasibly possible. Often they'll use different means of keeping their systems redundant--for production systems, maybe they use the "blue-green" deployment methodology to ensure that a system is always online and functional... or maybe they use continuous integration and continuous delivery on their development systems to make it easier to add multiple machines. Whatever the case, the various production instances have the same settings and access to the same data so that the user can't tell the difference between the servers that are being utilized--instead, they experience a unified product or service. This is all well and good whenever a large majority of the product or service is developed and maintained by one company or organization and when that product can handle exceptions that arise from the consumption of outside data. However, I've noticed that redundancy cannot be all-encompassing when a program is part of a larger whole (and that larger whole is not controlled by the same organization). The real-world example is blockchain technology--in my experience, specifically blockchain instances that utilize the EOSIO software variants. EOSIO node providers that have the luxury of maintaining multiple nodes for each individual instance (some for public API consumption, others for block production) generally have some form of redundant node setup which works well for them, but more often than not the configurations of the redundant nodes are almost identical. And this is as it should be... until a chain event (i.e. the upcoming EOS Mainnet 1.8 upgrade or an upgrade of an EOSIO sister chain) inadvertently crashes a misconfigured node. In such an event, all nodes with the same configuration crash, thus bypassing any redundancy that was in place as if it were never there at all. Unfortunately, this phenomenon, the "Redundancy Paradox," (that is, the idea that "true redundancy requires similar configurations across multiple systems, and yet similar configurations can be a cause of universal redundant system failure") is an issue that can only be mitigated and not solved. "Solving" the issue implies that there is no sacrifice to be made without changing one the configurations of one of the nodes... however, a properly-motivated systems administrator would have theoretically made both configurations "perfect and up to code"--that is, a competent systems administrator would see to it that both configurations are similar because he or she would want said configuration to cause the software to operate at its most efficient. Changing the configurations would cause some sacrifice to be made, and thus any change would be a "mitigation." I'm not suggesting that maintenance teams get rid of redundancy--as, in any other situation, i.e. upgrading, mitigating damages due to the failure of a single node, etc., redundancy generally works as it absolutely should. However, it should be observed as one might observe biodiversity--the failure of a node caused by some external event will likely indicate the failure of some similar node also affected by the same event due to a lack of diversity in its implementation. Potential mitigations of this issue can come in at least two forms: a) ensuring that DevOps Engineers are available to battle Murphy and his Laws at any hour of the night, and b) properly motivating DevOps Engineers to develop a failover system--that is, the issue caused by the Redundancy Paradox is something that must be addressed from outside the system and reference frame. External software that detects node failures, corrects them, and relaunches the node in an automated fashion is invaluable in situations like these. I suppose this "rambling" about Redundancy Paradox is less of a call to change redundant practices and more of a warning to ensure that DevOps Engineers and business personnel don't become complacent when computing machinery is operating nominally--because external events are not bound to follow the procedures of any organization that works with them, and "nominally-operating machinery" should be inherently suspicious. |
| json metadata | {"tags":["devops","sysadmin","eos","eosio","redundancy"],"app":"steemit/0.1","format":"markdown"} |
| Transaction Info | Block #35382554/Trx b4860cc32538e788fd54fcaa557c4fd85f098b9e |
View Raw JSON Data
{
"trx_id": "b4860cc32538e788fd54fcaa557c4fd85f098b9e",
"block": 35382554,
"trx_in_block": 8,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-08-08T20:51:51",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "devops",
"author": "cpower",
"permlink": "the-redundancy-paradox",
"title": "The Redundancy Paradox",
"body": "DevOps Engineers often strive to keep as much redundancy in the systems that they're deploying as feasibly possible. Often they'll use different means of keeping their systems redundant--for production systems, maybe they use the \"blue-green\" deployment methodology to ensure that a system is always online and functional... or maybe they use continuous integration and continuous delivery on their development systems to make it easier to add multiple machines. Whatever the case, the various production instances have the same settings and access to the same data so that the user can't tell the difference between the servers that are being utilized--instead, they experience a unified product or service.\n\nThis is all well and good whenever a large majority of the product or service is developed and maintained by one company or organization and when that product can handle exceptions that arise from the consumption of outside data. However, I've noticed that redundancy cannot be all-encompassing when a program is part of a larger whole (and that larger whole is not controlled by the same organization). The real-world example is blockchain technology--in my experience, specifically blockchain instances that utilize the EOSIO software variants. EOSIO node providers that have the luxury of maintaining multiple nodes for each individual instance (some for public API consumption, others for block production) generally have some form of redundant node setup which works well for them, but more often than not the configurations of the redundant nodes are almost identical. And this is as it should be... until a chain event (i.e. the upcoming EOS Mainnet 1.8 upgrade or an upgrade of an EOSIO sister chain) inadvertently crashes a misconfigured node. In such an event, all nodes with the same configuration crash, thus bypassing any redundancy that was in place as if it were never there at all.\n\nUnfortunately, this phenomenon, the \"Redundancy Paradox,\" (that is, the idea that \"true redundancy requires similar configurations across multiple systems, and yet similar configurations can be a cause of universal redundant system failure\") is an issue that can only be mitigated and not solved. \"Solving\" the issue implies that there is no sacrifice to be made without changing one the configurations of one of the nodes... however, a properly-motivated systems administrator would have theoretically made both configurations \"perfect and up to code\"--that is, a competent systems administrator would see to it that both configurations are similar because he or she would want said configuration to cause the software to operate at its most efficient. Changing the configurations would cause some sacrifice to be made, and thus any change would be a \"mitigation.\"\n\nI'm not suggesting that maintenance teams get rid of redundancy--as, in any other situation, i.e. upgrading, mitigating damages due to the failure of a single node, etc., redundancy generally works as it absolutely should. However, it should be observed as one might observe biodiversity--the failure of a node caused by some external event will likely indicate the failure of some similar node also affected by the same event due to a lack of diversity in its implementation.\n\nPotential mitigations of this issue can come in at least two forms: a) ensuring that DevOps Engineers are available to battle Murphy and his Laws at any hour of the night, and b) properly motivating DevOps Engineers to develop a failover system--that is, the issue caused by the Redundancy Paradox is something that must be addressed from outside the system and reference frame. External software that detects node failures, corrects them, and relaunches the node in an automated fashion is invaluable in situations like these.\n\nI suppose this \"rambling\" about Redundancy Paradox is less of a call to change redundant practices and more of a warning to ensure that DevOps Engineers and business personnel don't become complacent when computing machinery is operating nominally--because external events are not bound to follow the procedures of any organization that works with them, and \"nominally-operating machinery\" should be inherently suspicious.",
"json_metadata": "{\"tags\":[\"devops\",\"sysadmin\",\"eos\",\"eosio\",\"redundancy\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
}
]
}cpowerpublished a new post: the-redundancy-paradox2019/08/08 20:51:27
cpowerpublished a new post: the-redundancy-paradox
2019/08/08 20:51:27
| parent author | |
| parent permlink | devops |
| author | cpower |
| permlink | the-redundancy-paradox |
| title | The Redundancy Paradox |
| body | DevOps Engineers often strive to keep as much redundancy in the systems that they're deploying as feasibly possible. Often they'll use different means of keeping their systems redundant--for production systems, maybe they use the "blue-green" deployment methodology to ensure that a system is always online and functional... or maybe they use continuous integration and continuous delivery on their development systems to make it easier to add multiple machines. Whatever the case, the various production instances have the same settings and access to the same data so that the user can't tell the difference between the servers that are being utilized--instead, they experience a unified product or service. This is all well and good whenever a large majority of the product or service is developed and maintained by one company or organization and when that product can handle exceptions that arise from the consumption of outside data. However, I've noticed that redundancy cannot be all-encompassing when a program is part of a larger whole (and that larger whole is not controlled by the same organization). The real-world example is blockchain technology--in my experience, specifically blockchain instances that utilize the EOSIO software variants. EOSIO node providers that have the luxury of maintaining multiple nodes for each individual instance (some for public API consumption, others for block production) generally have some form of redundant node setup which works well for them, but more often than not the configurations of the redundant nodes are almost identical. And this is as it should be... until a chain event (i.e. the upcoming EOS Mainnet 1.8 upgrade or an upgrade of an EOSIO sister chain) inadvertently crashes a misconfigured node. In such an event, all nodes with the same configuration crash, thus bypassing any redundancy that was in place as if it were never there at all. Unfortunately, this phenomenon, the "Redundancy Paradox," (that is, the idea that "true redundancy requires similar configurations across multiple systems, and yet similar configurations can be a cause of universal redundant system failure") is an issue that can only be mitigated and not solved. "Solving" the issue implies that there is no sacrifice to be made without changing one the configurations of one of the nodes... however, a properly-motivated systems administrator would have theoretically made both configurations "perfect and up to code"--that is, a competent systems administrator would see to it that both configurations are similar because he or she would want said configuration to cause the software to operate at its most efficient. Changing the configurations would cause some sacrifice to be made, and thus any change would be a "mitigation." I'm not suggesting that maintenance teams get rid of redundancy--as, in any other situation, i.e. upgrading, mitigating damages due to the failure of a single node, etc., redundancy generally works as it absolutely should. However, it should be observed as one might observe biodiversity--the failure of a node caused by some external event will likely indicate the failure of some similar node also affected by the same event due to a lack of diversity in its implementation. Potential mitigations of this issue can come in at least two forms: a) ensuring that DevOps Engineers are available to battle Murphy and his Laws at any hour of the night, and b) properly motivating DevOps Engineers to develop a failover system--that is, the issue caused by the Redundancy Paradox is something that must be addressed from outside the system and reference frame. External software that detects node failures, corrects them, and relaunches the node in an automated fashion is invaluable in situations like these. I suppose this "rambling" about Redundancy Paradox is less of a call to change redundant practices and more of a warning to ensure that DevOps Engineers and business personnel don't become complacent when computing machinery is operating nominally--because external events are not bound to follow the procedures of any organization that works with them, and "nominally-operating machinery" should be inherently suspicious. |
| json metadata | {"tags":["devops","sysadmin","eos","redundancy"],"app":"steemit/0.1","format":"markdown"} |
| Transaction Info | Block #35382546/Trx c4d323bbb42c1bfb105565b7f85f5fc6b45b9517 |
View Raw JSON Data
{
"trx_id": "c4d323bbb42c1bfb105565b7f85f5fc6b45b9517",
"block": 35382546,
"trx_in_block": 3,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-08-08T20:51:27",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "devops",
"author": "cpower",
"permlink": "the-redundancy-paradox",
"title": "The Redundancy Paradox",
"body": "DevOps Engineers often strive to keep as much redundancy in the systems that they're deploying as feasibly possible. Often they'll use different means of keeping their systems redundant--for production systems, maybe they use the \"blue-green\" deployment methodology to ensure that a system is always online and functional... or maybe they use continuous integration and continuous delivery on their development systems to make it easier to add multiple machines. Whatever the case, the various production instances have the same settings and access to the same data so that the user can't tell the difference between the servers that are being utilized--instead, they experience a unified product or service.\n\nThis is all well and good whenever a large majority of the product or service is developed and maintained by one company or organization and when that product can handle exceptions that arise from the consumption of outside data. However, I've noticed that redundancy cannot be all-encompassing when a program is part of a larger whole (and that larger whole is not controlled by the same organization). The real-world example is blockchain technology--in my experience, specifically blockchain instances that utilize the EOSIO software variants. EOSIO node providers that have the luxury of maintaining multiple nodes for each individual instance (some for public API consumption, others for block production) generally have some form of redundant node setup which works well for them, but more often than not the configurations of the redundant nodes are almost identical. And this is as it should be... until a chain event (i.e. the upcoming EOS Mainnet 1.8 upgrade or an upgrade of an EOSIO sister chain) inadvertently crashes a misconfigured node. In such an event, all nodes with the same configuration crash, thus bypassing any redundancy that was in place as if it were never there at all.\n\nUnfortunately, this phenomenon, the \"Redundancy Paradox,\" (that is, the idea that \"true redundancy requires similar configurations across multiple systems, and yet similar configurations can be a cause of universal redundant system failure\") is an issue that can only be mitigated and not solved. \"Solving\" the issue implies that there is no sacrifice to be made without changing one the configurations of one of the nodes... however, a properly-motivated systems administrator would have theoretically made both configurations \"perfect and up to code\"--that is, a competent systems administrator would see to it that both configurations are similar because he or she would want said configuration to cause the software to operate at its most efficient. Changing the configurations would cause some sacrifice to be made, and thus any change would be a \"mitigation.\"\n\nI'm not suggesting that maintenance teams get rid of redundancy--as, in any other situation, i.e. upgrading, mitigating damages due to the failure of a single node, etc., redundancy generally works as it absolutely should. However, it should be observed as one might observe biodiversity--the failure of a node caused by some external event will likely indicate the failure of some similar node also affected by the same event due to a lack of diversity in its implementation.\n\nPotential mitigations of this issue can come in at least two forms: a) ensuring that DevOps Engineers are available to battle Murphy and his Laws at any hour of the night, and b) properly motivating DevOps Engineers to develop a failover system--that is, the issue caused by the Redundancy Paradox is something that must be addressed from outside the system and reference frame. External software that detects node failures, corrects them, and relaunches the node in an automated fashion is invaluable in situations like these.\n\nI suppose this \"rambling\" about Redundancy Paradox is less of a call to change redundant practices and more of a warning to ensure that DevOps Engineers and business personnel don't become complacent when computing machinery is operating nominally--because external events are not bound to follow the procedures of any organization that works with them, and \"nominally-operating machinery\" should be inherently suspicious.",
"json_metadata": "{\"tags\":[\"devops\",\"sysadmin\",\"eos\",\"redundancy\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
}
]
}freemoceanisnowupvoted (100.00%) @cpower / eos-io-code-forks-the-good-the-bad-the-ugly2019/05/07 16:51:36
freemoceanisnowupvoted (100.00%) @cpower / eos-io-code-forks-the-good-the-bad-the-ugly
2019/05/07 16:51:36
| voter | freemoceanisnow |
| author | cpower |
| permlink | eos-io-code-forks-the-good-the-bad-the-ugly |
| weight | 10000 (100.00%) |
| Transaction Info | Block #32703886/Trx 6a88bfe504b662ad04c8db1910c5c18922616407 |
View Raw JSON Data
{
"trx_id": "6a88bfe504b662ad04c8db1910c5c18922616407",
"block": 32703886,
"trx_in_block": 0,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-07T16:51:36",
"op": [
"vote",
{
"voter": "freemoceanisnow",
"author": "cpower",
"permlink": "eos-io-code-forks-the-good-the-bad-the-ugly",
"weight": 10000
}
]
}seanpaulupvoted (100.00%) @cpower / eos-io-code-forks-the-good-the-bad-the-ugly2019/05/07 12:21:18
seanpaulupvoted (100.00%) @cpower / eos-io-code-forks-the-good-the-bad-the-ugly
2019/05/07 12:21:18
| voter | seanpaul |
| author | cpower |
| permlink | eos-io-code-forks-the-good-the-bad-the-ugly |
| weight | 10000 (100.00%) |
| Transaction Info | Block #32698482/Trx f81ff406e8e1b6c4d6264731f8d419da52b1c53e |
View Raw JSON Data
{
"trx_id": "f81ff406e8e1b6c4d6264731f8d419da52b1c53e",
"block": 32698482,
"trx_in_block": 42,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-07T12:21:18",
"op": [
"vote",
{
"voter": "seanpaul",
"author": "cpower",
"permlink": "eos-io-code-forks-the-good-the-bad-the-ugly",
"weight": 10000
}
]
}cpowerpublished a new post: eos-io-code-forks-the-good-the-bad-the-ugly2019/05/07 04:40:42
cpowerpublished a new post: eos-io-code-forks-the-good-the-bad-the-ugly
2019/05/07 04:40:42
| parent author | |
| parent permlink | eos |
| author | cpower |
| permlink | eos-io-code-forks-the-good-the-bad-the-ugly |
| title | EOS.IO Code Forks: The Good, The Bad, The Ugly |
| body | One of my primary tasks at EOS BlockSmith is node maintenance and assisting with the spinning up of new EOS.IO chains. I think that we can all agree that once IBC is properly implemented, horizontal scaling of the EOS ecosystem will become more mainstream. That being said, it is good to see that more code forks are being spun up to fit the numerous business cases out there. I'm not here today to praise or call out any specific chain. Rather, I hope to raise a few specific things that hopefuls should consider when they decide to implement their own business models by deploying a code fork. As such, the target audience of this post will be the workflow designers, rather than the users of the chains in question. ### Coordination and Communication ### As with any coordination effort, communication is key. While the levels of publicity for various projects can differ from one business model to the next, the organizations who are behind the spinning up the new code forks need to ensure that end-to-end communication is well thought-out and properly organized. There are three types of communication channels that should be considered. **Intra-Team Communication** Teams should only have one social media platform on which major decisions are made. The choice of platform should be decided based on a) the quality of the platform and b) the percentage of the target audience that is using the platform. For example: chains that have a base that largely comprises of gamers should consider platforms like Discord, while chains that have a business model more closely geared to security should look into using Keybase. There are several to choose from that are used across several chains already--Keybase, Discord, Telegram, and Slack primarily. The important thing is that there should only be one where decisions are made so that the community doesn't split among the different platforms. **Public Announcements / Discussion** Unlike Intra-Team Communication, public announcements and discussion should be spread across as many social media platforms as possible (if the chain is supposed to go public). In addition to the platforms mentioned above, organizers should consider consistently posting on Medium, Steemit, Reddit, and even Facebook and Twitter. Chains that wish to onboard block producers should make steps to join the chains easily available directly on a responsive website. Dedicated PR personnel are key to making a good impression in an ecosystem that is so community-based. **Developer Resources / Documentation** A separate platform specifically geared to resources and documentation is a must. This can be as simple as a public account on Bitbucket or GitHub (for you Microsoft-lovers) that hosts the code fork, various onboarding scripts, and documentation. Developers and systems administrators need easy access to peer lists, genesis JSON files, and the modified EOS codebase. All of these resources need to be easily discoverable... and social media platforms are not conducive to the discovery of these resources. A link should be readily available on the website. ### Testing ### One of the true tests as to whether a chain launch is going to go off without a major hitch is the extent that the code fork was tested before launch. *All chains that have undergone any code change, or ever plan to undergo a code change, should have a testnet.* Nearly every chain that has failed to do this has failed to launch on time or has one or more false starts. "Internal testing" doesn't cut it--interaction from "clients" (in this case, block producers and users) is mandatory to determine if a chain is going to fly or fail. Murphy's Law is wide-spread in the realm of Software Engineering; to presume that it doesn't apply to EOS.IO is simply hubris. ### Launching the Chain ### The overall organization of a team is indicated by how smoothly a code fork launches. As mentioned before, it is paramount that the chain is tested before launch. That being said, proper coordination on launch day is just as important. Block producers are international and it can be hard for all parties to adhere to a hastily-made time schedule. Here are some tips to ensure that the chain can kick off according to the previously-defined timetable. * Action items should be scheduled up to a week in advance. Day-of plans are unacceptable except for in the case of an emergency. Most emergencies can be avoided if procrastination is eliminated. * The main organization launching the chain should consider launching 21 (or an appropriate number) of temporary block producers so that the chain can run without losing consensus. * The 'eosio' producer (or, renamed master producer, if applicable) can be paused. The chain should go live before the public launch date and be paused to allow all other block producers to sync up without making "catching up" necessary. Resuming the chain should be planned in advance so that all block producers can register and be added to the schedule (and then the temporary block producers mentioned above can be phased out). Failure to perform these steps can easily lead to a lack in consensus. ### Security Considerations ### Best practices need to be implemented from the get-go. I'm not really going to cover the low-level security practices that systems administrator need to consider, but organizations launching code forks should consider the following: * Initial block producers should run under a VPN. Some code forks have utilized Wireguard for their VPN solution. It's incredibly new, but it seems to have worked quite well for some of the more popular forks. * Initial block producers should consider DDoS-mitigation services like CloudFlare and patroneos, and load balancers like haproxy. * Best practices in wallet security should be practiced. It should be encouraged that block producers adhere to standard EOS.IO security practices, like ensuring that "owner" and "active" keys are different, ensuring that there is a separate "claim" permission, and ensuring that block producers don't use or keep their wallets on the machines containing their nodeos instances. ### Final Thoughts ### I'm sure that the above points would appear common knowledge to most who are deep in the EOS.IO space, and certainly I only skim the surface as far as best practices go, particularly in the realm of security. That being said, one might be surprised in how disorganized certain chains are run. I hope that these notes are considered by any who plan to launch code forks in the future. |
| json metadata | {"tags":["eos","blockproducer","blockchain"],"app":"steemit/0.1","format":"markdown"} |
| Transaction Info | Block #32689274/Trx 5f77a11f2c1ba1393c4ae2d45937595ddd65d14c |
View Raw JSON Data
{
"trx_id": "5f77a11f2c1ba1393c4ae2d45937595ddd65d14c",
"block": 32689274,
"trx_in_block": 10,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-07T04:40:42",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "eos",
"author": "cpower",
"permlink": "eos-io-code-forks-the-good-the-bad-the-ugly",
"title": "EOS.IO Code Forks: The Good, The Bad, The Ugly",
"body": "One of my primary tasks at EOS BlockSmith is node maintenance and assisting with the spinning up of new EOS.IO chains. I think that we can all agree that once IBC is properly implemented, horizontal scaling of the EOS ecosystem will become more mainstream. That being said, it is good to see that more code forks are being spun up to fit the numerous business cases out there.\n\nI'm not here today to praise or call out any specific chain. Rather, I hope to raise a few specific things that hopefuls should consider when they decide to implement their own business models by deploying a code fork. As such, the target audience of this post will be the workflow designers, rather than the users of the chains in question.\n\n### Coordination and Communication ###\n\nAs with any coordination effort, communication is key. While the levels of publicity for various projects can differ from one business model to the next, the organizations who are behind the spinning up the new code forks need to ensure that end-to-end communication is well thought-out and properly organized. There are three types of communication channels that should be considered.\n\n**Intra-Team Communication**\n\nTeams should only have one social media platform on which major decisions are made. The choice of platform should be decided based on a) the quality of the platform and b) the percentage of the target audience that is using the platform. For example: chains that have a base that largely comprises of gamers should consider platforms like Discord, while chains that have a business model more closely geared to security should look into using Keybase. There are several to choose from that are used across several chains already--Keybase, Discord, Telegram, and Slack primarily. The important thing is that there should only be one where decisions are made so that the community doesn't split among the different platforms.\n\n**Public Announcements / Discussion**\n\nUnlike Intra-Team Communication, public announcements and discussion should be spread across as many social media platforms as possible (if the chain is supposed to go public). In addition to the platforms mentioned above, organizers should consider consistently posting on Medium, Steemit, Reddit, and even Facebook and Twitter. Chains that wish to onboard block producers should make steps to join the chains easily available directly on a responsive website. Dedicated PR personnel are key to making a good impression in an ecosystem that is so community-based.\n\n**Developer Resources / Documentation**\n\nA separate platform specifically geared to resources and documentation is a must. This can be as simple as a public account on Bitbucket or GitHub (for you Microsoft-lovers) that hosts the code fork, various onboarding scripts, and documentation. Developers and systems administrators need easy access to peer lists, genesis JSON files, and the modified EOS codebase. All of these resources need to be easily discoverable... and social media platforms are not conducive to the discovery of these resources. A link should be readily available on the website.\n\n### Testing ###\n\nOne of the true tests as to whether a chain launch is going to go off without a major hitch is the extent that the code fork was tested before launch. *All chains that have undergone any code change, or ever plan to undergo a code change, should have a testnet.* Nearly every chain that has failed to do this has failed to launch on time or has one or more false starts. \"Internal testing\" doesn't cut it--interaction from \"clients\" (in this case, block producers and users) is mandatory to determine if a chain is going to fly or fail. Murphy's Law is wide-spread in the realm of Software Engineering; to presume that it doesn't apply to EOS.IO is simply hubris.\n\n### Launching the Chain ###\n\nThe overall organization of a team is indicated by how smoothly a code fork launches. As mentioned before, it is paramount that the chain is tested before launch. That being said, proper coordination on launch day is just as important. Block producers are international and it can be hard for all parties to adhere to a hastily-made time schedule. Here are some tips to ensure that the chain can kick off according to the previously-defined timetable.\n\n* Action items should be scheduled up to a week in advance. Day-of plans are unacceptable except for in the case of an emergency. Most emergencies can be avoided if procrastination is eliminated.\n* The main organization launching the chain should consider launching 21 (or an appropriate number) of temporary block producers so that the chain can run without losing consensus.\n* The 'eosio' producer (or, renamed master producer, if applicable) can be paused. The chain should go live before the public launch date and be paused to allow all other block producers to sync up without making \"catching up\" necessary. Resuming the chain should be planned in advance so that all block producers can register and be added to the schedule (and then the temporary block producers mentioned above can be phased out). Failure to perform these steps can easily lead to a lack in consensus.\n\n### Security Considerations ###\n\nBest practices need to be implemented from the get-go. I'm not really going to cover the low-level security practices that systems administrator need to consider, but organizations launching code forks should consider the following:\n\n* Initial block producers should run under a VPN. Some code forks have utilized Wireguard for their VPN solution. It's incredibly new, but it seems to have worked quite well for some of the more popular forks.\n* Initial block producers should consider DDoS-mitigation services like CloudFlare and patroneos, and load balancers like haproxy.\n* Best practices in wallet security should be practiced. It should be encouraged that block producers adhere to standard EOS.IO security practices, like ensuring that \"owner\" and \"active\" keys are different, ensuring that there is a separate \"claim\" permission, and ensuring that block producers don't use or keep their wallets on the machines containing their nodeos instances.\n\n### Final Thoughts ###\n\nI'm sure that the above points would appear common knowledge to most who are deep in the EOS.IO space, and certainly I only skim the surface as far as best practices go, particularly in the realm of security. That being said, one might be surprised in how disorganized certain chains are run. I hope that these notes are considered by any who plan to launch code forks in the future.",
"json_metadata": "{\"tags\":[\"eos\",\"blockproducer\",\"blockchain\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
}
]
}2019/04/11 06:49:51
2019/04/11 06:49:51
| delegator | steem |
| delegatee | cpower |
| vesting shares | 9992.861013 VESTS |
| Transaction Info | Block #31944712/Trx 689d6af5104f6d9af22d82eacd875ff6f5af1a69 |
View Raw JSON Data
{
"trx_id": "689d6af5104f6d9af22d82eacd875ff6f5af1a69",
"block": 31944712,
"trx_in_block": 17,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-04-11T06:49:51",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "cpower",
"vesting_shares": "9992.861013 VESTS"
}
]
}2019/02/26 01:13:21
2019/02/26 01:13:21
| parent author | cpower |
| parent permlink | hello-world |
| author | partiko |
| permlink | partiko-re-cpower-hello-world-20190226t011321108z |
| title | |
| body | Hello @cpower! This is a friendly reminder that you have 3000 Partiko Points unclaimed in your Partiko account! Partiko is a fast and beautiful mobile app for Steem, and it’s the most popular Steem mobile app out there! Download Partiko using the link below and login using SteemConnect to claim your 3000 Partiko points! You can easily convert them into Steem token! https://partiko.app/referral/partiko |
| json metadata | {"app":"partiko"} |
| Transaction Info | Block #30671989/Trx 73f6008407bfaf8963c07c13a66204a573e4df58 |
View Raw JSON Data
{
"trx_id": "73f6008407bfaf8963c07c13a66204a573e4df58",
"block": 30671989,
"trx_in_block": 7,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-02-26T01:13:21",
"op": [
"comment",
{
"parent_author": "cpower",
"parent_permlink": "hello-world",
"author": "partiko",
"permlink": "partiko-re-cpower-hello-world-20190226t011321108z",
"title": "",
"body": "Hello @cpower! This is a friendly reminder that you have 3000 Partiko Points unclaimed in your Partiko account!\n\nPartiko is a fast and beautiful mobile app for Steem, and it’s the most popular Steem mobile app out there! Download Partiko using the link below and login using SteemConnect to claim your 3000 Partiko points! You can easily convert them into Steem token!\n\nhttps://partiko.app/referral/partiko",
"json_metadata": "{\"app\":\"partiko\"}"
}
]
}2019/01/31 11:22:30
2019/01/31 11:22:30
| delegator | steem |
| delegatee | cpower |
| vesting shares | 30099.196819 VESTS |
| Transaction Info | Block #29935969/Trx 8901dc7cd07f43c739dd4e1c62b413de8cd25552 |
View Raw JSON Data
{
"trx_id": "8901dc7cd07f43c739dd4e1c62b413de8cd25552",
"block": 29935969,
"trx_in_block": 18,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-01-31T11:22:30",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "cpower",
"vesting_shares": "30099.196819 VESTS"
}
]
}cpowerreceived 0.047 STEEM, 0.058 SP author reward for @cpower / hello-world2019/01/17 05:18:45
cpowerreceived 0.047 STEEM, 0.058 SP author reward for @cpower / hello-world
2019/01/17 05:18:45
| author | cpower |
| permlink | hello-world |
| sbd payout | 0.000 SBD |
| steem payout | 0.047 STEEM |
| vesting payout | 94.387693 VESTS |
| Transaction Info | Block #29525897/Virtual Operation #3 |
View Raw JSON Data
{
"trx_id": "0000000000000000000000000000000000000000",
"block": 29525897,
"trx_in_block": 4294967295,
"op_in_trx": 0,
"virtual_op": 3,
"timestamp": "2019-01-17T05:18:45",
"op": [
"author_reward",
{
"author": "cpower",
"permlink": "hello-world",
"sbd_payout": "0.000 SBD",
"steem_payout": "0.047 STEEM",
"vesting_payout": "94.387693 VESTS"
}
]
}raserranoupvoted (7.50%) @cpower / hello-world2019/01/10 21:10:48
raserranoupvoted (7.50%) @cpower / hello-world
2019/01/10 21:10:48
| voter | raserrano |
| author | cpower |
| permlink | hello-world |
| weight | 750 (7.50%) |
| Transaction Info | Block #29343518/Trx 7bfbad16be327b2006b87bc9423fcbf1e57e60a0 |
View Raw JSON Data
{
"trx_id": "7bfbad16be327b2006b87bc9423fcbf1e57e60a0",
"block": 29343518,
"trx_in_block": 26,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-01-10T21:10:48",
"op": [
"vote",
{
"voter": "raserrano",
"author": "cpower",
"permlink": "hello-world",
"weight": 750
}
]
}jrb450upvoted (7.50%) @cpower / hello-world2019/01/10 21:10:15
jrb450upvoted (7.50%) @cpower / hello-world
2019/01/10 21:10:15
| voter | jrb450 |
| author | cpower |
| permlink | hello-world |
| weight | 750 (7.50%) |
| Transaction Info | Block #29343507/Trx 26ca8457f457e087f439de798e2c3d759595c9a4 |
View Raw JSON Data
{
"trx_id": "26ca8457f457e087f439de798e2c3d759595c9a4",
"block": 29343507,
"trx_in_block": 9,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-01-10T21:10:15",
"op": [
"vote",
{
"voter": "jrb450",
"author": "cpower",
"permlink": "hello-world",
"weight": 750
}
]
}tuanisreplied to @cpower / re-cpower-hello-world-20190110t210938919z2019/01/10 21:09:39
tuanisreplied to @cpower / re-cpower-hello-world-20190110t210938919z
2019/01/10 21:09:39
| parent author | cpower |
| parent permlink | hello-world |
| author | tuanis |
| permlink | re-cpower-hello-world-20190110t210938919z |
| title | Welcome |
| body | **Welcome to steemit @cpower.** - Join @minnowsupport project for more help - Checkout @helpie for daily trivias and useful information - Join @qurator a good quality support project - Checkout @steembasicincome - Help us save the forest with @treeplanter Welcome the new steemians. Have a great day! |
| json metadata | {} |
| Transaction Info | Block #29343495/Trx d897c404aebc20831b0635cb62eceeb90f0f1dec |
View Raw JSON Data
{
"trx_id": "d897c404aebc20831b0635cb62eceeb90f0f1dec",
"block": 29343495,
"trx_in_block": 7,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-01-10T21:09:39",
"op": [
"comment",
{
"parent_author": "cpower",
"parent_permlink": "hello-world",
"author": "tuanis",
"permlink": "re-cpower-hello-world-20190110t210938919z",
"title": "Welcome",
"body": "**Welcome to steemit @cpower.**\n- Join @minnowsupport project for more help\n- Checkout @helpie for daily trivias and useful information\n- Join @qurator a good quality support project\n- Checkout @steembasicincome\n- Help us save the forest with @treeplanter\n\nWelcome the new steemians. Have a great day!",
"json_metadata": "{}"
}
]
}tuanisupvoted (15.00%) @cpower / hello-world2019/01/10 21:09:36
tuanisupvoted (15.00%) @cpower / hello-world
2019/01/10 21:09:36
| voter | tuanis |
| author | cpower |
| permlink | hello-world |
| weight | 1500 (15.00%) |
| Transaction Info | Block #29343494/Trx 54574b7e20982ecfb763b6caa1e691da6c1f88f9 |
View Raw JSON Data
{
"trx_id": "54574b7e20982ecfb763b6caa1e691da6c1f88f9",
"block": 29343494,
"trx_in_block": 22,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-01-10T21:09:36",
"op": [
"vote",
{
"voter": "tuanis",
"author": "cpower",
"permlink": "hello-world",
"weight": 1500
}
]
}2019/01/10 13:48:18
2019/01/10 13:48:18
| parent author | cpower |
| parent permlink | hello-world |
| author | emmysteven |
| permlink | re-cpower-hello-world-20190110t134530061z |
| title | |
| body | Mr. Caleb (@cpower) you are so much welcome to Steemit and I guess this platform will receive much value from you on the account of you joining. Hope to see more of your write-ups! Warm regards! |
| json metadata | {"community":"busy","app":"busy/2.5.6","format":"markdown","tags":["introduceyourself"],"users":["cpower"],"links":["/@cpower"],"image":[]} |
| Transaction Info | Block #29334671/Trx c62577f51b2bc127e6d34cff584f2a9ea5b49008 |
View Raw JSON Data
{
"trx_id": "c62577f51b2bc127e6d34cff584f2a9ea5b49008",
"block": 29334671,
"trx_in_block": 27,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-01-10T13:48:18",
"op": [
"comment",
{
"parent_author": "cpower",
"parent_permlink": "hello-world",
"author": "emmysteven",
"permlink": "re-cpower-hello-world-20190110t134530061z",
"title": "",
"body": "Mr. Caleb (@cpower) you are so much welcome to Steemit and I guess this platform will receive much value from you on the account of you joining. Hope to see more of your write-ups!\n\nWarm regards!",
"json_metadata": "{\"community\":\"busy\",\"app\":\"busy/2.5.6\",\"format\":\"markdown\",\"tags\":[\"introduceyourself\"],\"users\":[\"cpower\"],\"links\":[\"/@cpower\"],\"image\":[]}"
}
]
}miguelito28upvoted (100.00%) @cpower / hello-world2019/01/10 07:13:54
miguelito28upvoted (100.00%) @cpower / hello-world
2019/01/10 07:13:54
| voter | miguelito28 |
| author | cpower |
| permlink | hello-world |
| weight | 10000 (100.00%) |
| Transaction Info | Block #29326785/Trx a9979a61e9dfd9ae39c85184d003ba27b0c13644 |
View Raw JSON Data
{
"trx_id": "a9979a61e9dfd9ae39c85184d003ba27b0c13644",
"block": 29326785,
"trx_in_block": 9,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-01-10T07:13:54",
"op": [
"vote",
{
"voter": "miguelito28",
"author": "cpower",
"permlink": "hello-world",
"weight": 10000
}
]
}2019/01/10 07:07:51
2019/01/10 07:07:51
| parent author | cpower |
| parent permlink | hello-world |
| author | steemitboard |
| permlink | steemitboard-notify-cpower-20190110t070750000z |
| title | |
| body | Congratulations @cpower! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) : <table><tr><td>https://steemitimages.com/60x60/http://steemitboard.com/notifications/firstpost.png</td><td>You published your First Post</td></tr> <tr><td>https://steemitimages.com/60x60/http://steemitboard.com/notifications/firstvoted.png</td><td>You got a First Vote</td></tr> </table> <sub>_[Click here to view your Board](https://steemitboard.com/@cpower)_</sub> <sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub> **Do not miss the last post from @steemitboard:** <table><tr><td><a href="https://steemit.com/steem/@steemitboard/steemwhales-has-officially-moved-to-steemitboard-ranking"><img src="https://steemitimages.com/64x128/https://cdn.steemitimages.com/DQmfRVpHQhLDhnjDtqck8GPv9NPvNKPfMsDaAFDE1D9Er2Z/header_ranking.png"></a></td><td><a href="https://steemit.com/steem/@steemitboard/steemwhales-has-officially-moved-to-steemitboard-ranking">SteemWhales has officially moved to SteemitBoard Ranking</a></td></tr><tr><td><a href="https://steemit.com/steemitboard/@steemitboard/steemitboard-witness-update-2019-01-07"><img src="https://steemitimages.com/64x128/http://i.cubeupload.com/7CiQEO.png"></a></td><td><a href="https://steemit.com/steemitboard/@steemitboard/steemitboard-witness-update-2019-01-07">SteemitBoard - Witness Update</a></td></tr></table> > 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 #29326664/Trx 7e13c5d2a7da204b45c925a9880d8aa3d9789b19 |
View Raw JSON Data
{
"trx_id": "7e13c5d2a7da204b45c925a9880d8aa3d9789b19",
"block": 29326664,
"trx_in_block": 0,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-01-10T07:07:51",
"op": [
"comment",
{
"parent_author": "cpower",
"parent_permlink": "hello-world",
"author": "steemitboard",
"permlink": "steemitboard-notify-cpower-20190110t070750000z",
"title": "",
"body": "Congratulations @cpower! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :\n\n<table><tr><td>https://steemitimages.com/60x60/http://steemitboard.com/notifications/firstpost.png</td><td>You published your First Post</td></tr>\n<tr><td>https://steemitimages.com/60x60/http://steemitboard.com/notifications/firstvoted.png</td><td>You got a First Vote</td></tr>\n</table>\n\n<sub>_[Click here to view your Board](https://steemitboard.com/@cpower)_</sub>\n<sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub>\n\n\n\n**Do not miss the last post from @steemitboard:**\n<table><tr><td><a href=\"https://steemit.com/steem/@steemitboard/steemwhales-has-officially-moved-to-steemitboard-ranking\"><img src=\"https://steemitimages.com/64x128/https://cdn.steemitimages.com/DQmfRVpHQhLDhnjDtqck8GPv9NPvNKPfMsDaAFDE1D9Er2Z/header_ranking.png\"></a></td><td><a href=\"https://steemit.com/steem/@steemitboard/steemwhales-has-officially-moved-to-steemitboard-ranking\">SteemWhales has officially moved to SteemitBoard Ranking</a></td></tr><tr><td><a href=\"https://steemit.com/steemitboard/@steemitboard/steemitboard-witness-update-2019-01-07\"><img src=\"https://steemitimages.com/64x128/http://i.cubeupload.com/7CiQEO.png\"></a></td><td><a href=\"https://steemit.com/steemitboard/@steemitboard/steemitboard-witness-update-2019-01-07\">SteemitBoard - Witness Update</a></td></tr></table>\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\"]}"
}
]
}steemitbuzzupvoted (1.00%) @cpower / hello-world2019/01/10 06:22:51
steemitbuzzupvoted (1.00%) @cpower / hello-world
2019/01/10 06:22:51
| voter | steemitbuzz |
| author | cpower |
| permlink | hello-world |
| weight | 100 (1.00%) |
| Transaction Info | Block #29325765/Trx 2b40b79aa99355f16439dfdc1e2fddca8a539be8 |
View Raw JSON Data
{
"trx_id": "2b40b79aa99355f16439dfdc1e2fddca8a539be8",
"block": 29325765,
"trx_in_block": 27,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-01-10T06:22:51",
"op": [
"vote",
{
"voter": "steemitbuzz",
"author": "cpower",
"permlink": "hello-world",
"weight": 100
}
]
}partikoreplied to @cpower / re-hello-world-20190110t0622472019/01/10 06:22:51
partikoreplied to @cpower / re-hello-world-20190110t062247
2019/01/10 06:22:51
| parent author | cpower |
| parent permlink | hello-world |
| author | partiko |
| permlink | re-hello-world-20190110t062247 |
| title | |
| body | Welcome to Steem cpower! Partiko is officially the fastest and most popular mobile app for Steem. Unlike other Steem apps, we take 0% cut of your earnings! You can also be rewarded with Partiko Points while using Partiko and exchange Partiko Points for upvotes! Partiko for Android can be downloaded [here on Google Play](http://bit.ly/2SRFIta) and the iOS version is available [here on the App Store](https://apple.co/2PcXkSd). If you have more questions, feel free to join our [Discord channel](https://discord.gg/N7Et97G) and ask [@crypto.talk](https://steemit.com/@crypto.talk), we're always here to help! Thank you so much for your interest! |
| json metadata | |
| Transaction Info | Block #29325765/Trx 3717ed15d620a71d71a66a924aadd8221597ca35 |
View Raw JSON Data
{
"trx_id": "3717ed15d620a71d71a66a924aadd8221597ca35",
"block": 29325765,
"trx_in_block": 1,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-01-10T06:22:51",
"op": [
"comment",
{
"parent_author": "cpower",
"parent_permlink": "hello-world",
"author": "partiko",
"permlink": "re-hello-world-20190110t062247",
"title": "",
"body": "Welcome to Steem cpower! Partiko is officially the fastest and most popular mobile app for Steem. Unlike other Steem apps, we take 0% cut of your earnings! You can also be rewarded with Partiko Points while using Partiko and exchange Partiko Points for upvotes!\n\nPartiko for Android can be downloaded [here on Google Play](http://bit.ly/2SRFIta) and the iOS version is available [here on the App Store](https://apple.co/2PcXkSd).\n\nIf you have more questions, feel free to join our [Discord channel](https://discord.gg/N7Et97G) and ask [@crypto.talk](https://steemit.com/@crypto.talk), we're always here to help!\n\nThank you so much for your interest!",
"json_metadata": ""
}
]
}partikoupvoted (0.80%) @cpower / hello-world2019/01/10 06:22:45
partikoupvoted (0.80%) @cpower / hello-world
2019/01/10 06:22:45
| voter | partiko |
| author | cpower |
| permlink | hello-world |
| weight | 80 (0.80%) |
| Transaction Info | Block #29325763/Trx 16f979a43b7ecf278166cd37a3b84e18360d9501 |
View Raw JSON Data
{
"trx_id": "16f979a43b7ecf278166cd37a3b84e18360d9501",
"block": 29325763,
"trx_in_block": 0,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-01-10T06:22:45",
"op": [
"vote",
{
"voter": "partiko",
"author": "cpower",
"permlink": "hello-world",
"weight": 80
}
]
}giancarloc7upvoted (100.00%) @cpower / hello-world2019/01/10 06:12:30
giancarloc7upvoted (100.00%) @cpower / hello-world
2019/01/10 06:12:30
| voter | giancarloc7 |
| author | cpower |
| permlink | hello-world |
| weight | 10000 (100.00%) |
| Transaction Info | Block #29325559/Trx 76e6268af68e001afbf61f79d97bfcc525d45ef9 |
View Raw JSON Data
{
"trx_id": "76e6268af68e001afbf61f79d97bfcc525d45ef9",
"block": 29325559,
"trx_in_block": 5,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-01-10T06:12:30",
"op": [
"vote",
{
"voter": "giancarloc7",
"author": "cpower",
"permlink": "hello-world",
"weight": 10000
}
]
}zeroexupvoted (100.00%) @cpower / hello-world2019/01/10 05:58:30
zeroexupvoted (100.00%) @cpower / hello-world
2019/01/10 05:58:30
| voter | zeroex |
| author | cpower |
| permlink | hello-world |
| weight | 10000 (100.00%) |
| Transaction Info | Block #29325279/Trx 53b8827a304812dd3d8318271d016d38390c01f5 |
View Raw JSON Data
{
"trx_id": "53b8827a304812dd3d8318271d016d38390c01f5",
"block": 29325279,
"trx_in_block": 6,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-01-10T05:58:30",
"op": [
"vote",
{
"voter": "zeroex",
"author": "cpower",
"permlink": "hello-world",
"weight": 10000
}
]
}fyrstikkenupvoted (1.00%) @cpower / hello-world2019/01/10 05:34:48
fyrstikkenupvoted (1.00%) @cpower / hello-world
2019/01/10 05:34:48
| voter | fyrstikken |
| author | cpower |
| permlink | hello-world |
| weight | 100 (1.00%) |
| Transaction Info | Block #29324805/Trx 76eebbcaec90b641fc5fc9f3d4c2fed949385f65 |
View Raw JSON Data
{
"trx_id": "76eebbcaec90b641fc5fc9f3d4c2fed949385f65",
"block": 29324805,
"trx_in_block": 0,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-01-10T05:34:48",
"op": [
"vote",
{
"voter": "fyrstikken",
"author": "cpower",
"permlink": "hello-world",
"weight": 100
}
]
}cpowerpublished a new post: hello-world2019/01/10 05:23:57
cpowerpublished a new post: hello-world
2019/01/10 05:23:57
| parent author | |
| parent permlink | introduceyourself |
| author | cpower |
| permlink | hello-world |
| title | Hello, world! |
| body | @@ -436,17 +436,15 @@ t I' -ve coined +m using to |
| json metadata | {"tags":["introduceyourself"],"links":["https://eosblocksmith.io","https://acmcentral.org","https://acm.org"],"app":"steemit/0.1","format":"html"} |
| Transaction Info | Block #29324588/Trx 32ebbc0473522e906e2acae53bfcc2c619f72522 |
View Raw JSON Data
{
"trx_id": "32ebbc0473522e906e2acae53bfcc2c619f72522",
"block": 29324588,
"trx_in_block": 19,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-01-10T05:23:57",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "introduceyourself",
"author": "cpower",
"permlink": "hello-world",
"title": "Hello, world!",
"body": "@@ -436,17 +436,15 @@\n t I'\n-ve coined\n+m using\n to \n",
"json_metadata": "{\"tags\":[\"introduceyourself\"],\"links\":[\"https://eosblocksmith.io\",\"https://acmcentral.org\",\"https://acm.org\"],\"app\":\"steemit/0.1\",\"format\":\"html\"}"
}
]
}ralph-rennoldsonupvoted (0.25%) @cpower / hello-world2019/01/10 05:22:36
ralph-rennoldsonupvoted (0.25%) @cpower / hello-world
2019/01/10 05:22:36
| voter | ralph-rennoldson |
| author | cpower |
| permlink | hello-world |
| weight | 25 (0.25%) |
| Transaction Info | Block #29324561/Trx 87340e17a1658d83a87b4f7a6b105b6273ee8f60 |
View Raw JSON Data
{
"trx_id": "87340e17a1658d83a87b4f7a6b105b6273ee8f60",
"block": 29324561,
"trx_in_block": 17,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-01-10T05:22:36",
"op": [
"vote",
{
"voter": "ralph-rennoldson",
"author": "cpower",
"permlink": "hello-world",
"weight": 25
}
]
}hozn4ukhlytriwcupvoted (20.00%) @cpower / hello-world2019/01/10 05:21:57
hozn4ukhlytriwcupvoted (20.00%) @cpower / hello-world
2019/01/10 05:21:57
| voter | hozn4ukhlytriwc |
| author | cpower |
| permlink | hello-world |
| weight | 2000 (20.00%) |
| Transaction Info | Block #29324548/Trx eea65ee48eaa703b470cdd0c5d938b7bcee10761 |
View Raw JSON Data
{
"trx_id": "eea65ee48eaa703b470cdd0c5d938b7bcee10761",
"block": 29324548,
"trx_in_block": 2,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-01-10T05:21:57",
"op": [
"vote",
{
"voter": "hozn4ukhlytriwc",
"author": "cpower",
"permlink": "hello-world",
"weight": 2000
}
]
}cpowerpublished a new post: hello-world2019/01/10 05:19:54
cpowerpublished a new post: hello-world
2019/01/10 05:19:54
| parent author | |
| parent permlink | introduceyourself |
| author | cpower |
| permlink | hello-world |
| title | Hello, world! |
| body | @@ -854,16 +854,32 @@ mith.io%22 + target=%22_blank%22 %3EEOS Blo @@ -1024,16 +1024,32 @@ ral.org%22 + target=%22_blank%22 %3EEdmond @@ -1141,16 +1141,32 @@ acm.org%22 + target=%22_blank%22 %3EAssocia |
| json metadata | {"tags":["introduceyourself"],"links":["https://eosblocksmith.io","https://acmcentral.org","https://acm.org"],"app":"steemit/0.1","format":"html"} |
| Transaction Info | Block #29324507/Trx 911c21a65ceaf0a6086181165763c9339188135c |
View Raw JSON Data
{
"trx_id": "911c21a65ceaf0a6086181165763c9339188135c",
"block": 29324507,
"trx_in_block": 40,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-01-10T05:19:54",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "introduceyourself",
"author": "cpower",
"permlink": "hello-world",
"title": "Hello, world!",
"body": "@@ -854,16 +854,32 @@\n mith.io%22\n+ target=%22_blank%22\n %3EEOS Blo\n@@ -1024,16 +1024,32 @@\n ral.org%22\n+ target=%22_blank%22\n %3EEdmond \n@@ -1141,16 +1141,32 @@\n acm.org%22\n+ target=%22_blank%22\n %3EAssocia\n",
"json_metadata": "{\"tags\":[\"introduceyourself\"],\"links\":[\"https://eosblocksmith.io\",\"https://acmcentral.org\",\"https://acm.org\"],\"app\":\"steemit/0.1\",\"format\":\"html\"}"
}
]
}esteemappreplied to @cpower / re-2019110t61954514z2019/01/10 05:19:54
esteemappreplied to @cpower / re-2019110t61954514z
2019/01/10 05:19:54
| parent author | cpower |
| parent permlink | hello-world |
| author | esteemapp |
| permlink | re-2019110t61954514z |
| title | |
| body | Welcome cpower! <br>**eSteem** is the application that improves your experience here. We have Mobile application for [Android](https://play.google.com/store/apps/details?id=com.netsolutions.esteem) and [iOS](https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=1141397898&mt=8) users. We also have developed [Surfer Desktop](https://github.com/esteemapp/esteem-surfer/releases) application that helps you to gain new followers and stay connected with your friends, unique features - notifications, bookmarks, favorites, drafts, and more. <br> We reward our users with encouragement upvotes as well as monthly giveaways rewarding Spotlight top users and active Discord users. <br>Learn more: https://esteem.app <br>Join our discord: https://discord.gg/8eHupPq |
| json metadata | {"tags":["esteem"],"app":"esteem/1.0-welcome","format":"markdown+html","community":"esteem.app"} |
| Transaction Info | Block #29324507/Trx 4d40165d1c7632d5ba60621562a141e6790aa5f6 |
View Raw JSON Data
{
"trx_id": "4d40165d1c7632d5ba60621562a141e6790aa5f6",
"block": 29324507,
"trx_in_block": 34,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-01-10T05:19:54",
"op": [
"comment",
{
"parent_author": "cpower",
"parent_permlink": "hello-world",
"author": "esteemapp",
"permlink": "re-2019110t61954514z",
"title": "",
"body": "Welcome cpower! <br>**eSteem** is the application that improves your experience here. We have Mobile application for [Android](https://play.google.com/store/apps/details?id=com.netsolutions.esteem) and [iOS](https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=1141397898&mt=8) users. We also have developed [Surfer Desktop](https://github.com/esteemapp/esteem-surfer/releases) application that helps you to gain new followers and stay connected with your friends, unique features - notifications, bookmarks, favorites, drafts, and more. <br> We reward our users with encouragement upvotes as well as monthly giveaways rewarding Spotlight top users and active Discord users. <br>Learn more: https://esteem.app <br>Join our discord: https://discord.gg/8eHupPq",
"json_metadata": "{\"tags\":[\"esteem\"],\"app\":\"esteem/1.0-welcome\",\"format\":\"markdown+html\",\"community\":\"esteem.app\"}"
}
]
}cpowerpublished a new post: hello-world2019/01/10 05:18:45
cpowerpublished a new post: hello-world
2019/01/10 05:18:45
| parent author | |
| parent permlink | introduceyourself |
| author | cpower |
| permlink | hello-world |
| title | Hello, world! |
| body | <html> <p>My name is Caleb, and I'm quite excited to post for the first time on this platform. I'm currently finishing up several bachelor's degrees in computer science, software engineering, digital forensics, and mathematics (the last of which is a minor). Eventually I hope to earn a Master's degree and a PhD focusing on artificial intelligence and malware analysis.</p> <p>My background is in "forced interoperability," a term that I've coined to describe the development of software that forces two other pieces of software to work together that wouldn't normally perform as such. For the most part, I've utilized forced interoperability during my time as a software engineer in the healthcare space, but I've moved on from healthcare to smart contract development and node maintenance on EOS.IO blockchain instances for <a href="https://eosblocksmith.io">EOS BlockSmith</a>, an EOS Mainnet block producer candidate.</p> <p>In addition, I serve as the founder and chair of the <a href="https://acmcentral.org">Edmond ACM Chapter</a> (ACM Central), the only professional chapter of the <a href="https://acm.org">Association for Computing Machinery</a> in Oklahoma. Computer programmers are in high demand, and so it was always astounding to me that my peers in college had such a difficult time launching their careers. The issue was, of course, that often times computer scientists lack the social skill necessary to make the connections required to enter the work force. Our organization works to help professionals (and aspiring professionals, i.e. exiting students) make network connections by working together on bleeding-edge technologies.</p> <p>Though the course of my academic and occupational career I have found that the saving of code snippets, project workflows, and various programmatic nuances has been very helpful in both cutting down the time it takes to develop new pieces of software and increasing the quality of the produced work. I am certainly not the best writer in the world, but I hope that in addition to providing a place for me to put my thoughts on various topics in the computing disciplines, this blog serves to assist others who are conducting research to complete their work in a more timely fashion.</p> <p>Note that unless otherwise specified, the examples in this blog may be used as the reader sees fit. However, in the spirit of academia, I would encourage the reader to learn from the content herein so as to apply it dynamically instead of simply utilizing the "copy-paste technique." Furthermore, I must note that all opinions in this blog represent my own opinions, and are not necessarily the opinions of EOS BlockSmith, the Association for Computing Machinery, or any other organization that I work with.</p> </html> |
| json metadata | {"tags":["introduceyourself"],"links":["https://eosblocksmith.io","https://acmcentral.org","https://acm.org"],"app":"steemit/0.1","format":"html"} |
| Transaction Info | Block #29324484/Trx add21a6c9fb81474821bdc5b8273d7aac9ba2b3c |
View Raw JSON Data
{
"trx_id": "add21a6c9fb81474821bdc5b8273d7aac9ba2b3c",
"block": 29324484,
"trx_in_block": 1,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-01-10T05:18:45",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "introduceyourself",
"author": "cpower",
"permlink": "hello-world",
"title": "Hello, world!",
"body": "<html>\n<p>My name is Caleb, and I'm quite excited to post for the first time on this platform. I'm currently finishing up several bachelor's degrees in computer science, software engineering, digital forensics, and mathematics (the last of which is a minor). Eventually I hope to earn a Master's degree and a PhD focusing on artificial intelligence and malware analysis.</p>\n<p>My background is in \"forced interoperability,\" a term that I've coined to describe the development of software that forces two other pieces of software to work together that wouldn't normally perform as such. For the most part, I've utilized forced interoperability during my time as a software engineer in the healthcare space, but I've moved on from healthcare to smart contract development and node maintenance on EOS.IO blockchain instances for <a href=\"https://eosblocksmith.io\">EOS BlockSmith</a>, an EOS Mainnet block producer candidate.</p>\n<p>In addition, I serve as the founder and chair of the <a href=\"https://acmcentral.org\">Edmond ACM Chapter</a> (ACM Central), the only professional chapter of the <a href=\"https://acm.org\">Association for Computing Machinery</a> in Oklahoma. Computer programmers are in high demand, and so it was always astounding to me that my peers in college had such a difficult time launching their careers. The issue was, of course, that often times computer scientists lack the social skill necessary to make the connections required to enter the work force. Our organization works to help professionals (and aspiring professionals, i.e. exiting students) make network connections by working together on bleeding-edge technologies.</p>\n<p>Though the course of my academic and occupational career I have found that the saving of code snippets, project workflows, and various programmatic nuances has been very helpful in both cutting down the time it takes to develop new pieces of software and increasing the quality of the produced work. I am certainly not the best writer in the world, but I hope that in addition to providing a place for me to put my thoughts on various topics in the computing disciplines, this blog serves to assist others who are conducting research to complete their work in a more timely fashion.</p>\n<p>Note that unless otherwise specified, the examples in this blog may be used as the reader sees fit. However, in the spirit of academia, I would encourage the reader to learn from the content herein so as to apply it dynamically instead of simply utilizing the \"copy-paste technique.\" Furthermore, I must note that all opinions in this blog represent my own opinions, and are not necessarily the opinions of EOS BlockSmith, the Association for Computing Machinery, or any other organization that I work with.</p>\n</html>",
"json_metadata": "{\"tags\":[\"introduceyourself\"],\"links\":[\"https://eosblocksmith.io\",\"https://acmcentral.org\",\"https://acm.org\"],\"app\":\"steemit/0.1\",\"format\":\"html\"}"
}
]
}cpowerupdated their account properties2019/01/09 07:18:39
cpowerupdated their account properties
2019/01/09 07:18:39
| account | cpower |
| memo key | STM6qc1w9wsYk3YeiRXb7ZKzW2Lq9rYrNrEXf1caLm8M9YiEqLHAh |
| json metadata | {"profile":{"profile_image":"https://cdn.steemitimages.com/DQmUENzc6G2PtUJZPSYnTUjFQVQvLK1EBpvnpvnS2voGZz6/me_square.png","name":"Caleb L. Power","location":"Edmond, OK","website":"https://www.calebpower.com"}} |
| Transaction Info | Block #29298095/Trx 9b4d04c3a1d74000a61f632720bd4db48f40c173 |
View Raw JSON Data
{
"trx_id": "9b4d04c3a1d74000a61f632720bd4db48f40c173",
"block": 29298095,
"trx_in_block": 16,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-01-09T07:18:39",
"op": [
"account_update",
{
"account": "cpower",
"memo_key": "STM6qc1w9wsYk3YeiRXb7ZKzW2Lq9rYrNrEXf1caLm8M9YiEqLHAh",
"json_metadata": "{\"profile\":{\"profile_image\":\"https://cdn.steemitimages.com/DQmUENzc6G2PtUJZPSYnTUjFQVQvLK1EBpvnpvnS2voGZz6/me_square.png\",\"name\":\"Caleb L. Power\",\"location\":\"Edmond, OK\",\"website\":\"https://www.calebpower.com\"}}"
}
]
}cpowerupdated their account properties2019/01/09 07:00:33
cpowerupdated their account properties
2019/01/09 07:00:33
| account | cpower |
| memo key | STM6qc1w9wsYk3YeiRXb7ZKzW2Lq9rYrNrEXf1caLm8M9YiEqLHAh |
| json metadata | {"profile":{"profile_image":"https://cdn.steemitimages.com/DQmPtGopG2aBXHXD1vFFNuqxgx2u8pBgBL5ziaZL6hxT1PP/me.png","name":"Caleb L. Power","location":"Edmond, OK","website":"https://www.calebpower.com"}} |
| Transaction Info | Block #29297733/Trx a715f4e207abc0387928eb7d08b229185955eda9 |
View Raw JSON Data
{
"trx_id": "a715f4e207abc0387928eb7d08b229185955eda9",
"block": 29297733,
"trx_in_block": 11,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-01-09T07:00:33",
"op": [
"account_update",
{
"account": "cpower",
"memo_key": "STM6qc1w9wsYk3YeiRXb7ZKzW2Lq9rYrNrEXf1caLm8M9YiEqLHAh",
"json_metadata": "{\"profile\":{\"profile_image\":\"https://cdn.steemitimages.com/DQmPtGopG2aBXHXD1vFFNuqxgx2u8pBgBL5ziaZL6hxT1PP/me.png\",\"name\":\"Caleb L. Power\",\"location\":\"Edmond, OK\",\"website\":\"https://www.calebpower.com\"}}"
}
]
}cpowerfollowed @eosblocksmith2019/01/08 21:58:24
cpowerfollowed @eosblocksmith
2019/01/08 21:58:24
| required auths | [] |
| required posting auths | ["cpower"] |
| id | follow |
| json | ["follow",{"follower":"cpower","following":"eosblocksmith","what":["blog"]}] |
| Transaction Info | Block #29286897/Trx 337c7a656c87f029f3bd3a32f154fab01f835110 |
View Raw JSON Data
{
"trx_id": "337c7a656c87f029f3bd3a32f154fab01f835110",
"block": 29286897,
"trx_in_block": 24,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-01-08T21:58:24",
"op": [
"custom_json",
{
"required_auths": [],
"required_posting_auths": [
"cpower"
],
"id": "follow",
"json": "[\"follow\",{\"follower\":\"cpower\",\"following\":\"eosblocksmith\",\"what\":[\"blog\"]}]"
}
]
}2019/01/08 21:56:18
2019/01/08 21:56:18
| delegator | steem |
| delegatee | cpower |
| vesting shares | 30300.000000 VESTS |
| Transaction Info | Block #29286855/Trx ace67baac388436b504b82a57cbe128bd3d80f88 |
View Raw JSON Data
{
"trx_id": "ace67baac388436b504b82a57cbe128bd3d80f88",
"block": 29286855,
"trx_in_block": 4,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-01-08T21:56:18",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "cpower",
"vesting_shares": "30300.000000 VESTS"
}
]
}2019/01/08 21:56:18
2019/01/08 21:56:18
| creator | steem |
| new account name | cpower |
| owner | {"weight_threshold":1,"account_auths":[],"key_auths":[["STM6DHKDfFWHUn1Kk8aX83KAV47HDdaTcKyepmh1oGwLxXiBRjKzD",1]]} |
| active | {"weight_threshold":1,"account_auths":[],"key_auths":[["STM5akFJRqDS1F6p66srpiTwhFKKFQoLHdyzLVT4o6ohLegyZzTfG",1]]} |
| posting | {"weight_threshold":1,"account_auths":[],"key_auths":[["STM5kiDpJbfUYbWw8RTcYtAUBiEwmtcnmQeL8KU4f8e9S6uXLtwuE",1]]} |
| memo key | STM6qc1w9wsYk3YeiRXb7ZKzW2Lq9rYrNrEXf1caLm8M9YiEqLHAh |
| json metadata | {} |
| extensions | [] |
| Transaction Info | Block #29286855/Trx ace67baac388436b504b82a57cbe128bd3d80f88 |
View Raw JSON Data
{
"trx_id": "ace67baac388436b504b82a57cbe128bd3d80f88",
"block": 29286855,
"trx_in_block": 4,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-01-08T21:56:18",
"op": [
"create_claimed_account",
{
"creator": "steem",
"new_account_name": "cpower",
"owner": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM6DHKDfFWHUn1Kk8aX83KAV47HDdaTcKyepmh1oGwLxXiBRjKzD",
1
]
]
},
"active": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM5akFJRqDS1F6p66srpiTwhFKKFQoLHdyzLVT4o6ohLegyZzTfG",
1
]
]
},
"posting": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM5kiDpJbfUYbWw8RTcYtAUBiEwmtcnmQeL8KU4f8e9S6uXLtwuE",
1
]
]
},
"memo_key": "STM6qc1w9wsYk3YeiRXb7ZKzW2Lq9rYrNrEXf1caLm8M9YiEqLHAh",
"json_metadata": "{}",
"extensions": []
}
]
}Manabar
Voting Power100.00%
Downvote Power100.00%
Resource Credits100.00%
Reputation Progress70.99%
{
"voting_manabar": {
"current_mana": 1953311140,
"last_update_time": 1588924506
},
"downvote_manabar": {
"current_mana": 488327785,
"last_update_time": 1588924506
},
"rc_account": {
"account": "cpower",
"rc_manabar": {
"current_mana": "7884802263",
"last_update_time": 1717447281
},
"max_rc_creation_adjustment": {
"amount": "6027432990",
"precision": 6,
"nai": "@@000000037"
},
"max_rc": "7980744130"
}
}Account Metadata
| POSTING JSON METADATA | |
| profile | {"profile_image":"https://cdn.steemitimages.com/DQmPfaAUak6Zb5C7gs1mDApJwho1zxuTttcb1dKs5jGixgE/2024-06-03_16-41.png","name":"LordInateur","version":2} |
| JSON METADATA | |
| profile | {"profile_image":"https://cdn.steemitimages.com/DQmUENzc6G2PtUJZPSYnTUjFQVQvLK1EBpvnpvnS2voGZz6/me_square.png","name":"Caleb L. Power","location":"Edmond, OK","website":"https://www.calebpower.com"} |
{
"posting_json_metadata": {
"profile": {
"profile_image": "https://cdn.steemitimages.com/DQmPfaAUak6Zb5C7gs1mDApJwho1zxuTttcb1dKs5jGixgE/2024-06-03_16-41.png",
"name": "LordInateur",
"version": 2
}
},
"json_metadata": {
"profile": {
"profile_image": "https://cdn.steemitimages.com/DQmUENzc6G2PtUJZPSYnTUjFQVQvLK1EBpvnpvnS2voGZz6/me_square.png",
"name": "Caleb L. Power",
"location": "Edmond, OK",
"website": "https://www.calebpower.com"
}
}
}Auth Keys
Owner
Single Signature
Public Keys
STM6DHKDfFWHUn1Kk8aX83KAV47HDdaTcKyepmh1oGwLxXiBRjKzD1/1
Active
Single Signature
Public Keys
STM5akFJRqDS1F6p66srpiTwhFKKFQoLHdyzLVT4o6ohLegyZzTfG1/1
Posting
Single Signature
Public Keys
STM5kiDpJbfUYbWw8RTcYtAUBiEwmtcnmQeL8KU4f8e9S6uXLtwuE1/1
Memo
STM6qc1w9wsYk3YeiRXb7ZKzW2Lq9rYrNrEXf1caLm8M9YiEqLHAh
{
"owner": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM6DHKDfFWHUn1Kk8aX83KAV47HDdaTcKyepmh1oGwLxXiBRjKzD",
1
]
]
},
"active": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM5akFJRqDS1F6p66srpiTwhFKKFQoLHdyzLVT4o6ohLegyZzTfG",
1
]
]
},
"posting": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM5kiDpJbfUYbWw8RTcYtAUBiEwmtcnmQeL8KU4f8e9S6uXLtwuE",
1
]
]
},
"memo": "STM6qc1w9wsYk3YeiRXb7ZKzW2Lq9rYrNrEXf1caLm8M9YiEqLHAh"
}Witness Votes
0 / 30
No active witness votes.
[]