GithubHelp home page GithubHelp logo

eos-mainnet / eos Goto Github PK

View Code? Open in Web Editor NEW

This project forked from eosio/eos

174.0 47.0 70.0 116.13 MB

An open source smart contract platform

Home Page: https://eosio.github.io/eos/

License: MIT License

CMake 0.75% Shell 1.16% C++ 48.13% C 0.21% WebAssembly 46.62% Python 3.12% Objective-C 0.01%

eos's Introduction

EOSIO - The Most Powerful Infrastructure for Decentralized Applications

Build status

Welcome to the EOSIO source code repository! This software enables businesses to rapidly build and deploy high-performance and high-security blockchain-based applications.

Some of the groundbreaking features of EOSIO include:

  1. Free Rate Limited Transactions
  2. Low Latency Block confirmation (0.5 seconds)
  3. Low-overhead Byzantine Fault Tolerant Finality
  4. Designed for optional high-overhead, low-latency BFT finality
  5. Smart contract platform powered by WebAssembly
  6. Designed for Sparse Header Light Client Validation
  7. Scheduled Recurring Transactions
  8. Time Delay Security
  9. Hierarchical Role Based Permissions
  10. Support for Biometric Hardware Secured Keys (e.g. Apple Secure Enclave)
  11. Designed for Parallel Execution of Context Free Validation Logic
  12. Designed for Inter Blockchain Communication

EOSIO is released under the open source MIT license and is offered “AS IS” without warranty of any kind, express or implied. Any security provided by the EOSIO software depends in part on how it is used, configured, and deployed. EOSIO is built upon many third-party libraries such as WABT (Apache License) and WAVM (BSD 3-clause) which are also provided “AS IS” without warranty of any kind. Without limiting the generality of the foregoing, Block.one makes no representation or guarantee that EOSIO or any third-party libraries will perform as intended or will be free of errors, bugs or faulty code. Both may fail in large or small ways that could completely or partially limit functionality or compromise computer systems. If you use or implement EOSIO, you do so at your own risk. In no event will Block.one be liable to any party for any damages whatsoever, even if it had been advised of the possibility of damage.

Block.one is neither launching nor operating any initial public blockchains based upon the EOSIO software. This release refers only to version 1.0 of our open source software. We caution those who wish to use blockchains built on EOSIO to carefully vet the companies and organizations launching blockchains based on EOSIO before disclosing any private keys to their derivative software.

There is no public testnet running currently.


If you used our build scripts to install eosio, please be sure to uninstall before using our packages.


Mac OS X Brew Install

$ brew tap eosio/eosio
$ brew install eosio

Mac OS X Brew Uninstall

$ brew remove eosio

Ubuntu 18.04 Package Install

$ wget https://github.com/eosio/eos/releases/download/v1.8.0/eosio_1.8.0-1-ubuntu-18.04_amd64.deb
$ sudo apt install ./eosio_1.8.0-1-ubuntu-18.04_amd64.deb

Ubuntu 16.04 Package Install

$ wget https://github.com/eosio/eos/releases/download/v1.8.0/eosio_1.8.0-1-ubuntu-16.04_amd64.deb
$ sudo apt install ./eosio_1.8.0-1-ubuntu-16.04_amd64.deb

Ubuntu Package Uninstall

$ sudo apt remove eosio

Centos RPM Package Install

$ wget https://github.com/eosio/eos/releases/download/v1.8.0/eosio-1.8.0-1.el7.x86_64.rpm
$ sudo yum install ./eosio-1.8.0-1.el7.x86_64.rpm

Centos RPM Package Uninstall

$ sudo yum remove eosio

Build Script Uninstall

If you have previously installed EOSIO using build scripts, you may execute ./scripts/eosio_uninstall.sh to uninstall.

  • Passing --force will answer yes to all prompts
  • Passing --full will remove data directories (be very careful with this)

Supported Operating Systems

EOSIO currently supports the following operating systems:

  1. Amazon Linux 2
  2. CentOS 7
  3. Ubuntu 16.04
  4. Ubuntu 18.04
  5. MacOS 10.14 (Mojave)

Resources

  1. Website
  2. Blog
  3. Developer Portal
  4. StackExchange for Q&A
  5. Community Telegram Group
  6. Developer Telegram Group
  7. White Paper
  8. Roadmap

Getting Started

Instructions detailing the process of getting the software, building it, running a simple test network that produces blocks, account creation and uploading a sample contract to the blockchain can be found in Getting Started on the EOSIO Developer Portal.

Contributing

Contributing Guide

Code of Conduct

License

MIT

Important

See LICENSE for copyright and license terms. Block.one makes its contribution on a voluntary basis as a member of the EOSIO community and is not responsible for ensuring the overall performance of the software or any related applications. We make no representation, warranty, guarantee or undertaking in respect of the software or any related documentation, whether expressed or implied, including but not limited to the warranties or merchantability, fitness for a particular purpose and noninfringement. In no event shall we be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or documentation or the use or other dealings in the software or documentation. Any test results or performance figures are indicative and will not reflect performance under all conditions. Any reference to any third party or third-party product, service or other resource is not an endorsement or recommendation by Block.one. We are not responsible, and disclaim any and all responsibility and liability, for your use of or reliance on any of these resources. Third-party resources may be updated, changed or terminated at any time, so the information here may be out of date or inaccurate.

eos's People

Contributors

arhag avatar asiniscalchi avatar b1bart avatar brianjohnson5972 avatar bytemaster avatar cj-oci avatar conr2d avatar dskvr avatar elmato avatar heifner avatar jchung00 avatar jgiszczak avatar johndebord avatar kesar avatar kj4ezj avatar larryk85 avatar mitza-oci avatar moskvanaft avatar nathanielhourt avatar noprom avatar paulcalabrese avatar pmesnier avatar sergmetelin avatar spoonincode avatar taokayan avatar tbfleming avatar thomasbcox avatar wanderingbort avatar zorba80 avatar zreyn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eos's Issues

what does "pre-release" mean?

I find that in Release page, MainNet-1.1.0 or 1.0.10 or 1.0.9 all with the pre-release tag.

Does it mean that we don't need to update to these versions, these versions are not stable or haven't got enough tests?

Or it does not mean anything, these versions also can be used in production.

Deploy EOS nodes

i try deploy node main net
/eosio_build.sh -s EOS. error mongdb driver xxx because libbson-1.0.
`CMake Error at src/bsoncxx/CMakeLists.txt:86 (find_package):
Could not find a configuration file for package "libbson-static-1.0" that
is compatible with requested version "1.13.0".

The following configuration files were considered but not accepted:

/usr/local/lib/cmake/libbson-static-1.0/libbson-static-1.0-config.cmake, version: 1.9.3

-- Configuring incomplete, errors occurred!
See also "/tmp/mongo-cxx-driver/build/CMakeFiles/CMakeOutput.log".
Cmake has encountered the above errors building the MongoDB C++ driver.

Exiting now.`

any psobility to fixed that i using ubuntu

How is the state_history_plugin used in 1.5.0 used?

How is the state_history_plugin used in 1.5.0 used?I nohup nodeos-e-p lsf1 --data-dir./data --config -- dir./config --delete-all-blocks -- replay -- blockchain -- hard-replay -- blockchain --disable -- replay -- opts --chain-state-history --trace-history--plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin --verbose-http-errors -- max-transactions-time =1000 --contracts -- console --filter-on "*" & do not contracts, but do not find state-history folder,Could you please tell me how to use the state-history-plugin correctly? Thank you

Wrong transaction time - 2000-01-01T00:00:00.000

I use latest 1.0.8 version EOS and this curl:
curl -d '{"id":"17a1bfae5f2e7ba1303ca34ff5a057182c1ade1513ac894f9178f163d349196f"}' --request POST --url http://127.0.0.1:8888/v1/history/get_transaction | jq '.'

got this:

{
  "id": "17a1bfae5f2e7ba1303ca34ff5a057182c1ade1513ac894f9178f163d349196f",
  "trx": null,
  "block_time": "2000-01-01T00:00:00.000",
  "block_num": 0,
  "last_irreversible_block": 5156303,
  "traces": []
}

But what is with time?? in explorer all is fine, but with API - mystics (

my node config.ini:

agent-name = XXX
private-key = AAA=KEY:BBB
get-transactions-time-limit = 3
genesis-json = "genesis.json"

chain-state-db-size-mb = 8192
reversible-blocks-db-size-mb = 340
contracts-console = false

http-server-address = 127.0.0.1:8888
p2p-listen-endpoint = 0.0.0.0:9876
p2p-server-address = 206.81.XX.XX:9876
bnet-endpoint = 206.81.XX.XX:9875
bnet_threads = 4

log-level-net-plugin = info
max-clients = 150
connection-cleanup-period = 30
network-version-match = 1
sync-fetch-span = 2000
enable-stale-production = true

producer-name = XXX

max-implicit-request = 1500
pause-on-startup = false
max-transaction-time = 30
max-irreversible-block-age = -1
txn-reference-block-lag = 0
unlock-timeout = 90000
max-pending-transaction-time = -1
max-reversible-block-time = -1
max-deferred-transaction-time = 20

access-control-allow-credentials = false
mongodb-queue-size = 256

plugin = eosio::bnet_plugin
plugin = eosio::chain_api_plugin
plugin = eosio::history_api_plugin
plugin = eosio::http_plugin
plugin = eosio::history_plugin
plugin = eosio::chain_plugin
plugin = eosio::net_api_plugin
plugin = eosio::producer_plugin
plugin = eosio::wallet_api_plugin

# ==== bnet ====
...

# ==== p2p ====
...

my wallet config.ini:

http-server-address = 127.0.0.1:8888
access-control-allow-credentials = false
wallet-dir = "."
unlock-timeout = 900

1.5.x eosio.sudo ?

Since the eosio.sudo contract has been renamed eosio.wrap, why is the eosio.sudo contract still in 1.5.x

EOS transaction pool

EOS is a transaction pool of the whole system or a transaction pool of each super node. I did not find the relevant fields of the transaction pool in the code. Please give me some guidance.

symbol precision mismatch

Jul 10 13:05:27 eos eos[13342]: 327018ms thread-0   producer_plugin.cpp:294       on_incoming_block    ] Received block b0094142ec3cf057... #5154074 @ 2018-07-10T13:05:27.000 signed by eos42freedom [trxs: 1, lib: 5153743, conf: 0, latency: 18 ms]
Jul 10 13:05:27 eos eos[13342]: 327517ms thread-0   wasm_interface.cpp:929        eosio_assert         ] message: symbol precision mismatch
Jul 10 13:05:27 eos eos[13342]: 327518ms thread-0   controller.cpp:589            push_scheduled_trans ] 3050003 eosio_assert_message_exception: eosio_assert_message assertion failure
Jul 10 13:05:27 eos eos[13342]: assertion failure with message: symbol precision mismatch
Jul 10 13:05:27 eos eos[13342]:     {"s":"symbol precision mismatch"}
Jul 10 13:05:27 eos eos[13342]:     thread-0  wasm_interface.cpp:930 eosio_assert
Jul 10 13:05:27 eos eos[13342]:     {"_pending_console_output.str()":""}
Jul 10 13:05:27 eos eos[13342]:     thread-0  apply_context.cpp:62 exec_one
Jul 10 13:05:27 eos eos[13342]: 327519ms thread-0   producer_plugin.cpp:294       on_incoming_block    ] Received block 7613da5417fd762a... #5154075 @ 2018-07-10T13:05:27.500 signed by eos42freedom [trxs: 1, lib: 5153743, conf: 0, latency: 19 ms]
Jul 10 13:05:28 eos eos[13342]: 328015ms thread-0   producer_plugin.cpp:294       on_incoming_block    ] Received block 01f1cda7e263a42a... #5154076 @ 2018-07-10T13:05:28.000 signed by eos42freedom [trxs: 0, lib: 5153743, conf: 0, latency: 15 ms]

Why i see this?
It is normal, or i can something to do, for disappear it?
Thanks.

Authority struct mismatch

The authority struct defined in contracts/eosio.system/native.hpp doesn't match the one in the actual native underlying system code in libraries/chain/include/eosio/chain/authority.hpp. Specifically, they differ in waits vs delay_sec. Besides that, the internal representation of a public_key is also different.

These issues prevent you from calling newaccount (or any other action that takes an authority as parameter) as an inline action or deferred transaction, since when you instantiate these structs from contract code they won't match the ones in the native code and it will fail when deserializing them at the other end. This has been discussed a bit in the EOSIO/eos repository but nothing is clear, there are no answers after several days, and I haven't been able to find any workaround. It's not even clear to me if the "new format" for authorities is the ones using waits or delay_sec.

Related:

Linux binaries

eosio repo has linux binaries
eosio-1.4.1.ubuntu-16.04-x86_64.deb
eosio-1.4.1.ubuntu-18.04-x86_64.deb
eosio-1.4.1.x86_64-0.x86_64.rpm

It would be useful to have binary packages for mainnet too.

official docker image

eosio repo has an official docker repository - eosio/eos
Is there an official repository for the mainnet?

failed to pin chainbase shared memory

I build ok mainnet-1.0.3 this morning when I was updating my nodes. But, this afternoon, I started receiving this message when I build for new nodes:

CHAINBASE:   Failed to pin chainbase shared memory (of size 1024 MB) in RAM. Performance degradation is possible.
CHAINBASE:   Failed to pin chainbase shared memory (of size 340 MB) in RAM. Performance degradation is possible.

anyone experience the same thing?

Thanks,
Swan

cleos --wallet-url does not work when keosd is hosted on another machine

It seems that current logic is hard coded to check that keosd is running on the local machine even if --wallet-url specifies a URL to a remote machine.

So something like this will fail

cleos --wallet-url http://{walletserver}:5555 wallet create

The below screenshot shows where it's hard coded.

20180603210748 000

get_block api request returning 500 service error

Since yesterday (July 10) all nodes started responding with 500 service error when I request block info for specific blocks, for example 447, 2167 and many more.

It used to work fine before the latest update.

here is the full response:
{
"code": 500,
"message": "Internal Service Error",
"error": {
"code": 10,
"name": "assert_exception",
"what": "Assert Exception",
"details": [
{
"message": "fc::time_point::now() < deadline: serialization time limit 15000us exceeded",
"file": "abi_serializer.hpp",
"line_number": 288,
"method": "add"
},
{
"message": "Failed to serialize type",
"file": "abi_serializer.hpp",
"line_number": 600,
"method": "to_variant"
}
]
}
}

Database has reached an unsafe level of usage, shutting down to avoid corrupting the database

I encountered this problem when I was synchronizing the mainnet data:

2018-08-31T13:36:09.531 thread-0   producer_plugin.cpp:330       on_incoming_block    ] Received block 04c8683b10071409... #3366000 @ 2018-06-30T03:48:56.000 signed by argentinaeos [trxs: 0, lib: 3365672, conf: 0, latency: 5392033531 ms]
2018-08-31T13:36:21.255 thread-0   chain_plugin.cpp:853          log_guard_exception  ] Database has reached an unsafe level of usage, shutting down to avoid corrupting the database.  Please increase the value set for "chain-state-db-size-mb" and restart the process!
2018-08-31T13:36:21.255 thread-0   chain_plugin.cpp:859          log_guard_exception  ] Details: 3060101 database_guard_exception: Database usage is at unsafe levels
database free: 134215280, guard size: 134217728
    {"f":134215280,"g":134217728}
    thread-0  controller.cpp:1672 validate_db_available_size

my config as follow:

# Maximum size (in MiB) of the chain state database (eosio::chain_plugin)
chain-state-db-size-mb = 2048

# Safely shut down node when free space remaining in the chain state database drops below this size (in MiB). (eosio::chain_plugin)
chain-state-db-guard-size-mb = 256

who can help solve this problem?

BUG on uint128_t, got the wrong data in the table

I used uint128_t, the data in the talbe on dawn-3.0 it's okay. But today I
found the table on mainnet-1.0.3 it's wrong. Then I tested my contract on
mainnet-1.0.5, mainnet-1.0.2.2 and dawn-v4.2.0, all wrong. It's fine on
dawn-v3.0.0, at first I checked the data in the table on 3.0, later I didn't
check the data carefully.
Seems the bug appears after the pretty hex format of uint128_t instead of the
ugly big number.

MY PROGRAM ONLY USES THE LOW 92 BITS.

system: ubuntu 17.10

code piece:

    print(" skills: ", newskills);
    pandas.emplace(code_account, [&](auto &rec)
    {
        rec.id = newpandaid;
        rec.type = newtype;
        rec.skills = newskills;
        print(" skills: ", newskills);
        print(" rec.skills: ", rec.skills);
        rec.inner_dan = dan;
    });

dawn-3.0:

nodeos's log:
skills: 6044629098178698989817856 rec.skills: 6044629098178698989817856

{
"rows": [{
"id": 0,
"type": "diamond",
"skills": "6044629098178698989817856",
"inner_dan": 0
},{

a = '%x' % 6044629098178698989817856
a
'500000000600000005000'
len(a)
21


mainnet-1.0.5:

nodeos's log
skills: 6044629098178698989817856 rec.skills: 6044629098178698989817856

get table ouput:
{
"rows": [{
"panda_id": 0,
"type": "diamond",
"skills": "0x00500000006000000000050000000000",
"txnid": 888,
"success": 1,
"inner_dan": 0
}
],
"more": false
}

a = '%x' % 6044629098178698989817856
len(a)
21
a
'500000000600000005000'

We can see the data (6044629098178698989817856) I stored and the data
("0x00500000006000000000050000000000") I got from the table are different:
stored: '500000000600000005000'
got: "0x00500000006000000000050000000000"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.