Comments (6)
@martinholovsky https://doc.rust-lang.org/cargo/reference/manifest.html#the-profile-sections
Any manifest may declare a profile, but only the top level package’s profiles are actually read. All dependencies’ profiles will be overridden.
rust-abci is a library, i.e. won't be top-level. My guess (from that description) is that regardless what's declared here, profiles of application crates override it (so it should be declared in Cargo.toml of applications rather than here).
from rust-abci.
I believe this issue may be relevant in tendermint to change the int64 types to uint64 types in proto files where needed?
from rust-abci.
I agree with you @tomtau. Also, @marbar3778 is right that the proto files (and hence the generated code) should match the tendermint repo. Actually discussing signed vs unsinged integers has a long tradition:
tendermint/tendermint#2684
https://blog.cosmos.network/choosing-a-type-for-blockchain-height-beware-of-unsigned-integers-714804dddf1d
IIRC, we wanted to switch to unsigned where values could never go negative but focused on other things.
from rust-abci.
Ad that block height discussion: Rust does under/overflow assertion checks in debug releases by default; one could enable them in production builds in a Cargo profile configuration.
Anyway, I guess except for "logic" (#49), there could be some value sanity checks/assertions as well
from rust-abci.
Besides block height (and perhaps time), there are a few other examples where the protobuf type doesn't indicate to what the specs say -- for example, for Tags: https://tendermint.com/docs/spec/abci/abci.html#tags it mentions keys/values must be UTF-8 strings, but they are Vec.
On the other hand, I've been abusing this particular part and it doesn't seem to have any effect on Tendermint (RPC happily returns them base64-encoded). I guess that only affects indexing / querying or the ABCI specs documented some no longer valid assumption?
Another thing is "Query": https://tendermint.com/docs/spec/abci/abci.html#query
Apps MUST interpret '/store' as a query by key on the underlying store.
Currently, the trait doesn't force implementors to do so -- on the other hand, I didn't observe any consequences if one doesn't do so?
from rust-abci.
Ad that block height discussion: Rust does under/overflow assertion checks in debug releases by default; one could enable them in production builds in a Cargo profile configuration.
Anyway, I guess except for "logic" (#49), there could be some value sanity checks/assertions as well
Any reason not having
[profile.release]
overflow-checks = true
in Cargo.toml?
from rust-abci.
Related Issues (20)
- upgrade to bytes 0.5 fails to compile
- Upgrade tokio to 0.2 fails to compile HOT 2
- Upgrade protobuf to 2.10.0
- Upgrade to protobuf 2.10.1 fails HOT 1
- rearchitected rust-abci has no tests HOT 1
- Bump protobuf to 2.11
- Transition ci to github actions
- Bump protobuf to 2.12
- bump abci to support 0.33.4
- Ideas about abci architecture
- Tests don't compile with protobuf 2.16.2
- Add a changelog? HOT 1
- Add Cargo.lock ?
- Add link to crate HOT 1
- Outdated link in Cargo.toml HOT 2
- Tendermint 0.32 ABCI support HOT 1
- Reduce amount of longs under `info` HOT 2
- Unable to compile EmptyApp example! (::protobuf::VERSION_2_8_0) HOT 1
- Reduce the number of tokio-* dependencies
- Upgrade futures dependency HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rust-abci.