This paper is about consensus solutions optimized simultaneously for the time and communication complexities. Synchronous message passing with processors prone to crashes is the computing environment. The number f of crashes can be arbitrary as long as it is smaller than the number n of processors in the system. As a building block to our consensus solutions, we consider the gossiping problem in which processors have input rumors and the goal of every processor is to learn all the rumors of the processors that have not crashed. We show that gossiping can be achieved by a deterministic algorithm working in script O sign(log3 n) time and sending script O sign(n log 4 n) point-to-point messages. These results improve upon the best previously known deterministic solution of gossiping that operated in script O sign(log2 n) time and generated script O sign(n1+ε) messages, for any constant ε > 0. The efficient gossiping algorithm is applied to the problem of reaching consensus. In the Consensus problem, each processor starts with its input value and the goal is to have all processors agree on exactly one value among the inputs. First we develop a deterministic algorithm solving Consensus in script O sign(n) time while sending script O sign(n log5 n) messages. The best previously known algorithms solving Consensus in script O sign(n) time had the message complexity bounded by script O sign(n1+ε), for any constant ε > 0. Next we improve the Consensus solution so that it is early stopping, which means that it terminates in script O sign(f + 1) time, where f is the number of crashes in an execution, while preserving the message complexity script O sign(n log 5 n).