Skip to content

Instantly share code, notes, and snippets.

@cc32d9
cc32d9 / Makefile
Created October 7, 2018 21:20
Makefile for eosio CDT
CONTRACT=mycontract
all: $(CONTRACT).wasm $(CONTRACT).abi
%.wasm: %.cpp
eosio-cpp -o $@ $<
%.abi: %.cpp
eosio-abigen --output=$@ $<
@cc32d9
cc32d9 / nodeos_full_node_setup.txt
Last active August 2, 2023 13:21
nodeos installation with ZFS
apt-get update && apt-get install -y aptitude git lxc-utils zfsutils-linux netfilter-persistent sysstat
# find the partition ID that is linked to the storage serial number.
# This will prevent from losing the partition if disk mapping changes
ls -l /dev/disk/by-id/ | grep sda6
zpool create -f zdata /dev/disk/by-id/wwn-0x600507604092b628236df4851535cef5-part6
## Fixate internal IP address of the container
systemctl stop lxc-net
sed -i -e 's,^.*LXC_DHCP_CONFILE,LXC_DHCP_CONFILE,' /etc/default/lxc-net
mcleos multisig propose cc32dninewp1 '[{"actor": "atticlabeosb", "permission": "active"},{"actor": "dublinsocial", "permission": "active"},{"actor": "eosasia11111", "permission": "active"},{"actor": "eosauthority", "permission": "active"},{"actor": "eoscafeblock", "permission": "active"},{"actor": "eosgenblockp", "permission": "active"},{"actor": "eosmetaliobp", "permission": "active"},{"actor": "eosnationdon", "permission": "active"},{"actor": "eosnewyorkio", "permission": "active"},{"actor": "eosriobrazil", "permission": "active"},{"actor": "eostribefund", "permission": "active"},{"actor": "goodblockio1", "permission": "active"},{"actor": "lynxlynxlynx", "permission": "active"},{"actor": "teamgreymass", "permission": "active"},{"actor": "worblieosbp1", "permission": "active"}]' '[{"actor": "cc32dninewp1", "permission": "owner"}]' eosio updateauth '{"account": "cc32dninewp1","permission": "owner","parent": "","auth": {"threshold": 1,"keys": [],"accounts": [{"permission": {"actor": "cc32dninexxx","permission"
@cc32d9
cc32d9 / Fuzzys_ideas_on_new_BP_pay_model.md
Last active December 12, 2021 05:25
Fuzzy's ideas on a new BP pay model

@SirFuzzalot presented an idea for a new PB pay model for an EOSIO network in https://t.me/EOSPros

Fuzzy, [12.05.19 04:56]
Here is my thought on fixing dpos away from pageantry though. 
Let me find the discussion (should prob post it on whaleshares first but oh well)

Fuzzy, [12.05.19 05:03]
Ok ill just type it here since i am no longer in the group i posted it in initially.
@cc32d9
cc32d9 / Repurposing_of_Telos_WP25.md
Last active August 23, 2019 09:07
Repurposing of Telos WP#25

Repurposing of Telos WP#25

The Telos work proposal #25 was opened with the target of implementing portable snapshots for Chronicle, so that Chronicle data can be easily moved between servers of different OS versions.

As of August 22nd, I added a new feature to Chronicle that allows starting it from a nodeos portable snapshot. So, there's no need to re-scan the whole history in order to get up to date Chronicle data. Now it's enough to point it to a node that just started from a snapshot. This eliminates the need for portable snapshots in Chronicle, so the initial purpose of the WP is obsoleted.

The work proposal asks for 50000 TLOS, which is approximately USD 2500 in current prices.

I propose to re-purpose the WP#25 and set the following deliverables:

Keybase proof

I hereby claim:

  • I am cc32d9 on github.
  • I am cc32d9 (https://keybase.io/cc32d9) on keybase.
  • I have a public key ASB62UjQutf9851px3PcEu9pC1N2YcvkP3UvOc9ImK7RJAo

To claim this, I am signing this object:

@cc32d9
cc32d9 / eosio_newaccount_example.js
Created March 14, 2020 09:54
Example for building a newaccount transaction in eosjs
// here MYACC is the account sending the transaction
// NEWACC is the name of account being created
await (async () => {
try {
console.info('Creating account');
const result = await api.transact(
{
actions:
[
@cc32d9
cc32d9 / how_nodeos_writes_snapshots.md
Last active December 28, 2021 23:21
How nodeos writes snapshots

How EOSIO nodeos writes snapshots

EOSIO commit c6a7ec0dd816f98a6840f59dca9fed04efd9f7a5 (v2.0.6).

plugins/producer_plugin/producer_plugin.cpp line 1156: producer_plugin::create_snapshot is called by HTTP API call.

plugins/producer_plugin/producer_plugin.cpp line 1187: opens the output stream,

@cc32d9
cc32d9 / EOSIO_public_node_DOS_protectrion.sh
Last active October 4, 2024 15:02
EOSIO public node DOS protectrion
apt install iptables-persistent
cat >/usr/share/netfilter-persistent/plugins.d/ddos <<'EOT'
#!/bin/sh
case $1 in
start)
iptables -N eosio-api
iptables -N eosio-apisyn
iptables -N eosio-p2p
@cc32d9
cc32d9 / Aarin_Hagerty_on_history_of_DPOS_governance.md
Created October 31, 2020 09:22
Aarin Hagerty on history of DPOS governance

https://t.me/EOSproject/1561416

Aarin Hagerty, [30.10.20 14:48] [In reply to Luka Perrrcic] I would like to provide some historical context regarding this discussion of DPoS voting mechanisms.

BitShares ended up with an approval voting system (which one can think of as 1 token infinity votes) for voting for BP (block producer) candidates which then ranked them by approval vote and selected the top N as the set of active block producers. I don't remember the exact series of events and reasoning that led to that decision, but I am sure most of it can be found on the old BitSharesTalk forum (e.g. https://bitsharestalk.org/index.php?topic=5205.0).

There are some advantages of an approval voting system over cumulative voting (https://en.wikipedia.org/wiki/Cumulative_voting), which one can basically think of as 1 token 1 divisible vote, particularly in the case of single winner elections. For example it passes the favorite betrayal criterion (https://electowiki.org/wiki/Favorite_betrayal_criterion) whereas cu