EOS-DEVELOPERS LOG STARDATE 20176.30steemCreated with Sketch.

in nuelzon •  7 years ago 

Ready for Steemit to be easier to understand? View all the major Steem changes from release in 2016 to through 19.0…
$1,056.37
550 154
Janet Yellen Just Said The Most Ridiculous Thing We've Heard All Year!
3 hours ago by dollarvigilante 72 in yellen

Of all people, the last person you should ever ask about what is going to happen in the economy is a central banker or…
$940.93
468 126
Announcing Steemit's First OFFICIAL Crowdsourced Marketing Project!
2 days ago by steemitblog 69 in steemit

Today we are happy to announce the first crowdsourced marketing project Steemit Inc. will be officially supporting…
$2,077.71
198 72
eSteem Photo effects, filters
10 hours ago by good-karma 73 in esteem

In this post, I am going to share some tricks and tips on how to apply certain effects and filters for you photos…
$944.75
550 126
•••
Being Happy Is A Choice... So Why Choose To Be Unhappy?
yesterday by jeffberwick 59 in life

Back in Anarchapulco with my unruly dogs and talking about how important it is to get control of your mind to find…
$1,209.05
699 230
The Steemit Crypto Challenge #16 - Winner Announcement
1 hour ago by timsaid 70 in steemitcryptochallenge

The 16th Steemit Crypto Challenge is over and we are happy to announce the winner: Congratulations @jfollas! You…
$780.51
266 40
Miss. Opinionated : The woes of Travel - Budget Airlines
2 days ago by sweetsssj 74 in life

Traveling. It leaves you speechless then turns you into a story teller As you well know, my sweeter…
$1,730.20
1386 553
chainBB v0.3.0 - social feed, following, and forum subscriptions
2 days ago by jesta 69 in chainbb

Today I'm proud to announce the release of chainBB v0.3, which encompasses many familiar and new social features. This…
$1,565.50
701 158
2000 Steem Prize! Develop SteemJ.com for Steemit Freelancing!
yesterday by jerrybanfield 63 in steemj

Are we ready to start making getting jobs easier with Steemit? Claim my 2000 Steem prize to make the first…
$1,120.68
899 386
Travel with me #73 : A look at the Atlantis Casino from a non gambler!
21 hours ago by sweetsssj 74 in travel

Dear Steemit Friends : As you know, I've had the opportunity to stay at the Atlantis Resort in Bahamas for…
$1,004.11
817 441
What You Need To Know In The Vacation Rental Industry 07-01-2017
14 hours ago by bookingteam.com 62 in business

Hey there everyone, welcome to the BookingTeam "What you need to know in the vacation rental industry" blog post! See…
$882.41
198 54
STEEMPARK // 스팀 여름공원이 Steemit Inc. 의 첫 공식 Crowdsourcing 프로젝트로 채택되었습니다!
yesterday by hansikhouse 66 in steempark

Click Here for English Posting . 스팀 여름공원이 첫 크라우드 소싱 마켓팅 프로젝트가 되어 Steemit Inc. 의 공식적인 지원을 받게되었습니다! Steemit…
$1,029.15
331 99
STEEM PARK IS OFFICIAL : Steemit's First Crowdsourced Marketing Project
yesterday by hitheryon 67 in steempark

STEEM Park is Official! We are absolutely thrilled to announce that our STEEM Park project received…
$952.66
389 89
Bitcoin Could Reach $25,000 Soon / EOS Scam? / Blockfolio Snooping Portfolios / Dash Roadmap / More!
2 days ago by crypt0 69 in crypto-news

👍 Thank You Very Much For Watching! ►🚀Check Out David's Site ►🚀Might Reddit Be Moving To Ethereum…
$1,241.14
919 283
Smartcoins Wallet, graphenej, Stealth, BlockPay, C-IPFS... Weekly Report
10 hours ago by kencode 69 in bitshares-munich

Is it July already? Man how time flies when you're BACK AT WORK :) In this weeks update, I have good news and bad…
$688.31
209 39
聊聊点赞机器人的点赞策略 /The Policies of Curation Bots
9 hours ago by oflyhigh 69 in cn

在前文: 聊聊机器人🤖 / Robots on STEEMIT 我们粗略的谈及了点赞机器人/Curation Bots, 这里我们来聊聊点赞机器人的策略。 策略/Policies…
$622.44
136 19
Cooperation Is Humanity's Greatest Asset!
20 hours ago by teamsteem 68 in cooperation

I've been sitting on this post for more than a week now. I thought I wouldn't publish it for some reasons. I…
$692.67
338 98
[14th Week] New Theme 'Cave', Story and Quest System!
8 hours ago by appetizergames 51 in gaming

Hey guys! We're here to show you 14th week works! Dev-works on 14th week are as follows: New Theme 'Cave'…
$561.01
181 13
Tropical Beach Camping, Foraging & Spearfishing [3 Minute Video]
11 hours ago by dispatches 53 in adventure

On a paradise island with a speargun, a machete, and a drone. I've done this beach camping trip four times now…
$581.47
179 46
Back
EOS - Developer’s Log Stardate 20176.30
yesterday
dan67 in eos

This week block.one’s blockchain c++ development team has picked up 4 new members and has been interviewing a few more. The new recruits have already begun making contributions to the code.

Removing Registered Message Schemas
With the move to WebAssembly (WASM) we have had to re-evaluate some of our earlier design decisions based on the assumption of using Wren. Because WASM is language independent, every application would have to provide different WASM for parsing the messages passed to the application. This means the ABI (application binary interface) is technically defined by the WASM parsing and not our prior builtin registered message types and formats.

Since the blockchain is unable to enforce the message schemas and every contract would have to independently parse and validate the incoming binary data, we opted to remove the blockchain defined message schemas. This gives more power to application developers.

Changing Account Name Structure
One of the bigger changes to the code this week was changing account names from 256 bit strings to 60 bit integers that convert to human-readable names via base32 encoding. This limits the account names to 12 lowercase letters and a few numbers. The average Twitter account is only 12 characters long.

This change was made primarily out of bandwidth, memory, and performance considerations. From an applications logic perspective an account name is simply a unique identifier and they are used everywhere. The old ABI would serialize these account names as length-prefixed strings and require a computationally intensive unpacking process.

By moving to a fixed-width integer representation for accounts we got performance, but the developer experience was less friendly. To resolve this we simply print the integers as base32 and this gives human-readable names.

Longer names can still be supported by registering them with a name service contract.

A typical transfer message is 75% smaller after this change, which makes a big difference when you are processing 10's of thousands of them per second.

Filtering Floating point from WASM
We updated the WASM processing to detect and reject code that uses floating point operations which can generate non-deterministic behavior.

Sandboxing WASM Runtime
We made significant progress toward injecting checkpoints into WASM to allow us to check the runtime and abort if too much time has passed. This is a critical component of running untrusted code.

New C++ Simplecoin (80,000 TPS)
In one of my prior updates I showed a proof-of-concept currency smart contract written in C and achieving 50K transactions per second. I mentioned that I thought we could clean up the syntax and today I am happy to show a new implementation of the simplecoin in C++ that gets compiled to WASM and then executed. Using a tight loop of generating and pushing transactions to the blockchain we achieved 80K TPS transferring funds from one account to another in a single thread.

Real world performance may be higher or lower based upon the evolving architecture, it is still too early to tell. All measurements were made on a 4Ghz Intel Core i7 in a 2014 iMac.

struct Transfer {
uint64_t from;
uint64_t to;
uint64_t amount;
char memo[];
};

static_assert( sizeof(Transfer) == 3*sizeof(uint64_t), "unexpected padding" );

struct Balance { uint64_t balance; };

void on_init() {
static Balance initial = { 1000*1000 };
static AccountName simplecoin;
simplecoin = name_to_int64( "simplecoin" );

store( simplecoin, initial );
}

void apply_simplecoin_transfer() {
static Transfer message;
static Balance from_balance;
static Balance to_balance;
to_balance.balance = 0;

readMessage( message );
load( message.from, from_balance );
load( message.to, to_balance );

assert( from_balance.balance >= message.amount, "insufficient funds" );

from_balance.balance -= message.amount;
to_balance.balance += message.amount;

if( from_balance.balance )
store( message.from, from_balance );
else
remove( message.from );

store( message.to, to_balance );
}
Not only is the code cleaner and easier to read, the generated WASM code is much smaller too. Most of this time and space savings is made possible by changing the account name and ABI for this contract. In this case the ABI uses a zero-parse copy from the database to the c++ struct and all account names are fixed length.

You can experiment with this code on WasmFiddle with this shared link.

Conclusion
The EOS development team is growing and the technology is progressing with all signs pointing toward a very high-performance platform even running in a single thread. Stay tuned for more updates!DQmeb1bXje2aQcnBhUwuV4ZY3xS1uNio3TedqabCLqFvMTU_640x480.png

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Congratulations @nuelzon! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!