Skip to content

Commit

Permalink
Release V0.4.4 (#1588)
Browse files Browse the repository at this point in the history
* Dont panic for check balance (#1493)

* Introduce BalanceMismatch error
* Merge branch 'staging' of github.com:nearprotocol/nearcore into dont-panic-for-check-balance
* Merge branch 'staging' of github.com:nearprotocol/nearcore into dont-panic-for-check-balance
* Merge bug
* Merge branch 'staging' into dont-panic-for-check-balance
* Merge refs/heads/staging into dont-panic-for-check-balance
* Merge refs/heads/staging into dont-panic-for-check-balance
* Merge refs/heads/staging into dont-panic-for-check-balance
* Merge branch 'staging' of github.com:nearprotocol/nearcore into dont-panic-for-check-balance
* Merge branch 'dont-panic-for-check-balance' of github.com:nearprotocol/nearcore into dont-panic-for-check-balance

* Merge master into staging (#1511)

* Give more money to test.near (#1467)

* Give more money to test.near

* Bump version

* Reset state and bump version (#1499)

* Bump version for Borsh (#1502)

* Fix boot node in start_testnet.py (#1505)

* Reduce total supply and adjust parameters (#1508)

* Update dependency to avoid vulnerabilities (#1509)

* Update dependency to avoid vulnerabilities

* Remove serde_cbor

* pytest for remote node (#1437)

* gcloud lib and init/start cluster
* Merge branch 'staging' into pytest-remote
* a few fixes
* almost done
* a few more fix
* Merge branch 'staging' into pytest-remote
* more fix
* more tests
* more fix and tests
* Merge branch 'staging' into pytest-remote
* Merge branch 'staging' into pytest-remote
* Merge refs/heads/staging into pytest-remote
* Merge refs/heads/staging into pytest-remote
* Merge refs/heads/staging into pytest-remote
* Merge refs/heads/staging into pytest-remote
* Merge refs/heads/staging into pytest-remote
* Merge refs/heads/staging into pytest-remote
* Merge refs/heads/staging into pytest-remote
* Merge branch 'staging' into pytest-remote
* Merge branch 'staging' into pytest-remote
* add requirements.txt
* a few fixes
* remote version of block_production works
* Merge branch 'pytest-remote' of github.com:nearprotocol/nearcore into pytest-remote
* Merge branch 'staging' into pytest-remote
* update requirements.txt

* Remove some unnecessary unsafe code (#1512)

* Remove some unnecessary unsafe code
* Merge refs/heads/staging into remove-unsafe-code
* Merge refs/heads/staging into remove-unsafe-code

* Chaos Monkey now messes up with network (#1514)

* Chaos Monkey now messes up with network

* Fixing a typo

* Adding missing shell command

* Marking `local_network` monkey as existing

* Adding one of the new tests that was previously missing

* Handle head method for status check (#1513)

* fix head status check
* Merge branch 'staging' into handle-head-method
* Merge refs/heads/staging into handle-head-method
* Merge refs/heads/staging into handle-head-method

* recover system coredump by Misha for minimize docker image (#1528)

* recover system coredump by Misha for minimize docker image

* Move rewards to runtime (#1497)

* Move validator rewards to runtime
* Merge branch 'staging' of github.com:nearprotocol/nearcore into move-rewards-to-runtime
* Merge branch 'staging' of github.com:nearprotocol/nearcore into move-rewards-to-runtime
* Update runtime/runtime/src/lib.rs

Co-Authored-By: Maksym Zavershynskyi <35039879+nearmax@users.noreply.github.com>
* Merge branch 'staging' of github.com:nearprotocol/nearcore into move-rewards-to-runtime
* Merge branch 'move-rewards-to-runtime' of github.com:nearprotocol/nearcore into move-rewards-to-runtime
* Merge branch 'staging' into move-rewards-to-runtime
* Merge refs/heads/staging into move-rewards-to-runtime

* Fix a dependency (#1527)

* Fix a dependency

eth-secp256k1 got renamed to parity-secp256k1
* Merge refs/heads/staging into fix_build

* update rust-toolchain (#1529)

* update rust-toolchain

* Fix some warnings (#1530)

* Fix some warnings
* More warnings

* Introduced `chunk` API (#1524)

* Introduced `chunk` API

* Saving genesis chunks to make consistent output from chunks RPC

* Bump near-vm-* to 0.3.1 (#1541)

* Nit
* Bump to 0.3.1
* Nit

* working coredump for docker (#1531)

* working coredump for docker
* Merge branch 'staging' into docker-coredump
* Merge refs/heads/staging into docker-coredump

* Update dependencies (#1532)

* Update dependencies

* Merge master into staging (#1534)

* Give more money to test.near (#1467)

* Give more money to test.near

* Bump version

* Reset state and bump version (#1499)

* Bump version for Borsh (#1502)

* Fix boot node in start_testnet.py (#1505)

* Reduce total supply and adjust parameters (#1508)

* Remove all warnings (#1516)

* Add more bootnodes (#1525)

* Genesis csv to Genesis json tool + key generator (#1462)

* WIP
* Code to read token holders from the file
* Minimal code that reads genesis from csv and converts it to json
* Tool for generating key pairs
* Make csv-parser a runnable binary
* Merge
* Merge branch 'staging' into genesis-mainnet
* Merge
* Merge branch 'genesis-mainnet' of https://github.com/nearprotocol/nearcore into genesis-mainnet
* Merge branch 'staging' into genesis-mainnet
* Merge branch 'staging' into genesis-mainnet
* Nit
* Merge branch 'genesis-mainnet' of https://github.com/nearprotocol/nearcore into genesis-mainnet
* Merge branch 'staging' into genesis-mainnet
* Merge refs/heads/staging into genesis-mainnet
* Merge refs/heads/staging into genesis-mainnet
* Merge refs/heads/staging into genesis-mainnet
* Merge refs/heads/staging into genesis-mainnet
* Merge refs/heads/staging into genesis-mainnet
* Merge refs/heads/staging into genesis-mainnet
* Merge refs/heads/staging into genesis-mainnet
* Merge refs/heads/staging into genesis-mainnet
* Merge refs/heads/staging into genesis-mainnet
* Merge refs/heads/staging into genesis-mainnet
* Merge refs/heads/staging into genesis-mainnet
* Merge refs/heads/staging into genesis-mainnet
* Merge refs/heads/staging into genesis-mainnet
* Merge refs/heads/staging into genesis-mainnet
* Merge refs/heads/staging into genesis-mainnet
* Merge refs/heads/staging into genesis-mainnet
* Merge refs/heads/staging into genesis-mainnet
* Merge refs/heads/staging into genesis-mainnet
* Merge refs/heads/staging into genesis-mainnet

* Rpc transaction routing (#1544)

* Rpc transaction routing
* Transaction status routing
* Merge branch 'staging' into rpc-tx-routing
* Revert changes to runtime
* Fix test
* A python test for rpc tx forwarding
* fix pytest
* use SizedCache
* Add RequestRouted
Address comments

* Fix keypair generation problem when directory does not exist (#1556)

* Fix some issues related to genesis and running nodes (#1557)

* Do not always override bootnodes
* Add genesis time to Row
* bump rpc polling timeout to 10s

* toolchain set to nightly-2019-10-04 (#1539)

* Revert profile-overrides syntax after toolchain downgrade (#1558)

* Chaos Monkey now restarts nodes (#1554)

Two new modes in chaos monkey:
- `node_restart` ocasionally restarts one of the nodes that are initially running (but always just one)
- `node_set` maintains an extra set of nodes (which are initially shut down), and prediodically restarts them arbitrarily, ocasionally also wiping out their data folders.

* fix a few queries which was work for only one node by aggregate (#1563)

* fix a few queries which was work for only one node by aggregate
* Merge branch 'staging' into fix-dashboard

* Cargo bug workaround (#1564)

* Remove mock feature
* Bump versions
* Script to publish runtime packages
* Merge branch 'staging' into wasm32_fix

* Fix bad test in near-vm-logic (#1565)

* Fix bad test in near-vm-logic
* Merge refs/heads/staging into bad_test

* adding genesis tools for stakewars into dockerfile (#1567)

* adding genesis tools for stakewars into dockerfile
* Merge branch 'staging' into genesis-tool-docker
* Merge refs/heads/staging into genesis-tool-docker

* Fix unused return values in serialization (#1568)

* Fix unused return values in serialization
* Merge refs/heads/staging into bad_borsh

* Update borsh to 0.2.9 (#1566)

* Update borsh to 0.2.9
* Merge refs/heads/staging into update_borsh
* Merge refs/heads/staging into update_borsh
* Merge refs/heads/staging into update_borsh
* Merge refs/heads/staging into update_borsh

* update bootnode ip (#1569)

* update bootnode ip
* Merge branch 'staging' into update-bootnode
* Merge refs/heads/staging into update-bootnode

* Fix chunk producer kickout (#1571)

* Fix chunk producer kickout

* fix genesis

* fix initialization

* Script to start nodes for stakewars (#1572)

* Scripts to start nodes for stakewars

* change chain-id

* fix quotes

* do not override if genesis already exists

* ext-costs moved to logic config extracted (#1417)

* gas_counter moved to mod

* instrumented runtime with gas counter

* hash256 per-byte gas counting added

* block_timestamp test added and fix tests

* fix genesis config

* ext-costs moved to logic config extracted

* rename Config -> VMConfig

* #49: cargo fmt all & add CI check (#1574)

* Fix typo: Secp2561KSignature -> Secp256K1Signature (#1518)

* do not remove docker build to avoid sudo (#1583)

* do not remove docker build to avoid sudo

* Improve genesis tools (#1562)

* Improve genesis tools
* Merge refs/heads/staging into improve-genesis-tools
* Merge refs/heads/staging into improve-genesis-tools
* Merge refs/heads/staging into improve-genesis-tools
* Merge refs/heads/staging into improve-genesis-tools
* Merge refs/heads/staging into improve-genesis-tools
* extract verification code
* Merge branch 'staging' into improve-genesis-tools
* Merge branch 'staging' into improve-genesis-tools
* Merge refs/heads/staging into improve-genesis-tools

* Code ownership for genesis tools (#1584)

* Code ownership for genesis tools
* Merge branch 'staging' into genesis-ownerhsip

* Disable ban for abusing peers. (#1585)

* Add option to generate signer keys to file (#1587)
  • Loading branch information
bowenwang1996 authored Oct 30, 2019
1 parent 97034fb commit bd348d8
Show file tree
Hide file tree
Showing 142 changed files with 80,199 additions and 64,908 deletions.
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Generated by Cargo
# will have compiled files and executables
target
docker-build
**/target/
/storage/
/test-utils/node/storage
Expand Down Expand Up @@ -41,3 +42,6 @@ tmp/

# Logs
*.log

# Vim tmp files
*.swp
1 change: 1 addition & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ test_cargo:
- *setup_cache
script:
- rustc --version && cargo --version
- cargo fmt --all -- --check
- cargo check --all --tests --benches --all-features
- cargo test --all --verbose

Expand Down
2 changes: 2 additions & 0 deletions CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,5 @@
/chain/ @ilblackdragon @SkidanovAlex

/runtime/ @nearmax @evgenykuzyakov

/genesis-tools/ @nearmax
2,287 changes: 1,090 additions & 1,197 deletions Cargo.lock

Large diffs are not rendered by default.

4 changes: 3 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,16 @@ members = [
"test-utils/loadtester",
"test-utils/state-viewer",
"near/",
"genesis-tools/genesis-csv-to-json",
"genesis-tools/genesis-populate",
"genesis-tools/keypair-generator",
]

[dev-dependencies]
actix = "0.8.2"
lazy_static = "1.4.0"
log = "0.4.6"
rand = "0.6"
rand = "0.7"
serde_json = "1.0.0"
reqwest = "0.9"
futures = "0.1.25"
Expand Down
6 changes: 5 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,11 @@ RUN --mount=type=cache,target=/tmp/target \
--mount=type=cache,target=/usr/local/cargo/git \
--mount=type=cache,target=/usr/local/cargo/registry \
cargo build -p near --release && \
cp /tmp/target/release/near /usr/local/bin/
cargo build -p keypair-generator --release && \
cargo build -p genesis-csv-to-json --release && \
cp /tmp/target/release/near /usr/local/bin/ && \
cp /tmp/target/release/keypair-generator /usr/local/bin && \
cp /tmp/target/release/genesis-csv-to-json /usr/local/bin

EXPOSE 3030 24567

Expand Down
2 changes: 1 addition & 1 deletion Dockerfile.prod
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ FROM phusion/baseimage:0.11
EXPOSE 3030 24567

COPY scripts/run_docker.sh /usr/local/bin/run.sh
COPY docker-build/near /usr/local/bin/near
COPY docker-build/* /usr/local/bin/

ENTRYPOINT ["/sbin/my_init", "--"]

Expand Down
3 changes: 2 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@ docker-nearcore:
DOCKER_BUILDKIT=1 docker build -t nearcore-dev -f Dockerfile .
mkdir -p docker-build
docker run -v ${PWD}/docker-build:/opt/mount --rm --entrypoint cp nearcore-dev /usr/local/bin/near /opt/mount/near
docker run -v ${PWD}/docker-build:/opt/mount --rm --entrypoint cp nearcore-dev /usr/local/bin/genesis-csv-to-json /opt/mount/genesis-csv-to-json
docker run -v ${PWD}/docker-build:/opt/mount --rm --entrypoint cp nearcore-dev /usr/local/bin/keypair-generator /opt/mount/keypair-generator
docker build -t nearcore -f Dockerfile.prod .
rm -rf docker-build
2 changes: 1 addition & 1 deletion async-utils/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ authors = ["Near Inc <hello@nearprotocol.com>"]
edition = "2018"

[dependencies]
futures03 = { package = "futures-preview", version = "0.3.0-alpha.16", features = ["compat", "async-await", "nightly"] }
futures03 = { package = "futures-preview", version = "0.3.0-alpha.19", features = ["compat", "async-await"] }
tokio = "0.1.15"
4 changes: 1 addition & 3 deletions async-utils/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
#![feature(await_macro, async_await)]

use std::time::{Duration, Instant};

use futures03::{compat::Future01CompatExt as _, FutureExt as _};
Expand All @@ -10,7 +8,7 @@ use futures03::{compat::Future01CompatExt as _, FutureExt as _};
/// It is useful when the `futures-preview` is imported as `futures03`.
macro_rules! select { // replace `::futures_util` with `::futures03` as the crate path
($($tokens:tt)*) => {
futures03::inner_select::select! {
futures03::inner_macro::select! {
futures_crate_path ( ::futures03 )
$( $tokens )*
}
Expand Down
2 changes: 1 addition & 1 deletion chain/chain/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ serde_derive = "1.0"
cached = "0.9.0"
lazy_static = "1.4"

borsh = "0.2.7"
borsh = "0.2.9"

near-crypto = { path = "../../core/crypto" }
near-primitives = { path = "../../core/primitives" }
Expand Down
78 changes: 76 additions & 2 deletions chain/chain/src/chain.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ use near_primitives::receipt::Receipt;
use near_primitives::sharding::{
ChunkHash, ChunkHashHeight, ReceiptProof, ShardChunk, ShardChunkHeader, ShardProof,
};
use near_primitives::transaction::ExecutionOutcome;
use near_primitives::transaction::{ExecutionOutcome, ExecutionStatus};
use near_primitives::types::{AccountId, Balance, BlockIndex, ChunkExtra, Gas, ShardId};
use near_store::{Store, COL_STATE_HEADERS};

Expand All @@ -27,6 +27,10 @@ use crate::types::{
ReceiptProofResponse, ReceiptResponse, RootProof, RuntimeAdapter, ShardStateSyncResponseHeader,
ShardStateSyncResponsePart, StateHeaderKey, Tip, ValidatorSignatureVerificationResult,
};
use near_primitives::views::{
ExecutionOutcomeView, ExecutionOutcomeWithIdView, ExecutionStatusView,
FinalExecutionOutcomeView, FinalExecutionStatus,
};

/// Maximum number of orphans chain can store.
pub const MAX_ORPHAN_SIZE: usize = 1024;
Expand Down Expand Up @@ -1308,6 +1312,72 @@ impl Chain {

Ok(())
}

pub fn get_transaction_execution_result(
&mut self,
hash: &CryptoHash,
) -> Result<ExecutionOutcomeView, String> {
match self.get_transaction_result(hash) {
Ok(result) => Ok(result.clone().into()),
Err(err) => match err.kind() {
ErrorKind::DBNotFoundErr(_) => {
Ok(ExecutionOutcome { status: ExecutionStatus::Unknown, ..Default::default() }
.into())
}
_ => Err(err.to_string()),
},
}
}

fn get_recursive_transaction_results(
&mut self,
hash: &CryptoHash,
) -> Result<Vec<ExecutionOutcomeWithIdView>, String> {
let outcome = self.get_transaction_execution_result(hash)?;
let receipt_ids = outcome.receipt_ids.clone();
let mut transactions = vec![ExecutionOutcomeWithIdView { id: (*hash).into(), outcome }];
for hash in &receipt_ids {
transactions
.extend(self.get_recursive_transaction_results(&hash.clone().into())?.into_iter());
}
Ok(transactions)
}

pub fn get_final_transaction_result(
&mut self,
hash: &CryptoHash,
) -> Result<FinalExecutionOutcomeView, String> {
let mut outcomes = self.get_recursive_transaction_results(hash)?;
let mut looking_for_id = (*hash).into();
let num_outcomes = outcomes.len();
let status = outcomes
.iter()
.find_map(|outcome_with_id| {
if outcome_with_id.id == looking_for_id {
match &outcome_with_id.outcome.status {
ExecutionStatusView::Unknown if num_outcomes == 1 => {
Some(FinalExecutionStatus::NotStarted)
}
ExecutionStatusView::Unknown => Some(FinalExecutionStatus::Started),
ExecutionStatusView::Failure(e) => {
Some(FinalExecutionStatus::Failure(e.clone()))
}
ExecutionStatusView::SuccessValue(v) => {
Some(FinalExecutionStatus::SuccessValue(v.clone()))
}
ExecutionStatusView::SuccessReceiptId(id) => {
looking_for_id = id.clone();
None
}
}
} else {
None
}
})
.expect("results should resolve to a final outcome");
let receipts = outcomes.split_off(1);
Ok(FinalExecutionOutcomeView { status, transaction: outcomes.pop().unwrap(), receipts })
}
}

/// Various chain getters.
Expand Down Expand Up @@ -1437,7 +1507,7 @@ impl Chain {

/// Returns underlying RuntimeAdapter.
#[inline]
pub fn runtime_adapter(&self) -> Arc<RuntimeAdapter> {
pub fn runtime_adapter(&self) -> Arc<dyn RuntimeAdapter> {
self.runtime_adapter.clone()
}

Expand Down Expand Up @@ -1965,6 +2035,10 @@ impl<'a> ChainUpdate<'a> {
return Err(ErrorKind::InvalidEpochHash.into());
}

if header.inner.chunk_mask.len() as u64 != self.runtime_adapter.num_shards() {
return Err(ErrorKind::InvalidChunkMask.into());
}

// Prevent time warp attacks and some timestamp manipulations by forcing strict
// time progression.
if header.inner.timestamp <= prev_header.inner.timestamp {
Expand Down
7 changes: 4 additions & 3 deletions chain/chain/src/error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,9 @@ pub enum ErrorKind {
/// Invalid chunk.
#[fail(display = "Invalid Chunk")]
InvalidChunk,
/// Invalid chunk mask
#[fail(display = "Invalid Chunk Mask")]
InvalidChunkMask,
/// Invalid epoch hash
#[fail(display = "Invalid Epoch Hash")]
InvalidEpochHash,
Expand Down Expand Up @@ -156,6 +159,7 @@ impl Error {
| ErrorKind::InvalidBlockConfirmation
| ErrorKind::InvalidBlockWeight
| ErrorKind::InvalidChunk
| ErrorKind::InvalidChunkMask
| ErrorKind::InvalidStateRoot
| ErrorKind::InvalidTxRoot
| ErrorKind::InvalidChunkReceiptsRoot
Expand Down Expand Up @@ -199,6 +203,3 @@ impl From<String> for Error {
}

impl std::error::Error for Error {}

unsafe impl Send for Error {}
unsafe impl Sync for Error {}
9 changes: 4 additions & 5 deletions chain/chain/src/test_utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,7 @@ use near_primitives::transaction::{
TransferAction,
};
use near_primitives::types::{
AccountId, Balance, BlockIndex, EpochId, MerkleHash, Nonce, ShardId, StateRoot,
ValidatorStake,
AccountId, Balance, BlockIndex, EpochId, MerkleHash, Nonce, ShardId, StateRoot, ValidatorStake,
};
use near_primitives::views::QueryResponse;
use near_store::test_utils::create_test_store;
Expand All @@ -32,7 +31,7 @@ use crate::types::{
ValidatorSignatureVerificationResult, Weight,
};
use crate::{Chain, ChainGenesis, ValidTransaction};
use near_primitives::errors::InvalidTxErrorOrStorageError;
use near_primitives::errors::RuntimeError;
use near_primitives::merkle::{merklize, verify_path, MerklePath};

pub const DEFAULT_STATE_NUM_PARTS: u64 = 17; /* TODO MOO */
Expand Down Expand Up @@ -179,7 +178,7 @@ impl KeyValueRuntime {
}
let prev_block_header = self
.get_block_header(prev_hash)?
.ok_or(format!("Missing block {} when computing the epoch", prev_hash))?;
.ok_or_else(|| format!("Missing block {} when computing the epoch", prev_hash))?;
Ok(prev_block_header.inner.height)
}

Expand Down Expand Up @@ -441,7 +440,7 @@ impl RuntimeAdapter for KeyValueRuntime {
_gas_price: Balance,
_state_root: StateRoot,
transaction: SignedTransaction,
) -> Result<ValidTransaction, InvalidTxErrorOrStorageError> {
) -> Result<ValidTransaction, RuntimeError> {
Ok(ValidTransaction { transaction })
}

Expand Down
4 changes: 2 additions & 2 deletions chain/chain/src/types.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use borsh::{BorshDeserialize, BorshSerialize};

use near_crypto::{Signature, Signer};
pub use near_primitives::block::{Block, BlockHeader, Weight};
use near_primitives::errors::InvalidTxErrorOrStorageError;
use near_primitives::errors::RuntimeError;
use near_primitives::hash::{hash, CryptoHash};
use near_primitives::merkle::{merklize, MerklePath};
use near_primitives::receipt::Receipt;
Expand Down Expand Up @@ -141,7 +141,7 @@ pub trait RuntimeAdapter: Send + Sync {
gas_price: Balance,
state_root: StateRoot,
transaction: SignedTransaction,
) -> Result<ValidTransaction, InvalidTxErrorOrStorageError>;
) -> Result<ValidTransaction, RuntimeError>;

/// Filter transactions by verifying each one by one in the given order. Every successful
/// verification stores the updated account balances to be used by next transactions.
Expand Down
9 changes: 2 additions & 7 deletions chain/chunks/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,15 @@ edition = "2018"

[dependencies]
actix = "0.8.1"
typed-arena = "1.4.1"
futures = "0.1.25"
tokio = "0.1"
rand = "0.6"
rand_xorshift = "0.1"
rand = "0.7"
chrono = "0.4.6"
log = "0.4"
borsh = "0.2.2"
borsh = "0.2.9"
serde = "1.0"
serde_derive = "1.0"
elapsed = "0.1"
protobuf = "2.4"
reed-solomon-erasure = "3.1.1"
crossbeam = "0.3.0"
cached = "0.9.0"

near-crypto = { path = "../../core/crypto" }
Expand Down
4 changes: 2 additions & 2 deletions chain/client/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ authors = ["Near Inc <hello@nearprotocol.com>"]
edition = "2018"

[dependencies]
ansi_term = "0.11.0"
ansi_term = "0.12"
actix = "0.8.1"
futures = "0.1"
chrono = { version = "0.4.4", features = ["serde"] }
kvdb = "0.1"
log = "0.4"
rand = "0.6.5"
rand = "0.7"
serde = { version = "1.0", features = ["derive"] }
serde_derive = "1.0"
serde_json = "1.0"
Expand Down
Loading

0 comments on commit bd348d8

Please sign in to comment.