Well, it depends what you really want out of the system. I'd argue that generalized computation is inappropriate for a permissioned blockchain. For a public blockchain, sure, though I'd still not go with Ethereum for a bunch of reasons (e.g. it's compiled so when you find a compiler bug you need to upgrade all of the contracts vs upgrade the interpreter, because it's a pita to develop in, etc...) EVM was a great first step, but like all first steps it is in need of iteration.
Also, I would note that "with a consensus protocol" is very, very tricky... well if you want BFT anyways. Rolling your own consensus is on the order of difficulty of rolling your own crytpo -- this is experts only, don't do it. It's not quite as difficult as crypto but you still need to formally prove it which is very hard. We didn't make our own consensus, instead we used Raft for consensus and figured out how to make it BFT which is hard but nowhere near as hard as making consensus from scratch.
Here's my off-the-cuff guide to figuring out if you want a blockchain and what properties it needs:
Do you want a distributed DB?
* No -> postgres.
* Yes -> you need consensus of some fashion.
Will some nodes for the DB be hosted by competitors in your space?
* No -> You don't need BFT, use hashicorp's stuff.
* Yes -> You need BFT, welcome to "I need a blockchain" territory
Will competitors be able to directly write logic that will run on the system?
* No -> regular language is fine
* Yes -> you need a smart contract language to write in
What type of scaling and performance do you need?
* 3-100 nodes + high performance -> PBFT/SmartBFT for consensus is fine, but keep in mind that if you ever need to scale beyond this you're screwed (maybe you can get to 200 but I doubt it).
* 100-10k nodes + high performance -> email us at info@kadena.io, we're literally the only ones able to do this currently
* +100 nodes + low performance -> Mining based consensus could work, but you need to lock it down and centralize pending transactions a bit to avoid incentivization issues.
* >10k nodes + high performance -> wait 5 years, maybe someone will figure it out.
What do you need to do with the chain?
* track allocation of things/conserve mass -> no need for a smart contract language, adapt a bitcoin approach
* conserve mass + run logic -> you need some type of language, though maybe not a smart contract class one
Assuming you need to run logic...
* and don't need BFT -> glue python/whatever onto consul, be careful to only write deterministic code
* need BFT, and want to be able to fold proteins -> use EVM (though I'd recommend rethinking your approach... why should you replicate massive computations like this?)
* need BFT, and want the system to work a lot like a very paranoid DB -> email us