Task 4
Install Dependencies
sudo apt update -y && sudo apt upgrade -y
sudo apt install -y make bzip2 automake libbz2-dev libssl-dev doxygen graphviz libgmp3-dev \
autotools-dev libicu-dev python2.7 python2.7-dev python3 python3-dev \
autoconf libtool curl zlib1g-dev sudo ruby libusb-1.0-0-dev \
libcurl4-gnutls-dev pkg-config patch llvm-7-dev clang-7 vim-common jq libncurses5 gitCreate Contract CRUD
Buat folder
mkdir -p $HOME/inrcrudCreate
sudo tee $HOME/inrcrud/inrcrud.cpp >/dev/null <<EOF
#include <inery/inery.hpp>
#include <inery/print.hpp>
#include <string>
using namespace inery;
using std::string;
class [[inery::contract]] inrcrud : public inery::contract {
public:
using inery::contract::contract;
[[inery::action]] void create( uint64_t id, name user, string data ) {
records recordstable( _self, id );
auto existing = recordstable.find( id );
check( existing == recordstable.end(), "record with that ID already exists" );
check( data.size() <= 256, "data has more than 256 bytes" );
recordstable.emplace( _self, [&]( auto& s ) {
s.id = id;
s.owner = user;
s.data = data;
});
print( "Hello, ", name{user} );
print( "Created with data: ", data );
}
[[inery::action]] void read( uint64_t id ) {
records recordstable( _self, id );
auto existing = recordstable.find( id );
check( existing != recordstable.end(), "record with that ID does not exist" );
const auto& st = *existing;
print("Data: ", st.data);
}
[[inery::action]] void update( uint64_t id, string data ) {
records recordstable( _self, id );
auto st = recordstable.find( id );
check( st != recordstable.end(), "record with that ID does not exist" );
recordstable.modify( st, get_self(), [&]( auto& s ) {
s.data = data;
});
print("Data: ", data);
}
[[inery::action]] void destroy( uint64_t id ) {
records recordstable( _self, id );
auto existing = recordstable.find( id );
check( existing != recordstable.end(), "record with that ID does not exist" );
const auto& st = *existing;
recordstable.erase( st );
print("Record Destroyed: ", id);
}
private:
struct [[inery::table]] record {
uint64_t id;
name owner;
string data;
uint64_t primary_key()const { return id; }
};
typedef inery::multi_index<"records"_n, record> records;
};
EOF
Compile
Set Contract
Jika muncul seperti ini

Edit file config.ini
Temukan max-transaction-time (yang paling bawah) ganti dari 15000 ke 30000

SAVE, CTRL+X Y Enter
Contract siap ,lanjut membuat JSON RPC
Install Nodejs
Clone Repo
Install
Jika muncul seperti itu ,update menggunakan

Copy dan Edit file .env
Isi dengan data mu sesuai di dashboard. http://you_node_url:8888 ganti dengan http://IP.VPSMU:8888
Save
Jalankan
OKAY!

Jika ada error seperti ini;
cause: Error: connect ECONNREFUSED IP.VPS:8888
Cara fix nya open port 8888
Last updated