Blockchain was always associated with Bitcoin, cryptocurrencies, and digital asset trading. However, the benefits of Blockchain are far beyond that. It has been recently used to support and augment many other technologies, including the Internet-of-Things (IoT). IoT, with the help of Blockchain, paves the way for futuristic smart environments, like smart homes, smart transportation, smart energy trading, smart industries, smart supply chains, and more. To enable these smart environments, IoT devices, machines, appliances, and vehicles, will need to intercommunicate without the need for a centralized trusted party. Blockchain can replace third trusted parties by providing secure means of decentralization in such trustless environments. They also provide security enforcement, privacy assurance, authentication, and other important features to IoT ecosystems. Besides the benefits of Blockchain-IoT integration for smart environments, other technologies also have important features and benefits that attracted the research community. Software-Defined Networking (SDN), Fog, Edge, and Cloud Computing technologies, for example, play an important role in enabling realistic IoT applications. Moreover, the integration of Machine Learning and Artificial Intelligence (AI) algorithms provides smart, dynamic, and autonomous decisionmaking capabilities for IoT devices in smart environments. To push the research further in this domain, we provide in this paper a comprehensive survey that includes state-of-the-art technological integration, challenges, and solutions for smart environments, and the role of Blockchain and IoT technologies as the building blocks of such smart environments. We also demonstrate how the level of integration between these technologies has increased over the years, which brings us closer to the futuristic view of smart environments. We further discuss the current need to provide general-purpose Blockchain platforms that can adapt to different design requirements of different applications and solutions. Finally, we provide a simplified architecture of futuristic smart environments that integrates all these technologies, showing the advantage of such integration.